/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKEponSwchKjInfSksi
*	ソースファイル名	：JBSbatKKEponSwchKjInfSksi.java
*	作成者				：富士通　
*	作成日				：2014年03月18日
*＜機能概要＞
*　E-PON→GE-PON設備切替工事情報作成です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v8.00.00    2014/03/18  FJ）江藤    新規作成(【ANK-1813-00-00】EPON→GEPON交換工事本格実施に伴うシステム改修)
*   v8.01.00    2014/06/06  FJ）藤本    【IT1-2014-0000202】E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生
*   v10.00.00   2014/10/14  FJ) 阮      ANK-2278-00-00
*   v13.00.00   2015/04/08  FJ) 松本    OM-2015-0000503 予約中でエラーになる
*   v15.00.00   2015/07/17  FJ) 黒田	【OM-2015-0001770】バッチ処理エラー対応
*   v25.00.00   2016/04/06  FJ) 阮     【ANK-2768-00-00】Ｅ→Ｇ巻き取り時の多機能ＲＴorＶＡ出荷（富士通旧ＶＡ対応）
*   v25.01.00   2016/05/30  FJ) 阮     【IT2-2016-0000028】Ｅ→Ｇ巻き取り時の多機能ＲＴorＶＡ出荷（富士通旧ＶＡ対応）障害対応
*   v27.00.00   2016/12/01  FJ) 森脇   【OM-2016-0001806】回線場所住所が適用終了されている場合はエラーコードを返却する
*   v31.00.00   2017/11/24  FJ) 岡     【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*   v39.00.00   2018/11/07  FJ) 河邊   【OM-2018-0001001】EG切替時予約チェック
*   v41.00.00   2019/03/07  FJ) 中野   【ANK-3554-00-00】OPMS再構築フォロー案件
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCCbatShoriIraiUtil;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKBatEponSwchKjCaseFileSksi;
import eo.business.common.JKKBatOutputUtil;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKKIFM587;
import eo.business.util.file.JBSbatKKIFM588;
import eo.business.util.table.JBSbatCC_T_DLYD_TRN_REQ;
import eo.business.util.table.JBSbatCC_T_EFILE_KANRI;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KJAK_TG_TKKIKI;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.business.util.table.JBSbatZM_M_TAKNKIKI_MODEL;
import eo.business.util.table.JBSbatZM_M_WORK_PARAM_KNRI;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JKUStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCCFileUtil;
import eo.common.util.JKKStringUtil;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* E-PON→GE-PON設備切替工事情報作成 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKEponSwchKjInfSksi extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(電子ファイル管理)*/
	private static final String D_TBL_NAME_CC_T_EFILE_KANRI = "CC_T_EFILE_KANRI";

	/** テーブル(督促)*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";

	/** テーブル(住所変更明細)*/
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";

	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";

	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(サービス契約)*/
	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_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
	/** テーブル(データ一括登録管理)*/
	private static final String D_TBL_NAME_ZM_T_DATAIKTTRK_KNRI = "ZM_T_DATAIKTTRK_KNRI";
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
	
// ANK-2768-00-00 ADD START
	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";
// ANK-2768-00-00 ADD END

// OM-2016-0001806 ADD START
	/** テーブル(住所)*/
	private static final String D_TBL_NAME_ZM_M_AD = "ZM_M_AD";
// OM-2016-0001806 ADD END

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String CC_T_EFILE_KANRI_KK_SELECT_001 = "KK_SELECT_001";
	
	/** SQL定義キー(KK_SELECT_004)*/
	private static final String CH_T_TOKUSOKU_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(KK_SELECT_039)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_039 = "KK_SELECT_039";
	
	/** SQL定義キー(KK_SELECT_071)*/
	private static final String KK_T_IDO_RSV_KK_SELECT_071 = "KK_SELECT_071";
	
	/** SQL定義キー(KK_SELECT_185)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_185 = "KK_SELECT_185";
	
	/** SQL定義キー(KK_SELECT_291)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_291 = "KK_SELECT_291";
	
	/** SQL定義キー(KK_SELECT_292)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_292 = "KK_SELECT_292";

	/** SQL定義キー(KK_SELECT_048)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_048 = "KK_SELECT_048";
	
	/** SQL定義キー(KK_SELECT_016)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_016 = "KK_SELECT_016";
	
	/** SQL定義キー(KK_SELECT_007)*/
	private static final String ZM_M_CD_NM_KANRI_KK_SELECT_004= "KK_SELECT_004";
	
// OM-2016-0001806 ADD START
	/** SQL定義キー(KK_SELECT_011)*/
	private static final String ZM_M_AD_KK_SELECT_011 = "KK_SELECT_011";
// OM-2016-0001806 ADD END

// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
	/** SQL定義キー(KK_SELECT_002)*/
	private static final String ZM_T_DATAIKTTRK_KNRI_KK_SELECT_002= "KK_SELECT_002";
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
// ANK-2768-00-00 ADD START
	/** SQL定義キー(KK_SELECT_16)*/
	private static final String ZM_M_WORK_PARAM_KNRI_KK_SELECT_016 = "KK_SELECT_016";
	/** SQL定義キー(KK_SELECT_224)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_224 = "KK_SELECT_224";
	/** SQL定義キー(KK_SELECT_225)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_225 = "KK_SELECT_225";
	/** SQL定義キー(KK_SELECT_226)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_226 = "KK_SELECT_226";
// OM-2018-0001001 2018/11/07 ADD START
	/** SQL定義キー(KK_SELECT_369)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_369 = "KK_SELECT_369";
	/** SQL定義キー(KK_SELECT_099)*/
	private static final String KK_T_IDO_RSV_KK_SELECT_099 = "KK_SELECT_099";
// OM-2018-0001001 2018/11/07 ADD END
	/** テーブルアクセスクラス(工事案件対象宅内機器＿KEY工事案件番号)*/
	private JBSbatSQLAccess db_KU_T_KJAK_TG_TKKIKI = null;
	/** テーブル(工事案件対象宅内機器＿KEY工事案件番号)*/
	private static final String D_TBL_NAME_KU_T_KJAK_TG_TKKIKI = "KU_T_KJAK_TG_TKKIKI";
// ANK-2768-00-00 ADD END

	/** テーブルアクセスクラス(電子ファイル管理)*/
	private JBSbatSQLAccess db_CC_T_EFILE_KANRI = null;
	
	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;

	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;

	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(サービス契約工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
	/** テーブルアクセスクラス(ディレイド処理依頼)*/
	private JBSbatSQLAccess db_ZM_T_DATAIKTTRK_KNRI = null;
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
// ANK-2768-00-00 ADD START
	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;
// ANK-2768-00-00 ADD END

// OM-2016-0001806 ADD START
	/** テーブルアクセスクラス(住所)*/
	private JBSbatSQLAccess db_ZM_M_AD = null;
// OM-2016-0001806 ADD END

	/** コード種別コード（設備切替工事登録結果コード） */
	private static final String CD_SBT_CD_ADD_RSLT_CD = "CD01633";
	/** コード種別コード（設備切替工事登録エラーコード） */
	private static final String CD_SBT_CD_ADD_ERR_CD  = "CD01632";
	/** コード種別コード（電話連絡希望時間帯コード） */
	private static final String CD_SBT_CD_TEL_RRK_KIBO_TIME_CD  = "CD00560";	
	/** コード種別コード（連絡先種別コード） */
	private static final String CD_SBT_CD_RRKS_SHITEI_CD = "CD00254";
	
// ANK-2768-00-00 ADD START
	/** 業務パラメータID（不具合ＶＡ型式） */
	public static final String WORK_PARAM_ID_KK_BUG_VA_MODEL_01 = "KK_BUG_VA_MODEL_01";
	/** 工事案件対象宅内機器の項目名インデックスMap */
	private HashMap<Object, String> idxInsKjTkMap = new HashMap<Object, String>();
// ANK-2768-00-00 ADD END
	/** 異動区分 E-PON→GE-PON設備切替*/
	private static final String IDO_DIV = "00067";
	
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
	/** 異動区分 GE-PON→GE-PON設備切替*/
	private static final String IDO_DIV_GG = "00086";
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
	
	/** 設備切替工事登録エラーコード ファイルフォーマット */
	private static final String ERR_CD_E010 = "E010";
	/** 設備切替工事登録エラーコード サービス契約番号 */
	private static final String ERR_CD_E020 = "E020";
	/** 設備切替工事登録エラーコード 工事案件連絡事項 */
	private static final String ERR_CD_E021 = "E021";
	/** 設備切替工事登録エラーコード 工事案件備考１ */
	private static final String ERR_CD_E022 = "E022";
	/** 設備切替工事登録エラーコード 工事案件備考２ */
	private static final String ERR_CD_E023 = "E023";
	/** 設備切替工事登録エラーコード 申込者名 */
	private static final String ERR_CD_E024 = "E024";
	/** 設備切替工事登録エラーコード 宅内調査希望アポ期限年月日 */
	private static final String ERR_CD_E025 = "E025";
	/** 設備切替工事登録エラーコード 電話連絡希望時間帯コード */
	private static final String ERR_CD_E026 = "E026";
	/** 設備切替工事登録エラーコード 工事アポ連絡先指定コード */
	private static final String ERR_CD_E027 = "E027";
	/** 設備切替工事登録エラーコード 工事アポ連絡先電話番号 */
	private static final String ERR_CD_E028 = "E028";
	/** 設備切替工事登録エラーコード E100 */
	private static final String ERR_CD_E100 = "E100";
	/** 設備切替工事登録エラーコード E110 */
	private static final String ERR_CD_E110 = "E110";
	/** 設備切替工事登録エラーコード E120 */
	private static final String ERR_CD_E120 = "E120";
	/** 設備切替工事登録エラーコード E130 */
	private static final String ERR_CD_E130 = "E130";
	/** 設備切替工事登録エラーコード E140 */
	private static final String ERR_CD_E140 = "E140";
	/** 設備切替工事登録エラーコード E150 */
	private static final String ERR_CD_E150 = "E150";
	/** 設備切替工事登録エラーコード E160 */
	private static final String ERR_CD_E160 = "E160";
	/** 設備切替工事登録エラーコード E170 */
	private static final String ERR_CD_E170 = "E170";
	/** 設備切替工事登録エラーコード E180 */
	private static final String ERR_CD_E180 = "E180";
	/** 設備切替工事登録エラーコード E190 */
	private static final String ERR_CD_E190 = "E190";
	// OM-2016-0001806 ADD START
	/** 設備切替工事登録エラーコード E200 */
	private static final String ERR_CD_E200 = "E200";
	// OM-2016-0001806 ADD END
	/** 設備切替工事登録エラーコード E900 */
	private static final String ERR_CD_E900 = "E900";
	
	/** 設備切替工事登録結果コード（正常） */
	private static final String ADD_RSLT_OK = "0";
	/** 設備切替工事登録結果コード（チェックエラー） */
	private static final String ADD_RSLT_NG = "1";
	
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL START
//	/** 処理管理番号（Ｅ−ＰＯＮ→ＧＥ−ＰＯＮ設備切替） */
//	private static final String TRN_KANRI_SWCH = "000000000117";
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL END
	
	/** 設備切替工事登録エラーコード格納マップ */
	private HashMap<String, String> addErrCdMap  = null;
	/** 設備切替工事登録結果コード格納マップ */
	private HashMap<String, String> addRsltCdMap = null;
	/** 電話連絡希望時間帯コード格納マップ */
	private HashMap<String, String> telRrkKiboTimeCdMap  = null;
	/** 連絡先種別コード格納マップ */
	private HashMap<String, String> rrksShiteiCdMap = null;
	
// ANK-2768-00-00 ADD START
	// ANK-3794-00-00 MOD START
	/** 工事案件備考（不具合VA交換発生時の固定文言） */
	// private static final String KOJIAK_BIKO_BUG_VA_CHANGE = "　ＶＡ交換対象　工事当日ＶＡを交換しない場合は現地から物流Ｃ（０６−７５０１−８６９５）へ即時連絡要";
	private static final String KOJIAK_BIKO_BUG_VA_CHANGE = "　ＶＡ交換対象　工事当日ＶＡを交換しない場合は現地から物流Ｃ（０６−７５０７−１７３３）へ即時連絡要";
	// ANK-3794-00-00 MOD END
	
	/** VA交換対象固定文言 */
	public static final String VA_CHAGE_TG_DATA = "【ＶＡ交換対象】";
// ANK-2768-00-00 ADD END
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CC_T_EFILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CC_T_EFILE_KANRI);
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		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_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
		db_ZM_T_DATAIKTTRK_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DATAIKTTRK_KNRI);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
// ANK-2768-00-00 ADD START
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		db_KU_T_KJAK_TG_TKKIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KJAK_TG_TKKIKI);
// ANK-2768-00-00 ADD END
// OM-2016-0001806 ADD START
		db_ZM_M_AD = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_AD);
// OM-2016-0001806 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 初期化
		addErrCdMap  = new HashMap<String, String>();
		addRsltCdMap = new HashMap<String, String>();
		telRrkKiboTimeCdMap = new HashMap<String, String>();
		rrksShiteiCdMap = new HashMap<String, String>();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		List<HashMap<String, Object>> shoriIraiList = new ArrayList<HashMap<String, Object>>();
		shoriIraiList = JCCbatShoriIraiUtil.getShoriIraiInfo(commonItem, this.jobid);
		if (shoriIraiList == null)
		{
			// 対象データが存在しないため処理終了
			return null;
		}
		
		// 設備切替工事登録エラーコード取得
		addErrCdMap = getCdNmKanri(CD_SBT_CD_ADD_ERR_CD);
		
		// 設備切替工事登録結果コード取得
		addRsltCdMap = getCdNmKanri(CD_SBT_CD_ADD_RSLT_CD);
		
		// 電話連絡希望時間帯コード取得
		telRrkKiboTimeCdMap = getCdNmKanri(CD_SBT_CD_TEL_RRK_KIBO_TIME_CD);
		
		// 連絡先種別コード取得
		rrksShiteiCdMap = getCdNmKanri(CD_SBT_CD_RRKS_SHITEI_CD);

// OM-2015-0001770 ADD START
		int infoCount = 0;
// OM-2015-0001770 ADD END
		
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
		int errorCount = 0;
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END

		for(HashMap<String, Object> shoriIrai:shoriIraiList)
		{
			
			// 設備切替工事依頼結果リスト
			ArrayList<JBSbatServiceInterfaceMap> swchKjReqRsltList = new ArrayList<JBSbatServiceInterfaceMap>();
			
			// CASEファイル出力用データリスト
			ArrayList<HashMap<String, Object>> caseFileDataList = new ArrayList<HashMap<String, Object>>();
			
			// チェックエラー存在フラグ（設備切替工事依頼結果リスト出力時の判定処理に使用）
			boolean checkErr = false;
			
			// 入力ファイルの定義取得
			String inDefFileName = JBSbatAplConst.getAplConstValue("IND") + "KKIFM587.def";

			// ディレイド処理依頼番号
			String shoriIraiNo = (String)shoriIrai.get(JBSbatCC_T_DLYD_TRN_REQ.DLYD_TRN_REQ_NO);
			// 入力電子ファイル管理番号
			String fileKanriNo = (String)shoriIrai.get(JBSbatCC_T_DLYD_TRN_REQ.INPUT_EFILE_KANRI_NO);
			
			// 電子ファイル管理より設備切替工事依頼リストの復元
			String inFilePath = JCCBatCommon.searchDenshiFile(commonItem, fileKanriNo);
			// ReadFileOpen
			JBSbatInputFileUtil inFileUtil = new JBSbatInputFileUtil(inFilePath);
			JBSbatDefFileUtil inFileDef = new JBSbatDefFileUtil(inDefFileName, inFileUtil);
			
			super.logPrint.printDebugLog("処理日  ＝" + super.opeDate);
			super.logPrint.printDebugLog("ディレイド処理依頼番号  ＝" + shoriIraiNo);
			super.logPrint.printDebugLog("入力電子ファイル管理番号＝" + fileKanriNo);
			super.logPrint.printDebugLog("設備切替工事依頼リストのファイルパス＝" + inFilePath);
			
			// Readerオブジェクトを生成する。
			inFileUtil.createReader();
			
			// 入力ファイルのレコード件数
			int inFileRecordCnt = 0;

			while (inFileUtil.ready()) 
			{
				// ファイルから１レコード取得
				String line = inFileUtil.readLine();
				
				// レコード件数カウント
				inFileRecordCnt++;
				
				// １レコードの情報をマップに格納
				JBSbatServiceInterfaceMap recordMap = inFileDef.lineToObject(line, inFileUtil, inFileRecordCnt);
				
				// サービス契約情報
				HashMap<String, Object> svcKeiMap = new HashMap<String, Object>();
				// サービス契約回線内訳情報
				HashMap<String, Object> svkeiKaisenUwMap = new HashMap<String, Object>();
				// 機器提供サービス契約情報
				HashMap<String, Object> kktkSvcKeiMap = new HashMap<String, Object>();
// ANK-2768-00-00 ADD START
				// 不具合VA機器提供サービス契約情報
				HashMap<String, Object> ngVakktkSvcKeiMap = new HashMap<String, Object>();
				// 不具合BBR機器提供サービス契約情報
				HashMap<String, Object> ngBbrkktkSvcKeiMap = new HashMap<String, Object>();
// ANK-2768-00-00 ADD END

				// 登録チェック処理
				String errCd = checkMain(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap);
				
				// チェックエラーの場合
				if (!errCd.isEmpty())
				{
					swchKjReqRsltList.add(setSwchKjReqRslt(recordMap.getMap(), errCd));
					checkErr = true;
// OM-2015-0001770 MOD START
//					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
//					errorCount++;
//					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
					infoCount++;
// OM-2015-0001770 MOD END
					// 次レコードを処理
					continue;
				}
				
// ANK-2768-00-00 ADD START
				// E-PON→GE-PON設備切替対象の契約者が不具合ＶＡを保持しているかチェックし、保持している場合は後続処理で不具合ＶＡの交換登録を行う。
				// 交換パターン選定：
				// 交換パターン[0]＝VA交換しない（デフォルト）
				// 交換パターン[1]＝VA→VA交換（不具合VA保持＋無線RT保持ORルータなし／VAのみ交換形式）
				// 交換パターン[2]＝VA→多機能交換（不具合VA保持＋有線RT保持のみ／VA＋BBRから多機能へ解約・新規形式）
				int vaChgpatan = 0;
				if ("1".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
				{
					// -------------------不具合ＶＡ交換チェック 開始-------------------
					// 業務パラメータより、業務パラメータIDが"KK_BUG_VA_MODEL_CD_01"の業務パラメータ設定値を取得する。 
					executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(new String[]{WORK_PARAM_ID_KK_BUG_VA_MODEL_01 ,super.opeDate ,super.opeDate});
					JBSbatCommonDBInterface workParamKnriInf = db_ZM_M_WORK_PARAM_KNRI.selectNext();
					
					String workparamSetteValue = new String();
					// 不具合ＶＡ型式の業務パラメータ値が存在する場合
					if (null != workParamKnriInf)
					{
						// 『KK_BUG_VA_MODEL_CD_01』の業務パラメータ設定値を取得し、保持する
						workparamSetteValue = workParamKnriInf.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE);
					}
					
					// 設備切替工事依頼リスト.お客様IDと同じ回線で利用中のＶＡ(型式)を取得し、業務パラメータ設定値に該当するＶＡが存在するかチェックする。
					// 設備切替工事依頼リスト.お客様ID取得
					String svcKeiNo =  (String)recordMap.getString(JBSbatKKIFM587.SVC_KEI_NO);
					// 機器提供サービス契約情報を取得
					executeKK_T_KKTK_SVC_KEI_KK_SELECT_224(new String[]{
							svcKeiNo,
							super.opeDate,
							super.opeDate,
							super.opeDate,
							super.opeDate,
							super.opeDate,
							super.opeDate,
							super.opeDate});
					JBSbatCommonDBInterface kktkSvcKeiInfo = db_KK_T_KKTK_SVC_KEI.selectNext();
					
					// VA機器の型式番号を取得する
					String vaKikiTaknakikiModelCd = new String();
					// 利用中VA機器の機器提供サービス契約番号を取得
					String vakktkSvcKeiNo =  new String();
					// VA機器が存在すれば、その情報を取得する
					if (null != kktkSvcKeiInfo)
					{
						vaKikiTaknakikiModelCd = kktkSvcKeiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.TAKNKIKI_MODEL_CD);
						vakktkSvcKeiNo = kktkSvcKeiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
					}
					
					// 不具合VA情報の確定判定を行う
					// 不具合VA情報_機器提供サービス契約場号
					String ngVAkikiInfo_kktkSvcKeiNo = new String();
					// 不具合VA情報_宅内型式コード
					String ngVAkikiInfo_taknakikiModelCd = new String();
					// 不具合BBR情報（VA→多機能へ交換時に序に交換になる有線RT）_機器提供サービス契約番号
					String ngBbrkikiInfo_kktkSvcKeiNo = new String();
					// VA機器の型式番号が取得できた場合、即ち該当データの回線上の電話サービス
					if (vaKikiTaknakikiModelCd != null && !"".equals(vaKikiTaknakikiModelCd))
					{
						// 業務パラメータから『KK_BUG_VA_MODEL_CD_01』が取得できた場合
						if (workparamSetteValue != null && !"".equals(workparamSetteValue)) {
							// KK_BUG_VA_MODEL_CD_01で取得した業務パラメータ値に対して『カンマ区切』で分割
							String[] splitWorkparamSetteValue = workparamSetteValue.split(",", 0);
							
							// 電話サービスに紐付くVA機器の型式番号（vaKikiTaknakikiModelCd）と突合する
							for (int spv=0; spv< splitWorkparamSetteValue.length ;spv ++) {
								// 突合の結果、マスタで設定していた不具合VAの型式と使用中VAの型式が一致すれば不具合VA存在と判断
								if (vaKikiTaknakikiModelCd.equals((String)splitWorkparamSetteValue[spv]))
								{
									// 不具合VAとして機器情報を確定し、後続判断のため別変数名へ代入
									ngVAkikiInfo_taknakikiModelCd = vaKikiTaknakikiModelCd;
									ngVAkikiInfo_kktkSvcKeiNo = vakktkSvcKeiNo;
									break;
								}
								else
								{
									// 突合の結果、マスタで設定していた不具合VAの型式と使用中VAの型式が一致しない場合は次候補へ
								}
							}
						}
						else
						{
							// 業務パラメータから『KK_BUG_VA_MODEL_CD_01』が取得できない場合はそもそも何もしない
						}
						
					}
					else
					{
						// VA機器利用していない場合は不具合VAの対象が存在しない
					}
					
					//  不具合VAとして機器情報が確定である場合（不具合VA機器提供サービス契約場号と型式場番号が空白でない場合）
					if (ngVAkikiInfo_taknakikiModelCd != null && !"".equals(ngVAkikiInfo_taknakikiModelCd) &&
							ngVAkikiInfo_kktkSvcKeiNo != null && !"".equals(ngVAkikiInfo_kktkSvcKeiNo)) {
						// 設備切替工事依頼リスト.お客様IDと同じ回線で予約中のＶＡを取得する。
						// INパラメータ1:設備切替工事依頼リスト.お客様ID、INパラメータ2:不具合VA機器提供サービス契約場号
						executeKK_T_IDO_RSV_KK_SELECT_071(new String[]{svcKeiNo, ngVAkikiInfo_kktkSvcKeiNo, super.opeDate});
						JBSbatCommonDBInterface idoRsvInfo = db_KK_T_IDO_RSV.selectNext();
						// VA機器の異動予約が存在するため、不具合VAの交換はしない
						if (0 < Integer.parseInt(idoRsvInfo.getString("CNT")))
						{
							// 不具合VA情報_機器提供サービス契約場号を初期化する
							ngVAkikiInfo_kktkSvcKeiNo = new String();
							// 不具合VA情報_宅内型式コードを初期化する
							ngVAkikiInfo_taknakikiModelCd = new String();
						}
						else
						{
							// VA機器の異動予約が存在しない場合
							// 設備切替工事依頼リスト.お客様IDと同じ回線に有効な状態の多機能ルーターを取得する
							// 機器提供サービス契約情報を取得
							executeKK_T_KKTK_SVC_KEI_KK_SELECT_225(new String[]{svcKeiNo,
									super.opeDate,
									super.opeDate});
							JBSbatCommonDBInterface mtrKikiInfo = db_KK_T_KKTK_SVC_KEI.selectNext();
							// 有効な多機能RTが存在すれば、不具合VAの交換はしない
							if (0 < Integer.parseInt(mtrKikiInfo.getString("CNT")))
							{
								// 不具合VA情報_機器提供サービス契約場号を初期化する
								ngVAkikiInfo_kktkSvcKeiNo = new String();
								// 不具合VA情報_宅内型式コードを初期化する
								ngVAkikiInfo_taknakikiModelCd = new String();
							}
							else
							{
								// この時点でVA→VAまたはVA→多機能のどちらかのパターンになります。
								// 設備切替工事依頼リスト.お客様IDと同じ回線で利用中のＢＢＲ(有線ルーター)を取得する。
								executeKK_T_KKTK_SVC_KEI_KK_SELECT_226(new String[]{svcKeiNo,
										super.opeDate,
										super.opeDate,
										super.opeDate,
										super.opeDate,
										super.opeDate,
										super.opeDate});
								JBSbatCommonDBInterface bbrKikiInfo = db_KK_T_KKTK_SVC_KEI.selectNext();
								
								// BBRが存在する場合、VA→多機能へ交換
								if (null != bbrKikiInfo)
								{
// IT2-2016-0000028 MOD START
//									// VAから多機能へ交換する際に同時交換されるBBRの情報を保持
//									ngBbrkikiInfo_kktkSvcKeiNo = bbrKikiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
//									// 不具合VA情報(機器提供サービス契約番号、製造番号はそのまま保持／クリアしない)
//									vaChgpatan = 2;
//									// 不具合VA機器マップを設定
//									ngVakktkSvcKeiMap.putAll(kktkSvcKeiInfo.getMap());
//									// 不具合BRR機器マップを設定
//									ngBbrkktkSvcKeiMap.putAll(bbrKikiInfo.getMap());
									// VAから多機能へ交換する際に同時交換されるBBRの情報を保持
									ngBbrkikiInfo_kktkSvcKeiNo = bbrKikiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
									String bbrKktkSvcKeiStat = bbrKikiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT);
									if ("100".equals(bbrKktkSvcKeiStat))
									{
										// 不具合VA情報(機器提供サービス契約番号、製造番号はそのまま保持／クリアしない)
										vaChgpatan = 2;
										// 不具合VA機器マップを設定
										ngVakktkSvcKeiMap.putAll(kktkSvcKeiInfo.getMap());
										// 不具合BRR機器マップを設定
										ngBbrkktkSvcKeiMap.putAll(bbrKikiInfo.getMap());
									}
									// サービス開始したBBRでなければ、不具合VAの交換も実施しないため、パラメータ一律初期化する
									else
									{
										vaChgpatan = 0;
										// 不具合VA情報_機器提供サービス契約場号を初期化する
										ngVAkikiInfo_kktkSvcKeiNo = new String();
										// 不具合VA情報_宅内型式コードを初期化する
										ngVAkikiInfo_taknakikiModelCd = new String();
										// 不具合BBR情報_機器提供サービス契約番号を初期化する
										ngBbrkikiInfo_kktkSvcKeiNo = new String();
										// 不具合機器情報のマップも初期化する
										ngVakktkSvcKeiMap = new HashMap<String, Object>();
										ngBbrkktkSvcKeiMap = new HashMap<String, Object>();
									
									}
// IT2-2016-0000028 MOD START
								}
								// BBRが存在しない場合、VA→VAへ交換
								else
								{
									// 不具合VA情報(機器提供サービス契約番号、製造番号はそのまま保持／クリアしない)
									vaChgpatan = 1;
									ngVakktkSvcKeiMap.putAll(kktkSvcKeiInfo.getMap());
								}
							}
						}
					}
					else
					{
						// 不具合VA機器が存在しないため、交換は発生しない
					}
					
					// 各交換パターンの整合性を確認
					boolean chgPatanFlg = false;
					if (vaChgpatan == 2) {
						if (ngVAkikiInfo_kktkSvcKeiNo != null && !"".equals(ngVAkikiInfo_kktkSvcKeiNo) &&
								ngVAkikiInfo_taknakikiModelCd != null && !"".equals(ngVAkikiInfo_taknakikiModelCd) &&
								ngBbrkikiInfo_kktkSvcKeiNo !=null && !"".equals(ngBbrkikiInfo_kktkSvcKeiNo)
						
						)
						{
							//　不具合VA情報、多機能へ交換するBBRの機器契約番号が共に有効値であれば整合性OK
							chgPatanFlg = true;
						}
					}
					else if(vaChgpatan == 1){
						if (ngVAkikiInfo_kktkSvcKeiNo != null && !"".equals(ngVAkikiInfo_kktkSvcKeiNo) &&
								ngVAkikiInfo_taknakikiModelCd != null && !"".equals(ngVAkikiInfo_taknakikiModelCd) &&
								(ngBbrkikiInfo_kktkSvcKeiNo ==null || "".equals(ngBbrkikiInfo_kktkSvcKeiNo))
						
						)
						{
							//　不具合VA情報が有効値、多機能へ交換するBBRの機器契約番号が空白であれば整合性OK
							chgPatanFlg = true;
						}
					}
					else {
						// 交換しないパターンは整合性チェックしない
					}
					
					// 万が一ここで整合性が合わない場合はVA交換しない様にする
					if (!chgPatanFlg) {
						// 不具合VA情報_機器提供サービス契約場号を初期化する
						ngVAkikiInfo_kktkSvcKeiNo = new String();
						// 不具合VA情報_宅内型式コードを初期化する
						ngVAkikiInfo_taknakikiModelCd = new String();
						// 不具合BBR情報_機器提供サービス契約番号を初期化する
						ngBbrkikiInfo_kktkSvcKeiNo = new String();
						// 不具合機器情報のマップも初期化する
						ngVakktkSvcKeiMap = new HashMap<String, Object>();
						ngBbrkktkSvcKeiMap = new HashMap<String, Object>();
					}
					// -------------------不具合ＶＡ交換チェック 終了-------------------
				}
// ANK-2768-00-00 ADD END		
				// 工事案件登録のためサービスを呼び出す
				try
				{
					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
//					invokeService(recordMap.getMap(), svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap);
// ANK-2768-00-00 MOD START
//					HashMap<String, Object> outputMap = invokeService(recordMap.getMap(), svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap);
					HashMap<String, Object> outputMap = invokeService(recordMap.getMap(), svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap, ngVakktkSvcKeiMap, ngBbrkktkSvcKeiMap);
// ANK-2768-00-00 ADD END
					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END

					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
					String returnCode = outputMap.get(JCCBatchEsbInterface.RETURN_CODE).toString();
					if(!JCCBatchEsbInterface.RETURN_CODE_SUCCESS.equals(returnCode))
					{
						// エラーコード設定
						swchKjReqRsltList.add(setSwchKjReqRslt(recordMap.getMap(), ERR_CD_E900));
						checkErr = true;
						// エラーログ出力
// OM-2015-0001770 MOD START
//						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW,
						commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB1220CI,
								new String[]{"サービス契約番号：" + (String)recordMap.getMap().get(JBSbatKKIFM587.SVC_KEI_NO)});
//						errorCount++;
						infoCount++;
// OM-2015-0001770 MOD END
						// 次レコードを処理
						continue;
					}
					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
// ANK-2768-00-00 ADD START
					// 新設工事案件番号を取得する
					HashMap<String, Object> map = (HashMap<String, Object>)outputMap.get("KKSV078501CC");
					String new_kojiak_no = (String)map.get("new_kojiak_no");
					String taknkiki_model_cd = (String)map.get("taknkiki_model_cd");
					String kiki_chg_no = (String)map.get("kiki_chg_no");
					String kktk_svc_kei_no = (String)map.get("kktk_svc_kei_no");
					if (new_kojiak_no != null && !"".equals(new_kojiak_no))
					{
						// 工事案件対象宅内機器の項目名インデックスMapの作成
						idxInsKjTkMap = new HashMap<Object, String>();
						idxInsKjTkMap = createIdxInsKjTkMap();
						
						// 新設側に対して、VA機器の登録を行う
						// 工事案件対象宅内機器に登録するパラメータを格納する配列
						Object[] setParamTgTkkiki = new Object[JKUStrConst.COLUMN_CNT_KU_T_KJAK_TG_TKKIKI];
						
						// 工事案件対象宅内機器番号
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_TRGT_TAKNKIKI_NO))] = JKUBatCommon.padNumFormString(JKUBatCommon.getNextSeq(this.commonItem, JKUStrConst.SEQ_KOJIAK_TRGT_TAKNKIKI_NO), 12);
						// 工事案件対象宅内機器ステータス
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_TRGT_TAKNKIKI_STAT))] = JKUStrConst.CD00474_UK_ZM;
						// 工事案件番号
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_NO))] = new_kojiak_no;
						// STC_TEKKYO_FLG
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.STC_TEKKYO_FLG))] = "1";
						// TAKNKIKI_SBT_CD
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_SBT_CD))] = "50";
						// TAKNKIKI_IDO_CD
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_IDO_CD))] = "01";
						// RSV_TAKNKIKI_MODEL_CD
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_TAKNKIKI_MODEL_CD))] = taknkiki_model_cd;
						// RSV_ROUTER_RENT_CD
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_ROUTER_RENT_CD))] = "0";
						// RSV_KIKI_CHG_NO
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_KIKI_CHG_NO))] = kiki_chg_no;
						// KKTK_SVC_KEI_NO
						setParamTgTkkiki[Integer.parseInt(idxInsKjTkMap.get(JBSbatKU_T_KJAK_TG_TKKIKI.KKTK_SVC_KEI_NO))] = kktk_svc_kei_no;
						
						// 工事案件対象宅内機器を登録する
						executeKU_T_KJAK_TG_TKKIKI_PKINSERT(setParamTgTkkiki);
						super.commit();
					}
// ANK-2768-00-00 ADD END
				}
				catch (Throwable e)
				{
					// エラーコード設定
					swchKjReqRsltList.add(setSwchKjReqRslt(recordMap.getMap(), ERR_CD_E900));
					checkErr = true;
					//フレームワークがエラーログにスタックトレースを出さないので、独自にエラーログ出力する
					super.logPrint.printErrMsg(JPCBatchMessageConstant.ECCB0110CE, e, new String[]{});
					// システムエラーが発生しても処理を続行する
					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
//					super.commonItem.setErrFlg(true);
					errorCount++;
					// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
					// 次レコードを処理
					continue;
				}
				
				// 正常に登録したため、正常としてファイル出力を行う
				swchKjReqRsltList.add(setSwchKjReqRslt(recordMap.getMap(), null));	
				
				// CASEファイル出力データの編集
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
//				caseFileDataList.add(setCaseFileData(recordMap.getMap()));
// ANK-2768-00-00 MOD START
//				caseFileDataList.add(setCaseFileData(recordMap.getMap(),svkeiKaisenUwMap));
				caseFileDataList.add(setCaseFileData(recordMap.getMap(),svkeiKaisenUwMap, vaChgpatan));
// ANK-2768-00-00 MOD END
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END
			}
			
			// 設備切替工事依頼結果リスト出力
			if(!JKKStringUtil.isNullEmpty(swchKjReqRsltList))
			{
				// ファイル名などの出力ファイル情報をフリー項目から取得
				String[] outMidFile = freeItem.split(JKKBatConst.S_PARAM_DELIM);
				
				JBSbatOutputItem outputBean = new JBSbatOutputItem();
				for (JBSbatServiceInterfaceMap outMap : swchKjReqRsltList) {
					outMap.setOutFlg(true);
					outputBean.addOutMapList(outMap);
				}
				
				
				// 設備切替工事依頼結果リストの出力先パスを取得（スラッシュ付）
				String outFilePath = outMidFile[0];
				
				// 設備切替工事依頼結果リストのファイル名を編集
				String sysDateTimeStamp = JCCBatCommon.getSysDateTimeStamp();
				String timeStamp = sysDateTimeStamp.substring(8);
				String opeDateTime = super.onlineOpeDate + timeStamp;
				String outFileName =  "KKIFM588001_" + opeDateTime + ".csv";

				// 設備切替工事依頼結果リストをファイル出力する
				JKKBatOutputUtil.editOutFile(super.commonItem, outputBean, "KKIFM588", outFilePath, outFileName);
				
				String outFileFullPath = outFilePath + outFileName;
				
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
				// 処理管理番号の取得を行う
				String trn_kanri_swch = "000000000117";
				executeZM_T_DATAIKTTRK_KNRI_KK_SELECT_002(new String[]{shoriIraiNo});
				JBSbatCommonDBInterface dateIkKriInfo = db_ZM_T_DATAIKTTRK_KNRI.selectNext();
				if (null == dateIkKriInfo)
				{
					// 何もしない
				}
				else
				{
					trn_kanri_swch = dateIkKriInfo.getString("TRN_KANRI_NO");
				}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
				// 電話ファイル管理に登録する日本語のファイル名
				String outFileNhngName = "設備切替工事依頼結果リスト_" + opeDateTime + ".csv";
				if (checkErr)
				{
					// チェックエラーありのため、ディレイド処理依頼結果コードを"業務エラー"で更新
					HashMap<String, String> retMap = JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "2", outFileFullPath);
					// エラーファイルの電子ファイル管理番号取得して、ダウンロードファイル管理に登録
					String eFileKanriNo = retMap.get("EFILE_KAMRI_NO");
					if(!JKKStringUtil.isNullBlank(eFileKanriNo))
					{
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
//						insertZM_T_DL_FILE_KANRI(eFileKanriNo, outFileNhngName, outFileFullPath, inFileRecordCnt);
						insertZM_T_DL_FILE_KANRI(eFileKanriNo, outFileNhngName, outFileFullPath, inFileRecordCnt, trn_kanri_swch);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END
					}
				}
				else
				{
					// チェックエラーなしのため、ディレイド処理依頼結果コードを"完了"で更新
					JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "1", null);
					
					// 設備切替工事依頼結果リストを電子ファイル管理スキーマに設定
					String[] denshiRet = JCCBatCommon.createDenshiFile(super.commonItem, "0000", outFileFullPath, null);
					
					// ダウンロードファイル管理に登録
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
//					insertZM_T_DL_FILE_KANRI(denshiRet[0], outFileNhngName, outFileFullPath, inFileRecordCnt);
					insertZM_T_DL_FILE_KANRI(denshiRet[0], outFileNhngName, outFileFullPath, inFileRecordCnt, trn_kanri_swch);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END
				}
			}
			
			// CASEファイル出力
			if(!JKKStringUtil.isNullEmpty(caseFileDataList))
			{
				JKKBatEponSwchKjCaseFileSksi.sksiCaseFile(commonItem, caseFileDataList);
			}
			
		}

// OM-2015-0001770 ADD START
		// 登録チェックエラーが存在する場合
		if (0 < infoCount)
		{
			// 「%1% ファイル出力件数 = %2%」
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0760AI,
					new String[] { "設備切替工事依頼結果リスト", Integer.toString(infoCount) + "(INFO)" });
		}
// OM-2015-0001770 ADD END
		
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
		// エラー（業務エラー、システムエラー）が存在する場合
		if (0 < errorCount)
		{
			// 単一サービス呼び出しパターンの場合は、エラー件数を設定することで警告終了する
			commonItem.setErrorCount(errorCount);
		}
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CC_T_EFILE_KANRI.close();
		db_CH_T_TOKUSOKU.close();
		db_KK_T_ADCHG_DTL.close();
		db_KK_T_IDO_RSV.close();
		db_KK_T_KKTK_SVC_KEI.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_ZM_M_CD_NM_KANRI.close();
		db_ZM_T_DL_FILE_KANRI.close();
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
		db_ZM_T_DATAIKTTRK_KNRI.close();
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END
// ANK-2768-00-00 ADD START
		db_ZM_M_WORK_PARAM_KNRI.close();
		db_KU_T_KJAK_TG_TKKIKI.close();
// ANK-2768-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		addErrCdMap  = null;
		addRsltCdMap = null;
		telRrkKiboTimeCdMap = null;
		rrksShiteiCdMap = null;
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 *		 	コード種別コード
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_KK_SELECT_004(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_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_KK_SELECT_004);
	}

	/**
	 * SQLKEY(KK_SELECT_291)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	予約適用年月日
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_291(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_291);
	}
	
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
	/**
	 * ディレイド処理依頼でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	予約適用年月日
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_T_DATAIKTTRK_KNRI_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_T_DATAIKTTRK_KNRI.selectBySqlDefine(paramList, ZM_T_DATAIKTTRK_KNRI_KK_SELECT_002);
	}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END

	/**
	 * SQLKEY(KK_SELECT_292)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約回線内訳番号
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_292(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_292);
	}

	/**
	 * SQLKEY(KK_SELECT_048)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	回線内訳使用開始年月日
	 *		 	回線内訳使用開始年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_048(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_048);
	}

	/**
	 * SQLKEY(KK_SELECT_185)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約回線内訳番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_185(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_185);
	}

	/**
	 * SQLKEY(KK_SELECT_016)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SVKEI_KOJIAK_KK_SELECT_016(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_016);
	}

	/**
	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	課金先適用開始年月日
	 *		 	課金先適用終了年月日
	 *		 	督促管理開始年月日
	 *		 	督促管理終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_KK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_CH_T_TOKUSOKU.selectBySqlDefine(paramList, CH_T_TOKUSOKU_KK_SELECT_004);
	}

	/**
	 * SQLKEY(KK_SELECT_039)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	変更前識別番号
	 *		 	変更後識別番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHG_DTL_KK_SELECT_039(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_039);
	}

	/**
	 * SQLKEY(KK_SELECT_071)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	機器提供サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_IDO_RSV_KK_SELECT_071(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		// OM-2015-0000503 2015/04/08 ADD START
		paramList.setValue(param[2].toString());
		// OM-2015-0000503 2015/04/08 ADD END

		// DBアクセスを実行します
		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_KK_SELECT_071);
	}
	
	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	電子ファイル管理番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCC_T_EFILE_KANRI_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CC_T_EFILE_KANRI.selectBySqlDefine(paramList, CC_T_EFILE_KANRI_KK_SELECT_001);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ファイル番号				FILE_NO
	 *		 	処理管理番号				TRN_KANRI_NO
	 *		 	電子ファイル管理番号				EFILE_KANRI_NO
	 *		 	ファイル名				FILE_NM
	 *		 	ファイルサイズ				FILE_SIZE
	 *		 	データ件数				DATA_CNT
	 *		 	ファイル登録年月日時分秒				FILE_ADD_DTM
	 *		 	ファイル削除年月日				FILE_DEL_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_T_DL_FILE_KANRI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("FILE_NO", setParam[0]);
		setMap.setValue("TRN_KANRI_NO", setParam[1]);
		setMap.setValue("EFILE_KANRI_NO", setParam[2]);
		setMap.setValue("FILE_NM", setParam[3]);
		setMap.setValue("FILE_SIZE", setParam[4]);
		setMap.setValue("DATA_CNT", setParam[5]);
		setMap.setValue("FILE_ADD_DTM", setParam[6]);
		setMap.setValue("FILE_DEL_YMD", setParam[7]);
		setMap.setValue("ADD_DTM", setParam[8]);
		setMap.setValue("ADD_OPEACNT", setParam[9]);
		setMap.setValue("UPD_DTM", setParam[10]);
		setMap.setValue("UPD_OPEACNT", setParam[11]);
		setMap.setValue("DEL_DTM", setParam[12]);
		setMap.setValue("DEL_OPEACNT", setParam[13]);
		setMap.setValue("MK_FLG", setParam[14]);
	
		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 設備切替工事依頼結果リスト内容をマップオブジェクトへ設定する。<br>
	 * @param  inMap 入力ファイルの１レコード分を格納したHashMap
	 * @param  errCd チェックエラーコード（正常の場合はNULLもしくは空文字を設定）
	 * @return JBSbatServiceInterfaceMap 出力ファイル記載内容１件分
	 * @throws Exception
	 */
	private JBSbatServiceInterfaceMap setSwchKjReqRslt(HashMap<String, Object> inMap, String errCd) throws Exception
	{
		JBSbatServiceInterfaceMap result = new JBSbatServiceInterfaceMap();
		
		String addRslt   = addRsltCdMap.get(ADD_RSLT_OK);
		String addYmd    = super.opeDate;
		String addErrRsn = "";
		
		if(!JKKStringUtil.isNullBlank(errCd))
		{
			// チェックエラーのため、エラー用の出力内容を設定
			addRslt   = addRsltCdMap.get(ADD_RSLT_NG);
			addYmd    = "";
			addErrRsn = addErrCdMap.get(errCd);
		}
		
		// サービス契約番号（お客様ＩＤ）
		result.set(JBSbatKKIFM588.SVC_KEI_NO, inMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		// 工事案件連絡事項（連絡事項）
		result.set(JBSbatKKIFM588.KOJIAK_RRK_JIKO, inMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO));
		// 工事案件備考１
		result.set(JBSbatKKIFM588.KOJIAK_BIKO_1, inMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1));
		// 工事案件備考２
		result.set(JBSbatKKIFM588.KOJIAK_BIKO_2, inMap.get(JBSbatKKIFM587.KOJIAK_BIKO_2));
		// 申込者名（申込者）
		result.set(JBSbatKKIFM588.MSKMSHA_NM, inMap.get(JBSbatKKIFM587.MSKMSHA_NM));
		// 宅内調査希望アポ期限年月日（工事アポ予定完了期日）
		result.set(JBSbatKKIFM588.TAKCHO_KIBO_APO_KIGEN_YMD, inMap.get(JBSbatKKIFM587.TAKCHO_KIBO_APO_KIGEN_YMD));
		// 電話連絡希望時間帯コード（工事アポ希望時間）
		result.set(JBSbatKKIFM588.TEL_RRK_KIBO_TIME_CD, inMap.get(JBSbatKKIFM587.TEL_RRK_KIBO_TIME_CD));
		// 工事アポ連絡先指定コード（アポ希望連絡先）
		result.set(JBSbatKKIFM588.KOJI_APO_RRKS_SHITEI_CD, inMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_SHITEI_CD));
		// 工事アポ連絡先電話番号（アポ希望連絡先番号）
		result.set(JBSbatKKIFM588.KOJI_APO_RRKS_TELNO, inMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_TELNO));
		// 登録結果
		result.set(JBSbatKKIFM588.ADD_RSLT,    addRslt);
		// 登録日
		result.set(JBSbatKKIFM588.ADD_YMD,     addYmd);
		// 登録エラーコード
		result.set(JBSbatKKIFM588.ADD_ERR_CD,  errCd);
		// 登録エラー理由
		result.set(JBSbatKKIFM588.ADD_ERR_RSN, addErrRsn);
		result.setOutFlg(true);
		
		return result;
	}
	
	/**
	 * CASEファイルに出力するデータを設定する。<br>
	 * @param  inMap 入力ファイルの１レコード分を格納したHashMap
	 * @return JBSbatServiceInterfaceMap CASEファイル記載内容１件分
	 * @throws Exception
	 */
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD START
//	private HashMap<String, Object> setCaseFileData(HashMap<String, Object> inMap) throws Exception
// ANK-2768-00-00 MOD START
//	private HashMap<String, Object> setCaseFileData(HashMap<String, Object> inMap,HashMap<String, Object> svcKeiKaiaenUcwk) throws Exception
	private HashMap<String, Object> setCaseFileData(HashMap<String, Object> inMap,HashMap<String, Object> svcKeiKaiaenUcwk, int vaChgpatan) throws Exception
// ANK-2768-00-00 MOD END
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 MOD END
	{
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		// サービス契約番号
		result.put(JKKBatEponSwchKjCaseFileSksi.SVC_KEI_NO, inMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
		// PON種別コードの設定
		result.put(JKKBatEponSwchKjCaseFileSksi.PON_SBT_CD, svcKeiKaiaenUcwk.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD));
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
// ANK-2768-00-00 ADD START
		// 不具合VA交換発生有無の設定
		// 
		if (vaChgpatan == 0) {
			result.put(JKKBatEponSwchKjCaseFileSksi.BUG_VA_CHANGE_UMU, new String());
		}
		else {
			result.put(JKKBatEponSwchKjCaseFileSksi.BUG_VA_CHANGE_UMU, VA_CHAGE_TG_DATA);
		}
// ANK-2768-00-00 ADD END
		return result;
	}

	/**
	 * ダウンロードファイル管理テーブルの登録を行います。
	 * <br>
	 * @param eFileKanriNo 電子ファイル管理番号
	 * @param fileName   ファイル名
	 * @param filePath   ファイルパス
	 * @param rowCnt     データ件数
	 * @throws Exception 
	 */
// 
//	private void insertZM_T_DL_FILE_KANRI(String eFileKanriNo, String fileName, String filePath, int rowCnt) throws Exception
	private void insertZM_T_DL_FILE_KANRI(String eFileKanriNo, String fileName, String filePath, int rowCnt, String trn_kanri_swch) throws Exception
// 
	{
		JBSbatCommonDBInterface eFileInfo = getEfileKanriInfo(eFileKanriNo);
		
		// パラメータ設定
		Object[] prm = new Object[15];
		prm[0] = JKKBatCommon.getFormatedNextSeq(commonItem, "SEQ_FILE_NO", "", 12);
		prm[1] = trn_kanri_swch;
		prm[2] = eFileKanriNo;
		prm[3] = fileName;
		prm[4] = JCCFileUtil.getFileSize(filePath);
		prm[5] = String.valueOf(rowCnt);
		prm[6] = eFileInfo.getString(JBSbatCC_T_EFILE_KANRI.ADD_DTM);
		prm[7] = eFileInfo.getString(JBSbatCC_T_EFILE_KANRI.FILE_DEL_YMD);
		prm[8] = JBSbatDateUtil.getSystemDateTimeStamp();
		prm[9] = "SYSTEM";
		prm[10] = JBSbatDateUtil.getSystemDateTimeStamp();
		prm[11] = "SYSTEM";
		prm[12] = null;
		prm[13] = null;
		prm[14] = "0";

		executeZM_T_DL_FILE_KANRI_PKINSERT(prm);
	}

	/**
	 * 電子ファイル管理スキーマより、電子ファイル管理の情報を取得します。
	 * 
	 * @param eFileNO 		電子ファイル管理番号
	 * @return dbMap		電子ファイル管理の情報
	 * @throws Exception 　業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getEfileKanriInfo(String eFileKanriNo) throws Exception
	{
		Object[] param = new Object[1];
		param[0] = eFileKanriNo;
		
		// SQL実行
		executeCC_T_EFILE_KANRI_KK_SELECT_001(param);
		
		// 結果取得
		JBSbatCommonDBInterface dbMap = db_CC_T_EFILE_KANRI.selectNext();
		
		if (dbMap == null)
		{
			// DB未存在エラー
			String[] msgParam = new String[]
			{ JBSbatCC_T_EFILE_KANRI.TABLE_NAME };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0720KW, msgParam);
		}
		return dbMap;
	}

	/**
	 * コード名称管理より該当のコード種別のコードを取得します。
	 * <br>
	 * @param cdSbtCd  コード種別コード
	 * @return 
	 * @throws Exception 
	 */
	private HashMap<String, String> getCdNmKanri(String cdSbtCd) throws Exception
	{
		HashMap<String, String> resultMap  = new HashMap<String, String>();
		
		Object[] prm = new Object[]{cdSbtCd, super.opeDate, super.opeDate};
		executeZM_M_CD_NM_KANRI_KK_SELECT_004(prm);
		
		// 取得したコード名称管理の内容をハッシュテーブルに格納する
		JBSbatCommonDBInterface dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		while(dbMap != null)
		{
			// 「コード区分」をキーに「コード区分名」を設定する
			resultMap.put(
					dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV), dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM));
			dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		
		return resultMap;
	}
	
	/**
	 * 登録チェックを行います。
	 * <br>
	 * @param recordMap 設備切替工事依頼リストの１レコードの情報
	 * @param svcKeiMap サービス契約情報（返却用）
	 * @param svkeiKaisenUwMap サービス契約回線内訳情報（返却用）
	 * @param kktkSvcKeiMap 機器提供サービス契約情報（返却用）
	 * @return 設備切替工事登録エラーコード
	 */
	private String checkMain(JBSbatServiceInterfaceMap recordMap,
			HashMap<String, Object> svcKeiMap,
			HashMap<String, Object> svkeiKaisenUwMap,
			HashMap<String, Object> kktkSvcKeiMap)
	throws Exception
	{
		// (a)ファイルチェック

		// フォーマットチェック
		if (recordMap.isInputErrorFlg())
		{
			// １レコードの項目数が異なる
			return ERR_CD_E010;
		}
		
		// 必須・属性・桁数チェック
		String result = singleCheck(recordMap.getMap());
		
		if (!JKKStringUtil.isNullBlank(result))
		{
			return result;
		}

		// (b) サービス契約チェック

		// サービス契約情報を取得
		String svcKeiNo = recordMap.getString(JBSbatKKIFM587.SVC_KEI_NO);
		executeKK_T_SVC_KEI_KK_SELECT_291(new String[]{super.opeDate, svcKeiNo});
		JBSbatCommonDBInterface svcKeiInfo = db_KK_T_SVC_KEI.selectNext();

		// サービス契約に存在しないお客様IDの場合、チェックエラーとする
		if (null == svcKeiInfo)
		{
			return ERR_CD_E100;
		}

		// サービス契約情報を戻す
		svcKeiMap.putAll(svcKeiInfo.getMap());

		// サービス契約の契約内容が設備切替工事対象外である場合、チェックエラーとする
		String prcGrpCd = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD);
		String pplanCd = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD);
		// 「eo光ネットホームタイプ」（料金グループコード）、
		// 「１番号コース（ホームタイプ）」「２番号コース（ホームタイプ）」（料金プランコード）のいずれでもない場合
		if (!JKKStrConst.CD00133_02.equals(prcGrpCd)
			&& !JKKStrConst.CD00565_TEL1_HOME.equals(pplanCd)
			&& !JKKStrConst.CD00565_TEL2_HOME.equals(pplanCd))
		{
			return ERR_CD_E110;
		}

		// サービス契約の契約状態が「サービス提供中」以外の場合、チェックエラーとする
		String svcKeiStat = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT);
		if (!JKKStrConst.CD00037_SVCTK_CHU.equals(svcKeiStat))
		{
			return ERR_CD_E120;
		}

		// サービス契約回線内訳情報を取得
		executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_048(new String[]{svcKeiNo, super.opeDate, super.opeDate});
		JBSbatCommonDBInterface svkeiKaisenUwInfo = db_KK_T_SVKEI_KAISEN_UW.selectNext();
		if (null == svkeiKaisenUwInfo)
		{
			// 利用中のサービス契約回線内訳が取得できない場合は、サービス契約が存在しないエラーとする
			return ERR_CD_E100;
		}
		
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
		// サービス契約回線内訳情報.ＰＯＮ種別の取得を行う。設定されていない場合はエラー
		String ponSbtCd = svkeiKaisenUwInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD);
		if (null == ponSbtCd || "".equals(ponSbtCd))
		{
			return ERR_CD_E150;
		}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END

		// OM-2016-0001806 ADD START
		// 住所コードでの存在チェック
		String kaisenPlaceAdCd = svkeiKaisenUwInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AD_CD);
		executeZM_M_AD_KK_SELECT_011(new String[]{kaisenPlaceAdCd, super.opeDate, super.opeDate});
		JBSbatCommonDBInterface adInfo = db_ZM_M_AD.selectNext();
		if(null == adInfo || 1 > Integer.parseInt(adInfo.getString("CNT")))
		{
			// 有効な住所が取得できない場合は、サービス契約が存在しないエラーとする
			return ERR_CD_E200;
		}
		// OM-2016-0001806 ADD END
		
		// サービス契約回線内訳情報を戻す
		svkeiKaisenUwMap.putAll(svkeiKaisenUwInfo.getMap());

		// 電話契約の場合、同一回線のネット契約（「解約済、キャンセル済」以外）が存在する場合、チェックエラーとする
		String svcKeiKaisenUcwkNo = svkeiKaisenUwInfo.getString(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO);
		String svcCd = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_CD);
		// サービスコードが「電話サービス」の場合
		if (JKKStrConst.CD00130_02.equals(svcCd))
		{
			executeKK_T_SVC_KEI_KK_SELECT_292(new String[]{svcKeiKaisenUcwkNo, svcKeiNo, super.opeDate});
			JBSbatCommonDBInterface netSvcKeiInfo = db_KK_T_SVC_KEI.selectNext();
			if (0 < Integer.parseInt(netSvcKeiInfo.getString("CNT")))
			{
				return ERR_CD_E130;
			}
		}

		// (c) 機器提供サービス契約チェック

		// 機器提供サービス契約情報を取得
		executeKK_T_KKTK_SVC_KEI_KK_SELECT_185(new String[]{svcKeiKaisenUcwkNo, super.opeDate});
		JBSbatCommonDBInterface kktkSvcKeiInfo = db_KK_T_KKTK_SVC_KEI.selectNext();

		// 機器提供サービスがONUのレコードが存在しない場合、チェックエラーとする
		if (null == kktkSvcKeiInfo)
		{
			return ERR_CD_E140;
		}

		// 機器提供サービス契約情報を戻す
		kktkSvcKeiMap.putAll(kktkSvcKeiInfo.getMap());

// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL START
//		// 取得したONUのPON種別コードが「E-PON」以外の場合、チェックエラーとする
//		String ponSbtCd = kktkSvcKeiInfo.getString(JBSbatZM_M_TAKNKIKI_MODEL.PON_SBT_CD);
//		if (!JKKStrConst.CD00211_E_PON.equals(ponSbtCd))
//		{
//			return ERR_CD_E150;
//		}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL END

		// (d) 工事案件チェック

		// 仕掛中工事が存在する場合、チェックエラーとする
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
//		executeKU_T_SVKEI_KOJIAK_KK_SELECT_016(new String[]{svcKeiKaisenUcwkNo, super.opeDate});
		executeKU_T_SVKEI_KOJIAK_KK_SELECT_016(new String[]{svcKeiNo, super.opeDate});
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
		JBSbatCommonDBInterface svkeiKojiakInfo = db_KU_T_SVKEI_KOJIAK.selectNext();
		if (0 < Integer.parseInt(svkeiKojiakInfo.getString("CNT")))
		{
			return ERR_CD_E160;
		}

		// (e) 督促チェック

		// 督促ステータスが「強制解約予告済」以上の場合、チェックエラーとする
		executeCH_T_TOKUSOKU_KK_SELECT_004(new String[]{svcKeiNo, super.opeDate, super.opeDate, super.opeDate, super.opeDate});
		JBSbatCommonDBInterface tokusokuInfo = db_CH_T_TOKUSOKU.selectNext();
		if (0 < Integer.parseInt(tokusokuInfo.getString("CNT")))
		{
			return ERR_CD_E170;
		}

		// (f) 住所変更チェック

		// 住所変更ステータスが「登録済」の場合、チェックエラーとする
		executeKK_T_ADCHG_DTL_KK_SELECT_039(new String[]{svcKeiNo, svcKeiNo});
		JBSbatCommonDBInterface adchgDtlInfo = db_KK_T_ADCHG_DTL.selectNext();
		if (0 < Integer.parseInt(adchgDtlInfo.getString("CNT")))
		{
			return ERR_CD_E180;
		}

		// (g) 異動予約チェック

		// 対象のサービス契約、ONUが予約中の場合、チェックエラーとする
		String kktkSvcKeiNo = kktkSvcKeiInfo.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO);
		// OM-2015-0000503 2015/04/08 MOD START
		// 異動予約状態コードが'04'（異動予約対象外）の場合、予約適用年月日が運用日時点で未到達であるかどうかも条件に加える
		//executeKK_T_IDO_RSV_KK_SELECT_071(new String[]{svcKeiNo, kktkSvcKeiNo});
		executeKK_T_IDO_RSV_KK_SELECT_071(new String[]{svcKeiNo, kktkSvcKeiNo, super.opeDate});
		// OM-2015-0000503 2015/04/08 MOD END
		JBSbatCommonDBInterface idoRsvInfo = db_KK_T_IDO_RSV.selectNext();
		if (0 < Integer.parseInt(idoRsvInfo.getString("CNT")))
		{
			return ERR_CD_E190;
		}
// OM-2018-0001001 2018/11/07 ADD START
		executeKK_T_SVC_KEI_KK_SELECT_369(new String[]{svcKeiKaisenUcwkNo, super.opeDate});
		svcKeiInfo = db_KK_T_SVC_KEI.selectNext();
		
		// 回線の電話契約（「解約済、キャンセル済」以外）が存在する場合
		if (svcKeiInfo != null)
		{
			String telSvcKeino = svcKeiInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
				
			// 対象のサービス契約（電話）が解約予約中の場合、チェックエラーとする
			// 異動予約状態コードが'04'（異動予約対象外）の場合、予約適用年月日が運用日時点で未到達であるかどうかも条件に加える
			executeKK_T_IDO_RSV_KK_SELECT_099(new String[]{telSvcKeino, super.opeDate});
			idoRsvInfo = db_KK_T_IDO_RSV.selectNext();
			if (0 < Integer.parseInt(idoRsvInfo.getString("CNT")))
			{
				return ERR_CD_E190;
			}
		}
// OM-2018-0001001 2018/11/07 ADD END

		// チェックOK
		return "";
	}
	/**
	 * 入力情報（設備切替工事依頼）の単項目チェックを行います。<br>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @return エラー内容に該当する設備切替工事登録エラーコード。エラーなしの場合には空文字を返却。
	 */
	private String singleCheck(HashMap rsMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.SVC_KEI_NO);
		
		// 必須チェック
		if(JKKStringUtil.isNullBlank(strValue))
		{
			return ERR_CD_E020;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu1","10"}))
		{
			return ERR_CD_E020;
		}
		
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			return ERR_CD_E020;
		}

		// 工事案件連絡事項項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "100"}))
			{
				return ERR_CD_E021;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
			{
				return ERR_CD_E021;
			}
		}
		
		// 工事案件備考１項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "100"}))
			{
				return ERR_CD_E022;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
			{
				return ERR_CD_E022;
			}
		}
		
		// 工事案件備考２項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.KOJIAK_BIKO_2);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "100"}))
			{
				return ERR_CD_E023;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
			{
				return ERR_CD_E023;
			}
		}
		
		// 申込者名項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.MSKMSHA_NM);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
			{
				return ERR_CD_E024;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"zenkaku"}))
			{
				return ERR_CD_E024;
			}
		}

		// 宅内調査希望アポ期限年月日項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.TAKCHO_KIBO_APO_KIGEN_YMD);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu1","8"}))
			{
				return ERR_CD_E025;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
			{
				return ERR_CD_E025;
			}
		}
		
		// 電話連絡希望時間帯コード項目チェック
		strValue = (String)rsMap.get(JBSbatKKIFM587.TEL_RRK_KIBO_TIME_CD);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 属性チェック
			if(!telRrkKiboTimeCdMap.containsKey(strValue))
			{
				return ERR_CD_E026;
			}
		}
		
		// 工事アポ連絡先指定コード
		strValue = (String)rsMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_SHITEI_CD);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 属性チェック
			if(!rrksShiteiCdMap.containsKey(strValue))
			{
				return ERR_CD_E027;
			}
		}
		
		// 工事アポ連絡先電話番号
		strValue = (String)rsMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_TELNO);
		
		if(!JKKStringUtil.isNullBlank(strValue))
		{
			// 桁数チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "10", "11"}))
			{
				return ERR_CD_E028;
			}
			// 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"}))
			{
				return ERR_CD_E028;
			}
		}
		
		return null;
	}
	/**
	 * サービス呼出処理
	 * @param recordMap サービスの入力情報
	 * @param svcKeiMap サービス契約情報
	 * @param svkeiKaisenUwMap サービス契約回線内訳情報
	 * @param kktkSvcKeiMap 機器提供サービス契約情報
	 * @return サービスの処理結果
	 * @throws Exception
	 */
	// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
//	private void invokeService(HashMap<String, Object> recordMap,
	private HashMap<String, Object> invokeService(HashMap<String, Object> recordMap,
	// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
			HashMap<String, Object> svcKeiMap,
			HashMap<String, Object> svkeiKaisenUwMap,
// ANK-2768-00-00 ADD START
//			HashMap<String, Object> kktkSvcKeiMap)
			HashMap<String, Object> kktkSvcKeiMap,
			HashMap<String, Object> ngVakktkSvcKeiMap,
			HashMap<String, Object> ngBbrkktkSvcKeiMap)
// ANK-2768-00-00 ADD END
	throws Exception
	{
		// サービス呼び出し時の引数を生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, "KKSV0785");
		paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, "KKSV0785OP");
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		
		// オンラインの部品呼出時にfixedtextで指定する情報
		inputMap.put("KKSV078501CC", getSvcInfo(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap));
		
		// 機器変更情報（機器変更CC用のインプット）
// ANK-2768-00-00 MOD START
//		inputMap.put("KikiInfoUpdMap", getKikiChgInfo(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap));
		inputMap.put("KikiInfoUpdMap", getKikiChgInfo(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap, ngVakktkSvcKeiMap ,ngBbrkktkSvcKeiMap));
// ANK-2768-00-00 MOD END
		
		// 工事情報（機器変更CC、工事案件解約CC、工事案件受付CC用のインプット）
// ANK-2768-00-00 MOD START
//		inputMap.put("kojiakInfoMap", getKojiInfo(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap));
		inputMap.put("kojiakInfoMap", getKojiInfo(recordMap, svcKeiMap, svkeiKaisenUwMap, kktkSvcKeiMap, ngVakktkSvcKeiMap ,ngBbrkktkSvcKeiMap));
// ANK-2768-00-00 MOD END
		
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// サービス呼び出し
		JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);

		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
		return outputMap;
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
		
	}
	
	/**
	 * サービス情報
	 * @param recordMap 設備切替工事依頼リストの１レコードの情報
	 * @param svcKeiMap サービス契約情報
	 * @param svkeiKaisenUwMap サービス契約回線内訳情報
	 * @param kktkSvcKeiMap 機器提供サービス契約情報
	 * @throws Exception
	 */
	private HashMap<String, Object> getSvcInfo(
			HashMap<String, Object> recordMap,
			HashMap<String, Object> svcKeiMap,
			HashMap<String, Object> svkeiKaisenUwMap,
			HashMap<String, Object> kktkSvcKeiMap
	) throws Exception
	{
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		// サービス契約番号
		result.put("svc_kei_no", recordMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		
		// 工事案件連絡事項
		result.put("kojiak_rrk_jiko", recordMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO));
		
		// 工事案件備考1
		result.put("kojiak_biko_1", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1));
		
		// 工事案件備考2
		result.put("kojiak_biko_2", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1));
		
		// 申込者名
		result.put("mskmsha_nm", recordMap.get(JBSbatKKIFM587.MSKMSHA_NM));
		
		// 宅内調査希望アポ期限年月日
		result.put("takcho_kibo_apo_kigen_ymd", recordMap.get(JBSbatKKIFM587.TAKCHO_KIBO_APO_KIGEN_YMD));
		
		// 電話連絡希望時間帯コード
		result.put("tel_rrk_kibo_time_cd", recordMap.get(JBSbatKKIFM587.TEL_RRK_KIBO_TIME_CD));
		
		// 工事アポ連絡先指定コード
		result.put("koji_apo_rrks_shitei_cd", recordMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_SHITEI_CD));
		
		// 工事アポ連絡先電話番号
		result.put("koji_apo_rrks_telno", recordMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_TELNO));
		
		// 異動区分
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
		if ("2".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
			result.put("ido_div", IDO_DIV_GG);
		}
		else if ("1".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
			result.put("ido_div", IDO_DIV);
		}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL START
//		result.put("ido_div", IDO_DIV);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL END
		
		// SYSID
		result.put("sysid", svcKeiMap.get(JBSbatKK_T_SVC_KEI.SYSID));
		
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START 
		// サービス契約回線内訳番号
		result.put("svc_kei_kaisen_ucwk_no", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.SVC_KEI_KAISEN_UCWK_NO));
		
		// PON種別コード
		result.put("pon_sbt_cd", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD));
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
		// 機器変更情報マップキー
		result.put("kiki_chg_info_key", "KikiInfoUpdMap");
		
		// 工事情報マップキー
		result.put("koji_info_key", "kojiakInfoMap");
		
		
		return result;
	}
	
	/**
	 * 機器変更情報
	 * 機器変更CC（JKKKikiChgCC）のインプット情報
	 * ※CCの設計書と実際にIFされる項目名が異なるため、KKW00401_工事情報登録画面と同じ結果となるよう値を設定
	 * @param recordMap 設備切替工事依頼リストの１レコードの情報
	 * @param svcKeiMap サービス契約情報
	 * @param svkeiKaisenUwMap サービス契約回線内訳情報
	 * @param kktkSvcKeiMap 機器提供サービス契約情報
	 * @throws Exception
	 */
	private HashMap<String, Object> getKikiChgInfo(
			HashMap<String, Object> recordMap,
			HashMap<String, Object> svcKeiMap,
			HashMap<String, Object> svkeiKaisenUwMap,
// ANK-2768-00-00 MOD START
//			HashMap<String, Object> kktkSvcKeiMap
			HashMap<String, Object> kktkSvcKeiMap,
			HashMap<String, Object> ngVakktkSvcKeiMap,
			HashMap<String, Object> ngBbrkktkSvcKeiMap
// ANK-2768-00-00 MOD END
	) throws Exception
	{
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		// 機能コード
		result.put("func_code", "1");
		
		// 異動区分
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD START
		if ("2".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
			result.put("ido_div", IDO_DIV_GG);
		}
		else if ("1".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
			result.put("ido_div", IDO_DIV);
		}
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 ADD END
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL START
//		result.put("ido_div", IDO_DIV);
// ANK-2278-00-00 GE-PON⇒GE-PON対応 2014/10/14 DEL END
		
		// サービス契約番号 ※CCの設計書と項目名が異なる
		result.put("key_svc_kei_no", recordMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		
		// サービス契約ステータス ※CCの設計書に記載がない
		result.put("svc_kei_stat", svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));

		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 START
		// サービス層で設定するためコメントアウト
//		// 更新年月日時分秒（サービス契約） 
//		result.put("upd_dtm", svcKeiMap.get(JBSbatKK_T_SVKEI_EXC_CTRL.LAST_UPD_DTM));
		// IT1-2014-0000202 E-PON→GE-PON設備切替工事情報作成バッチで排他エラーが発生 2014/06/06 END
		
		// 工事情報マップキー 
		result.put("kojifixtext", "kojiakInfoMap");
		
		// 変更機器情報リスト
		List<HashMap<String, Object>> chgKikiList = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> chgKiki = new HashMap<String,Object>();
		
		// サービス終了年月日 
		chgKiki.put("svc_endymd", super.opeDate);
	      
		// 宅内機器型式コード
		chgKiki.put("taknkiki_model_cd", "");
		
		// 返品受付年月日
		chgKiki.put("hmpin_uk_ymd", super.opeDate);
		
		// 読込親サービス契約番号
		chgKiki.put("load_oya_svkei_no", recordMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		
		// 機器提供サービス契約番号
		chgKiki.put("kktk_svc_kei_no", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
		
		// 機器提供サービス契約番号
		chgKiki.put("kiki_seizo_no","");

		// PON識別コード
		chgKiki.put("pon_skbt_cd","2");	// GE-PON固定
		
		// 機器提供サービス契約更新年月日時分秒
		chgKiki.put("kktk_upd_dtm",kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.UPD_DTM));
		
		// サービス課金終了年月日
		chgKiki.put("svc_chrg_endymd", super.opeDate);

		// 登録契機契約異動区分
		chgKiki.put("add_optnty_kei_ido_div", IDO_DIV);
		
		// 機器提供サービスコード
		chgKiki.put("kktk_svc_cd", "C012");	// ONU
		
		// 登録契機契約異動年月日時分秒
		chgKiki.put("add_optnty_kei_ido_dtm", JKKBatCommon.getOpeDateTimeStamp(commonItem));
		
		// 登録契機契約異動年月日時分秒
		chgKiki.put("ido_div", IDO_DIV);
	      
		// 配送方法コード
		chgKiki.put("haiso_way_cd", "2");	// 工事会社配送
		
		//機器提供種別コード
		chgKiki.put("kktk_sbt_cd", "02");	// レンタル
	    	
		//機器提供種別コード
		chgKiki.put("gene_add_dtm", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.GENE_ADD_DTM));
	      
		// 予約適用年月日
		chgKiki.put("rsv_aply_ymd", super.opeDate);
		
		chgKikiList.add(chgKiki);
		
		result.put("chg_kiki_list", chgKikiList);
		
// ANK-2768-00-00 ADD START
		result.put("chg_va_kiki_list", new ArrayList<HashMap<String,Object>>());
		
		result.put("chg_bbr_kiki_list", new ArrayList<HashMap<String,Object>>());
		// 交換VAの情報をセットする、ONU機器情報の形式で不具合VA機器情報並びに不具合VA交換に伴うBBR（有線）情報を追加する
		// E→G設備切替時のみ実施
		if ("1".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) {
			
			// 不具合VA情報存在すれば
			if (ngVakktkSvcKeiMap != null && ngVakktkSvcKeiMap.size() > 0) {
				List<HashMap<String, Object>> chgVaKikiList = new ArrayList<HashMap<String,Object>>();
				HashMap<String, Object> chgVaKiki = new HashMap<String,Object>();
				// サービス終了年月日 
				chgVaKiki.put("svc_endymd", super.opeDate);
			      
				// 宅内機器型式コード
				chgVaKiki.put("taknkiki_model_cd", "");
				
				// 返品受付年月日
				chgVaKiki.put("hmpin_uk_ymd", super.opeDate);
				
				// 読込親サービス契約番号
				chgVaKiki.put("load_oya_svkei_no", (String)ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO));
				
				// 機器提供サービス契約番号
				chgVaKiki.put("kktk_svc_kei_no", (String)ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
				
				// 機器製造番号
				chgVaKiki.put("kiki_seizo_no","");

				// PON識別コード
				chgVaKiki.put("pon_skbt_cd","");	//
				
				// 機器提供サービス契約更新年月日時分秒
				chgVaKiki.put("kktk_upd_dtm", (String)ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.UPD_DTM));
				
				// サービス課金終了年月日
				chgVaKiki.put("svc_chrg_endymd", super.opeDate);

				// 登録契機契約異動区分
				chgVaKiki.put("add_optnty_kei_ido_div", IDO_DIV);
				
				// 機器提供サービスコード
				chgVaKiki.put("kktk_svc_cd", "C004");	// VA
				
				// 登録契機契約異動年月日時分秒
				chgVaKiki.put("add_optnty_kei_ido_dtm", JKKBatCommon.getOpeDateTimeStamp(commonItem));
				
				// 登録契機契約異動年月日時分秒
				chgVaKiki.put("ido_div", IDO_DIV);
			      
				// 配送方法コード
				chgVaKiki.put("haiso_way_cd", "2");	// 工事会社配送
				
				//機器提供種別コード
				chgVaKiki.put("kktk_sbt_cd", "02");	// レンタル
			    	
				//世代年月日時分秒
				chgVaKiki.put("gene_add_dtm", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.GENE_ADD_DTM));
			      
				// 予約適用年月日
				chgVaKiki.put("rsv_aply_ymd", super.opeDate);
				
				chgVaKikiList.add(chgVaKiki);
				
				result.put("chg_va_kiki_list", chgVaKikiList);
			}
			
			// 不具合BBR情報が存在すれば(VAから多機能VA機能へ交換する際に同時にRT機能へ交換する旧無線ルータ)
			if (ngBbrkktkSvcKeiMap != null && ngBbrkktkSvcKeiMap.size() > 0) {
				List<HashMap<String, Object>> chgBbrKikiList = new ArrayList<HashMap<String,Object>>();
				HashMap<String, Object> chgBbrKiki = new HashMap<String,Object>();
				// サービス終了年月日 
				chgBbrKiki.put("svc_endymd", super.opeDate);
			      
				// 宅内機器型式コード
				chgBbrKiki.put("taknkiki_model_cd", "");
				
				// 返品受付年月日
				chgBbrKiki.put("hmpin_uk_ymd", super.opeDate);
				
				// 読込親サービス契約番号
				chgBbrKiki.put("load_oya_svkei_no", (String)ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.SVC_KEI_NO));
				
				// 機器提供サービス契約番号
				chgBbrKiki.put("kktk_svc_kei_no", (String)ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
				
				// 機器製造番号
				chgBbrKiki.put("kiki_seizo_no","");

				// PON識別コード
				chgBbrKiki.put("pon_skbt_cd","");	//
				
				// 機器提供サービス契約更新年月日時分秒
				chgBbrKiki.put("kktk_upd_dtm", (String)ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.UPD_DTM));
				
				// サービス課金終了年月日
				chgBbrKiki.put("svc_chrg_endymd", super.opeDate);

				// 登録契機契約異動区分
				chgBbrKiki.put("add_optnty_kei_ido_div", IDO_DIV);
				
				// 機器提供サービスコード
				chgBbrKiki.put("kktk_svc_cd", "C014");	// BBR
				
				// 登録契機契約異動年月日時分秒
				chgBbrKiki.put("add_optnty_kei_ido_dtm", JKKBatCommon.getOpeDateTimeStamp(commonItem));
				
				// 登録契機契約異動年月日時分秒
				chgBbrKiki.put("ido_div", IDO_DIV);
			      
				// 配送方法コード
				chgBbrKiki.put("haiso_way_cd", "2");	// 工事会社配送
				
				//機器提供種別コード
				chgBbrKiki.put("kktk_sbt_cd", "02");	// レンタル
			    	
				//世代年月日時分秒
				chgBbrKiki.put("gene_add_dtm", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.GENE_ADD_DTM));
			      
				// 予約適用年月日
				chgBbrKiki.put("rsv_aply_ymd", super.opeDate);
				
				chgBbrKikiList.add(chgBbrKiki);
				
				result.put("chg_bbr_kiki_list", chgBbrKikiList);
			}
		}
// ANK-2768-00-00 ADD END
		return result;
	}
	
	/**
	 * 工事情報
	 * 機器変更CC、工事案件解約CC、工事案件受付CCのインプット情報
	 * ※CCの設計書と実際にIFされる項目名が異なるため、KKW00401_工事情報登録画面と同じ結果となるよう値を設定
	 * @param recordMap 設備切替工事依頼リストの１レコードの情報
	 * @param svcKeiMap サービス契約情報
	 * @param svkeiKaisenUwMap サービス契約回線内訳情報
	 * @param kktkSvcKeiMap 機器提供サービス契約情報
	 * @throws Exception
	 */
	private HashMap<String, Object> getKojiInfo(
			HashMap<String, Object> recordMap,
			HashMap<String, Object> svcKeiMap,
			HashMap<String, Object> svkeiKaisenUwMap,
// ANK-2768-00-00 MOD START
//			HashMap<String, Object> kktkSvcKeiMap
			HashMap<String, Object> kktkSvcKeiMap,
			HashMap<String, Object> ngVakktkSvcKeiMap,
			HashMap<String, Object> ngBbrkktkSvcKeiMap
// ANK-2768-00-00 MOD END
	) throws Exception
	{
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		// 機能コード
		result.put("func_code", "1");
		
		// 設置場所住所補記・部屋番号
		result.put("setplace_adrrm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRRM));
		
		// 設計書に記載なし
		result.put("epon_gepon", "0");
		
		// 復活案件フラグ
		result.put("hukkat_anken_flg", "0");
		 
		// サービス契約ステータス
		result.put("svc_kei_stat", svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
		 
		// 設置場所市区町村名
		result.put("setplace_city_nm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM));
		 
		// サービス契約回線内訳番号
		result.put("svc_kei_kaisen_ucwk_no", "");
		
		// 設置場所都道府県名
		result.put("setplace_state_nm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM));
		 
		// 申込者名
		result.put("mskmsha_nm", recordMap.get(JBSbatKKIFM587.MSKMSHA_NM));
		
		// 不明
		result.put("koji_kanryo1", false);
		
		// 宅内調査希望アポ期限年月日
		result.put("tnkj_kibo_apo_kigen_ymd", recordMap.get(JBSbatKKIFM587.TAKCHO_KIBO_APO_KIGEN_YMD));
		
		// 不明
		result.put("koji_kanryo2", false);
		
		// 新築物件コード
		result.put("newconst_bukken_cd", "0");
		
		// 不明
		result.put("kojiak_no_shinsetsu", "");
		
		// mskmsho_noはサービスで採番
		result.put("same_equip_re_mskm_cd", "");
		
		// 工事受付コード
		result.put("koji_uk_dtail_cd", "");
		
		// 工事案件備考
// ANK-2768-00-00 MOD START
//		result.put("kojiak_biko", recordMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO));
		if (ngVakktkSvcKeiMap != null && ngVakktkSvcKeiMap.size() > 0) {
			result.put("kojiak_biko", (recordMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO) + KOJIAK_BIKO_BUG_VA_CHANGE));
		}
		else
		{
			result.put("kojiak_biko", recordMap.get(JBSbatKKIFM587.KOJIAK_RRK_JIKO));
		}
// ANK-2768-00-00 MOD END
		
		// 設置場所字丁目名
		result.put("setplace_azcho_nm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM));
		
		// 設置場所大字通称名
		result.put("setplace_oaztsu_nm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM));
		
		// 設置場所大字通称名
		result.put("kojiak_no_tekkyo", "");
		
		// 設置場所大字通称名
		result.put("kaisen_place_telno", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_TELNO));
		
		// 設置場所大字通称名
		result.put("kojiak_no", "");
		
		// 申込書明細番号はサービスで採番
		
		// 工事アポ連絡先指定コード
		result.put("koji_apo_rrks_shitei_cd", recordMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_SHITEI_CD));
		
		// 工事案件備考１ 
		result.put("kojiak_biko_1", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1));
		
		// 設置場所住所コード
		result.put("setplace_ad_cd", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AD_CD));
		 
		// 設置場所郵便番号
		result.put("setplace_pcd", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_PCD));
		 
		// 設置場所住所補記・建物名 
		result.put("setplace_adrttm", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM));
		
		// 設置場所住所補記・建物名 
		result.put("stb_tekkyo", "0");
		
		// 工事案件備考１ 
		result.put("kojiak_biko1", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_1));
		
		// 工事案件備考２
		result.put("kojiak_biko2", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_2));
		
		// サービス契約番号
		result.put("svc_kei_no", svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		
		// 工事アポ連絡先電話番号
		result.put("koji_apo_rrks_telno", recordMap.get(JBSbatKKIFM587.KOJI_APO_RRKS_TELNO));
		 
		// 工事案件種別コード
		result.put("kojiak_sbt_cd", "");
		
		// 工事案件備考２ 
		result.put("kojiak_biko_2", recordMap.get(JBSbatKKIFM587.KOJIAK_BIKO_2));
		
		// 解約希望年月日
		result.put("dsl_kibo_ymd", "20991231");	// 20991231固定
		 
		// 設置場所住所番地号
		result.put("setplace_ad_bnchigo", svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO));
		
		// 設置場所住所番地号
		result.put("isetsu_cd", "");
		
		// 
		result.put("hikkoshi_trgt_svc_kei_no", recordMap.get(JBSbatKKIFM587.SVC_KEI_NO));
		
		// 電話連絡希望時間帯コード
		result.put("tel_rrk_kibo_time_cd", recordMap.get(JBSbatKKIFM587.TEL_RRK_KIBO_TIME_CD));
		
		// 工事範囲コード
		result.put("koji_scope_cd", "005");	//工事不要固定
		
		// 機器提供サービスリスト
		List<HashMap<String, Object>> kktkSvcOutList = new ArrayList<HashMap<String,Object>>();
		HashMap<String, Object> kktkSvc = new HashMap<String,Object>();
		kktkSvc.put("kiki_seizo_no_old67", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO));
		kktkSvc.put("taknkiki_model_cd_old67", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.TAKNKIKI_MODEL_CD));
		kktkSvc.put("kktk_svc_kei_no", kktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
		kktkSvcOutList.add(kktkSvc);
// ANK-2768-00-00 ADD START
		kktkSvc = new HashMap<String,Object>();
		// 不具合VA機器情報があれば旧VA機器情報として設定、ただし、多機能への交換は完全に独自
		if (ngVakktkSvcKeiMap != null && ngVakktkSvcKeiMap.size() > 0 
				&& (ngBbrkktkSvcKeiMap == null || ngBbrkktkSvcKeiMap.size() <= 0)
				)
		{
			kktkSvc.put("kiki_seizo_no_old67_va", ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO));
			kktkSvc.put("taknkiki_model_cd_old67_va", ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.TAKNKIKI_MODEL_CD));
			kktkSvc.put("kktk_svc_kei_no", ngVakktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
		}
		kktkSvcOutList.add(kktkSvc);
		kktkSvc = new HashMap<String,Object>();
//		// 不具合VA機器が交換時の有線ルータがあれば旧RT情報として設定
//		if (ngBbrkktkSvcKeiMap != null && ngBbrkktkSvcKeiMap.size() > 0)
//		{
//			kktkSvc.put("kiki_seizo_no_old67_rt", ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KIKI_SEIZO_NO));
//			kktkSvc.put("taknkiki_model_cd_old67_rt", ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.TAKNKIKI_MODEL_CD));
//			kktkSvc.put("kktk_svc_kei_no", ngBbrkktkSvcKeiMap.get(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_NO));
//		}
//		kktkSvcOutList.add(kktkSvc);
// ANK-2768-00-00 MOD END
		result.put("kktkSvcOutList", kktkSvcOutList);
		
		// 工事受付コード
		result.put("koji_uk_cd", "");
		
		// 工事受付コード
		result.put("kepco_ctinfo_juju_doi_um", "");
		
		// 
		result.put("kojak_juhen", false);
		
		// 異動区分
		result.put("ido_div", IDO_DIV);
		
		// 
		result.put("svc_kei_kaisen_ucwk_no_shinsetsu", "");
		
		//
		result.put("svc_kei_kaisen_ucwk_no_tekkyo", "");
		
		// 工事希望年月日
		result.put("koji_kibo_ymd", "20991231");	// 20992131固定
		
		// マンションID
		result.put("mansion_id", "");
		
		// ANK-3136-00-00 ADD START
		
		// ANK-3554-00-00 ADD START
		if ("1".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
		// ANK-3136-00-00 ADD END
			
			// 宅内調査要否
			result.put("takcho_yh", "0");	// 不要固定
		
		// ANK-3554-00-00 ADD START
		}
		else if ("2".equals(svkeiKaisenUwMap.get(JBSbatKK_T_SVKEI_KAISEN_UW.PON_SBT_CD))) 
		{
			// 宅内調査要否
			result.put("takcho_yh", "1");	// 要固定
		}
		// ANK-3554-00-00 ADD END
		
		// 設計要否
		result.put("dsgn_yh", "1");	// 要固定
		// ANK-3136-00-00 ADD END
		
		return result;
	}

// ANK-2768-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_016)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			業務パラメータID（固定）：KK_BUG_VA_MODEL_01
	 *		 	予約適用年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_WORK_PARAM_KNRI_KK_SELECT_016(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// 業務パラメータID（固定）：KK_BUG_VA_MODEL_01　→　SQLparam：WORK_PARAM_ID
		paramList.setValue(param[0].toString());
		// バッチ運用年月日（業務パラメータ適用開始）　→　SQLparam：WORK_PARAM_TSTAYMD
		paramList.setValue(param[1].toString());
		// バッチ運用年月日（業務パラメータ適用終了）　→　SQLparam：WORK_PARAM_TSTAYMD
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_KK_SELECT_016);
	}
	
	/**
	 * SQLKEY(KK_SELECT_224)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_224(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// 設備切替工事依頼リスト.お客様ID　→　SQLparam：SVC_KEI_NO
		paramList.setValue(param[0].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_01）
		paramList.setValue(param[1].toString());
		// バッチ運用年月日(回線使用終了年月日基準)　→　SQLparam：KAISEN_UCWK_USE_ENDYMD（KK0241_01）
		paramList.setValue(param[2].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_02）
		paramList.setValue(param[3].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_02）
		paramList.setValue(param[4].toString());
		// バッチ運用年月日(サービス契約カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0081_GENE）
		paramList.setValue(param[5].toString());
		// バッチ運用年月日(サービス契約内訳／SUBTYPE結合カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0161_GENE）
		paramList.setValue(param[6].toString());
		// バッチ運用年月日(機器提供サービス契約カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0341_GENE）
		paramList.setValue(param[7].toString());
		
		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_224);
	}
	
	/**
	 * SQLKEY(KK_SELECT_224)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *			予約適用年月日
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_225(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// 設備切替工事依頼リスト.お客様ID　→　SQLparam：SVC_KEI_NO
		paramList.setValue(param[0].toString());
		// バッチ運用年月日(回線使用終了年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_03）
		paramList.setValue(param[1].toString());
		// バッチ運用年月日(機器提供サービス契約カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0341_GENE）
		paramList.setValue(param[2].toString());
		
		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_225);
	}

	/**
	 * SQLKEY(KK_SELECT_224)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KKTK_SVC_KEI_KK_SELECT_226(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		// 設備切替工事依頼リスト.お客様ID　→　SQLparam：SVC_KEI_NO
		paramList.setValue(param[0].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_01）
		paramList.setValue(param[1].toString());
		// バッチ運用年月日(回線使用終了年月日基準)　→　SQLparam：KAISEN_UCWK_USE_ENDYMD（KK0241_01）
		paramList.setValue(param[2].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_02）
		paramList.setValue(param[3].toString());
		// バッチ運用年月日(回線使用開始年月日基準)　→　SQLparam：KAISEN_UCWK_USE_STAYMD（KK0241_02）
		paramList.setValue(param[4].toString());
		// バッチ運用年月日(サービス契約カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0081_GENE）
		paramList.setValue(param[5].toString());
		// バッチ運用年月日(機器提供サービス契約カレント取得用)　→　SQLparam：RSV_APLY_YMD（KK0341_GENE）
		paramList.setValue(param[6].toString());
		
		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_226);
	}
// ANK-2768-00-00 ADD END
// OM-2016-0001806 ADD START
	/**
	 * SQLKEY(KK_SELECT_011)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *			予約適用年月日
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_AD_KK_SELECT_011(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		
		// DBアクセスを実行します
		db_ZM_M_AD.selectBySqlDefine(paramList, ZM_M_AD_KK_SELECT_011);
	}
// OM-2016-0001806 ADD END

	/**
	 * 工事案件対象宅内機器の項目名インデックスMapの作成
	 * ※ スキーマの変更の際は作り直す必要有
	 * 
	 * @return HashMap 項目名Map
	 */
	private HashMap<Object, String> createIdxInsKjTkMap()
	{
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_TRGT_TAKNKIKI_NO, "0");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_TRGT_TAKNKIKI_STAT, "1");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_NO, "2");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KOJIAK_TRGT_KIKI_GRP_NO, "3");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.STC_TEKKYO_FLG, "4");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_SBT_CD, "5");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.TAKNKIKI_IDO_CD, "6");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_TAKNKIKI_MODEL_CD, "7");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_KIKI_SEIZO_NO, "8");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_MAKER_CD, "9");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_MACAD, "10");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_STB_ID, "11");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_HDD_CAPA_CD, "12");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_VONU_BSPT_KH, "13");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_STB_KEI_TV_COURSE_CD, "14");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_ROUTER_KIND_CD, "15");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_ROUTER_RENT_CD, "16");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.RSV_KIKI_CHG_NO, "17");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_TAKNKIKI_MODEL_CD, "18");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_KIKI_SEIZO_NO, "19");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_MAKER_CD, "20");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_MACAD, "21");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_STB_ID, "22");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_HDD_CAPA_CD, "23");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_VONU_BSPT_KH, "24");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_STB_KEI_TV_COURSE_CD, "25");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_ROUTER_KIND_CD, "26");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_ROUTER_RENT_CD, "27");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_SHUKKA_JOKYO_FLG, "28");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.CHGE_KIKI_CHG_NO, "29");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_TAKNKIKI_MODEL_CD, "30");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_KIKI_SEIZO_NO, "31");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_MAKER_CD, "32");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_MACAD, "33");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_STB_ID, "34");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_HDD_CAPA_CD, "35");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_VONU_BSPT_KH, "36");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_STB_KEI_TV_COURSE_CD, "37");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_ROUTER_KIND_CD, "38");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.JSEKI_ROUTER_RENT_CD, "39");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KKTK_SVC_KEI_NO, "40");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.KKTK_SVC_KEI_CHGE_MEMO, "41");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.MOTO_TCASE_NO, "42");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.OPMS_TKKIKI_CHGE_RSN_CD, "43");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.OPMS_TKKIKI_CHGE_RSN_CD_NM, "44");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.OPMS_TKKIKI_CHGE_RSN_MEMO, "45");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.ADD_DTM, "46");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.ADD_OPEACNT, "47");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.UPD_DTM, "48");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.UPD_OPEACNT, "49");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.DEL_DTM, "50");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.DEL_OPEACNT, "51");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.MK_FLG, "52");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.ADD_UNYO_YMD, "53");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.ADD_TRN_ID, "54");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.UPD_UNYO_YMD, "55");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.UPD_TRN_ID, "56");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.DEL_UNYO_YMD, "57");
		this.idxInsKjTkMap.put(JBSbatKU_T_KJAK_TG_TKKIKI.DEL_TRN_ID, "58");
		
		return idxInsKjTkMap;
	}
	

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	工事案件対象宅内機器番号				KOJIAK_TRGT_TAKNKIKI_NO
	 *		 	工事案件対象宅内機器ステータス				KOJIAK_TRGT_TAKNKIKI_STAT
	 *		 	工事案件番号				KOJIAK_NO
	 *		 	工事案件対象機器グループ番号				KOJIAK_TRGT_KIKI_GRP_NO
	 *		 	設置撤去フラグ				STC_TEKKYO_FLG
	 *		 	宅内機器種別コード				TAKNKIKI_SBT_CD
	 *		 	宅内機器異動コード				TAKNKIKI_IDO_CD
	 *		 	予定宅内機器型式コード				RSV_TAKNKIKI_MODEL_CD
	 *		 	予定機器製造番号				RSV_KIKI_SEIZO_NO
	 *		 	予定メーカーコード				RSV_MAKER_CD
	 *		 	予定ＭＡＣアドレス				RSV_MACAD
	 *		 	予定ＳＴＢ−ＩＤ				RSV_STB_ID
	 *		 	予定ＨＤＤ容量コード				RSV_HDD_CAPA_CD
	 *		 	予定ＶＯＮＵＢＳパススルー可否				RSV_VONU_BSPT_KH
	 *		 	予定ＳＴＢ契約ＴＶコースコード				RSV_STB_KEI_TV_COURSE_CD
	 *		 	予定ルーター種類コード				RSV_ROUTER_KIND_CD
	 *		 	予定ルーターレンタルコード				RSV_ROUTER_RENT_CD
	 *		 	予定機器変更番号				RSV_KIKI_CHG_NO
	 *		 	変更宅内機器型式コード				CHGE_TAKNKIKI_MODEL_CD
	 *		 	変更機器製造番号				CHGE_KIKI_SEIZO_NO
	 *		 	変更メーカーコード				CHGE_MAKER_CD
	 *		 	変更ＭＡＣアドレス				CHGE_MACAD
	 *		 	変更ＳＴＢ−ＩＤ				CHGE_STB_ID
	 *		 	変更ＨＤＤ容量コード				CHGE_HDD_CAPA_CD
	 *		 	変更ＶＯＮＵＢＳパススルー可否				CHGE_VONU_BSPT_KH
	 *		 	変更ＳＴＢ契約ＴＶコースコード				CHGE_STB_KEI_TV_COURSE_CD
	 *		 	変更ルーター種類コード				CHGE_ROUTER_KIND_CD
	 *		 	変更ルーターレンタルコード				CHGE_ROUTER_RENT_CD
	 *		 	変更出荷状況フラグ				CHGE_SHUKKA_JOKYO_FLG
	 *		 	変更機器変更番号				CHGE_KIKI_CHG_NO
	 *		 	実績宅内機器型式コード				JSEKI_TAKNKIKI_MODEL_CD
	 *		 	実績機器製造番号				JSEKI_KIKI_SEIZO_NO
	 *		 	実績メーカーコード				JSEKI_MAKER_CD
	 *		 	実績ＭＡＣアドレス				JSEKI_MACAD
	 *		 	実績ＳＴＢ−ＩＤ				JSEKI_STB_ID
	 *		 	実績ＨＤＤ容量コード				JSEKI_HDD_CAPA_CD
	 *		 	実績ＶＯＮＵＢＳパススルー可否				JSEKI_VONU_BSPT_KH
	 *		 	実績ＳＴＢ契約ＴＶコースコード				JSEKI_STB_KEI_TV_COURSE_CD
	 *		 	実績ルーター種類コード				JSEKI_ROUTER_KIND_CD
	 *		 	実績ルーターレンタルコード				JSEKI_ROUTER_RENT_CD
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	機器提供サービス契約変更メモ				KKTK_SVC_KEI_CHGE_MEMO
	 *		 	元トムソンケース番号				MOTO_TCASE_NO
	 *		 	ＯＰＭＳ宅内機器変更理由コード				OPMS_TKKIKI_CHGE_RSN_CD
	 *		 	ＯＰＭＳ宅内機器変更理由コード名				OPMS_TKKIKI_CHGE_RSN_CD_NM
	 *		 	ＯＰＭＳ宅内機器変更理由メモ				OPMS_TKKIKI_CHGE_RSN_MEMO
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_KJAK_TG_TKKIKI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KOJIAK_TRGT_TAKNKIKI_NO", setParam[0]);
		setMap.setValue("KOJIAK_TRGT_TAKNKIKI_STAT", setParam[1]);
		setMap.setValue("KOJIAK_NO", setParam[2]);
		setMap.setValue("KOJIAK_TRGT_KIKI_GRP_NO", setParam[3]);
		setMap.setValue("STC_TEKKYO_FLG", setParam[4]);
		setMap.setValue("TAKNKIKI_SBT_CD", setParam[5]);
		setMap.setValue("TAKNKIKI_IDO_CD", setParam[6]);
		setMap.setValue("RSV_TAKNKIKI_MODEL_CD", setParam[7]);
		setMap.setValue("RSV_KIKI_SEIZO_NO", setParam[8]);
		setMap.setValue("RSV_MAKER_CD", setParam[9]);
		setMap.setValue("RSV_MACAD", setParam[10]);
		setMap.setValue("RSV_STB_ID", setParam[11]);
		setMap.setValue("RSV_HDD_CAPA_CD", setParam[12]);
		setMap.setValue("RSV_VONU_BSPT_KH", setParam[13]);
		setMap.setValue("RSV_STB_KEI_TV_COURSE_CD", setParam[14]);
		setMap.setValue("RSV_ROUTER_KIND_CD", setParam[15]);
		setMap.setValue("RSV_ROUTER_RENT_CD", setParam[16]);
		setMap.setValue("RSV_KIKI_CHG_NO", setParam[17]);
		setMap.setValue("CHGE_TAKNKIKI_MODEL_CD", setParam[18]);
		setMap.setValue("CHGE_KIKI_SEIZO_NO", setParam[19]);
		setMap.setValue("CHGE_MAKER_CD", setParam[20]);
		setMap.setValue("CHGE_MACAD", setParam[21]);
		setMap.setValue("CHGE_STB_ID", setParam[22]);
		setMap.setValue("CHGE_HDD_CAPA_CD", setParam[23]);
		setMap.setValue("CHGE_VONU_BSPT_KH", setParam[24]);
		setMap.setValue("CHGE_STB_KEI_TV_COURSE_CD", setParam[25]);
		setMap.setValue("CHGE_ROUTER_KIND_CD", setParam[26]);
		setMap.setValue("CHGE_ROUTER_RENT_CD", setParam[27]);
		setMap.setValue("CHGE_SHUKKA_JOKYO_FLG", setParam[28]);
		setMap.setValue("CHGE_KIKI_CHG_NO", setParam[29]);
		setMap.setValue("JSEKI_TAKNKIKI_MODEL_CD", setParam[30]);
		setMap.setValue("JSEKI_KIKI_SEIZO_NO", setParam[31]);
		setMap.setValue("JSEKI_MAKER_CD", setParam[32]);
		setMap.setValue("JSEKI_MACAD", setParam[33]);
		setMap.setValue("JSEKI_STB_ID", setParam[34]);
		setMap.setValue("JSEKI_HDD_CAPA_CD", setParam[35]);
		setMap.setValue("JSEKI_VONU_BSPT_KH", setParam[36]);
		setMap.setValue("JSEKI_STB_KEI_TV_COURSE_CD", setParam[37]);
		setMap.setValue("JSEKI_ROUTER_KIND_CD", setParam[38]);
		setMap.setValue("JSEKI_ROUTER_RENT_CD", setParam[39]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[40]);
		setMap.setValue("KKTK_SVC_KEI_CHGE_MEMO", setParam[41]);
		setMap.setValue("MOTO_TCASE_NO", setParam[42]);
		setMap.setValue("OPMS_TKKIKI_CHGE_RSN_CD", setParam[43]);
		setMap.setValue("OPMS_TKKIKI_CHGE_RSN_CD_NM", setParam[44]);
		setMap.setValue("OPMS_TKKIKI_CHGE_RSN_MEMO", setParam[45]);
		setMap.setValue("ADD_DTM", setParam[46]);
		setMap.setValue("ADD_OPEACNT", setParam[47]);
		setMap.setValue("UPD_DTM", setParam[48]);
		setMap.setValue("UPD_OPEACNT", setParam[49]);
		setMap.setValue("DEL_DTM", setParam[50]);
		setMap.setValue("DEL_OPEACNT", setParam[51]);
		setMap.setValue("MK_FLG", setParam[52]);
		setMap.setValue("ADD_UNYO_YMD", setParam[53]);
		setMap.setValue("ADD_TRN_ID", setParam[54]);
		setMap.setValue("UPD_UNYO_YMD", setParam[55]);
		setMap.setValue("UPD_TRN_ID", setParam[56]);
		setMap.setValue("DEL_UNYO_YMD", setParam[57]);
		setMap.setValue("DEL_TRN_ID", setParam[58]);
		setMap.setValue("RSV_TAKINORT_KINO_CD", setParam[59]);
		setMap.setValue("RSV_TAKINORT_RTR_KINO_SKCD", setParam[60]);
		setMap.setValue("CHG_TAKINORT_KINO_CD", setParam[61]);
		setMap.setValue("CHG_TAKINORT_RTR_KINO_SKCD", setParam[62]);
		setMap.setValue("JSK_TAKINORT_KINO_CD", setParam[63]);
		setMap.setValue("JSK_TAKINORT_RTR_KINO_SKCD", setParam[64]);
	
		// DBアクセスを実行します
		db_KU_T_KJAK_TG_TKKIKI.insertByPrimaryKeys(setMap);
	}
// OM-2018-0001001 2018/11/07 ADD START
	/**
	 * SQLKEY(KK_SELECT_369)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約回線内訳番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_369(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_369);
	}
	
	/**
	 * SQLKEY(KK_SELECT_099)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_IDO_RSV_KK_SELECT_099(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		
		// DBアクセスを実行します
		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_KK_SELECT_099);
	}
	
// OM-2018-0001001 2018/11/07 ADD END

}
