/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSmtvlMskmInfoTrkm
*	ソースファイル名	：JBSbatKKSmtvlMskmInfoTrkm.java
*	作成者				：富士通　
*	作成日				：2012年08月25日
*＜機能概要＞
*　スマートバリュー申込情報取込反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/09/13   富士通		新規作成
*	v5.00.00	2013/01/17   富士通		ANK-1272-00-00 【スマートバリュー】フォロー対応
*	v5.00.00	2013/08/24   富士通		OM-2013-0000423 スマートバリュー申込情報取込反映の純バッチ化対応
*	v8.00.00	2014/02/19   富士通		ANK-1844-00-00 【ＮＯ．１２６９】スマートバリューのＯＭ４７１４関連改修
*	v8.01.00	2014/03/20   FJ)五十嵐	IT1-2014-0000097  移転先照合NG時に余分に処理が実行される
*  v10.00.00    2014/07/15   FJ) 谷口   【ANK-1918-00-00】ＵＳ管理Ｓ向けｅｏ顧客ＳのＩ／Ｆ改修
*  v10.01.00	2014/10/02   FJ)谷口	OM-2014-0003197 同一SYSIDに２つのバリューコードが登録される(住所変更中)
*  v31.00.00	2018/07/03   FJ)藤本	【IT1-2018-0000100】工事仮キャンセル受付の異動がスマートバリュー異動情報ファイルに出力されない(水平展開)
*  v54.00.00	2021/08/19   FJ)藤本涼	【OM-2021-0000643】スマートバリュー申込情報取込反映の登録処理実施時にエラーが発生(NullPointerException)
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.rule.common.JRuleXMLHandler;
import com.fujitsu.futurity.rule.xml.compare.JRuleXMLPattern;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JKKGetSmtvlCourseNmCd;
import eo.business.util.file.JBSbatKKIFE201;
import eo.business.util.file.JBSbatKKIFM249;
import eo.business.util.file.JBSbatKKIFM603;
import eo.business.util.table.JBSbatKK_M_OLD_ICS_CD_CHG;
import eo.business.util.table.JBSbatKK_M_PPLAN;
import eo.business.util.table.JBSbatKK_T_ADCHG;
import eo.business.util.table.JBSbatKK_T_IDO_RSN;
import eo.business.util.table.JBSbatKK_T_KAISEN_TG_SVKEI;
import eo.business.util.table.JBSbatKK_T_KDDI_WKEI_IDT;
import eo.business.util.table.JBSbatKK_T_MSKM;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_PRG;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_TAJGSWKEI_TGKEI;
import eo.business.util.table.JBSbatKK_T_TAJGS_WRIB_KEI;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.common.constant.JKKStrConst;
import eo.common.util.JCCOracleSeqUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* スマートバリュー申込情報取込反映 <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSmtvlMskmInfoTrkm extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(他事業者割引契約)*/
	private static final String D_TBL_NAME_KK_T_TAJGS_WRIB_KEI = "KK_T_TAJGS_WRIB_KEI";

	/** テーブル(他事業者割引契約対象契約)*/
	private static final String D_TBL_NAME_KK_T_TAJGSWKEI_TGKEI = "KK_T_TAJGSWKEI_TGKEI";

	/** テーブル(割引サービス対象契約)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_TG_KEI = "KK_T_WRISVC_TG_KEI";

	/** テーブル(旧ＩＣＳコード変換)*/
	private static final String D_TBL_NAME_KK_M_OLD_ICS_CD_CHG = "KK_M_OLD_ICS_CD_CHG";

	/** テーブル(申込)*/
	private static final String D_TBL_NAME_KK_T_MSKM = "KK_T_MSKM";

	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** テーブル(異動理由)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSN = "KK_T_IDO_RSN";

	/** テーブル(KDDI割引契約異動通知)*/
	private static final String D_TBL_NAME_KK_T_KDDI_WKEI_IDT = "KK_T_KDDI_WKEI_IDT";

	// IT1-2018-0000100 ADD START
	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";
	// IT1-2018-0000100 ADD END

	/** SQL定義キー(KK_SELECT_203)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_203 = "KK_SELECT_203";

	/** SQL定義キー(KK_SELECT_204)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_204 = "KK_SELECT_204";

	/** SQL定義キー(KK_SELECT_207)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_207 = "KK_SELECT_207";

	/** SQL定義キー(KK_SELECT_208)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_208 = "KK_SELECT_208";

	// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/03/04 add Start ▼▼▼▼▼▼▼▼
	/** SQL定義キー(KK_SELECT_287)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_287 = "KK_SELECT_287";
	/** SQL定義キー(KK_SELECT_289)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_289 = "KK_SELECT_289";
	// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/03/04 add End   ▲▲▲▲▲▲▲▲

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_TAJGS_WRIB_KEI_KK_SELECT_001 = "KK_SELECT_001";
	
	// 20130528 スマートバリュー品向による問題R ADD START
	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_TAJGS_WRIB_KEI_KK_SELECT_003 = "KK_SELECT_003";
	// 20130528 スマートバリュー品向による問題R ADD END

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_TAJGSWKEI_TGKEI_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_026)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_026 = "KK_SELECT_026";

	/** SQL定義キー(KK_SELECT_006)*/
	private static final String KK_M_OLD_ICS_CD_CHG_KK_SELECT_006 = "KK_SELECT_006";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KK_M_OLD_ICS_CD_CHG_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_014)*/
	private static final String KK_T_TAJGSWKEI_TGKEI_KK_SELECT_014 = "KK_SELECT_014";

	// IT1-2018-0000100 ADD START
	/** SQL定義キー(KK_SELECT_046)*/
	private static final String KU_T_KOJIAK_KK_SELECT_046 = "KK_SELECT_046";
	// IT1-2018-0000100 ADD END

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(他事業者割引契約)*/
	private JBSbatSQLAccess db_KK_T_TAJGS_WRIB_KEI = null;

	/** テーブルアクセスクラス(他事業者割引契約対象契約)*/
	private JBSbatSQLAccess db_KK_T_TAJGSWKEI_TGKEI = null;

	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;

	/** テーブルアクセスクラス(旧ＩＣＳコード変換)*/
	private JBSbatSQLAccess db_KK_M_OLD_ICS_CD_CHG = null;

	/** テーブルアクセスクラス(申込)*/
	private JBSbatSQLAccess db_KK_T_MSKM = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;

	/** テーブルアクセスクラス(異動理由)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSN = null;

	/** テーブルアクセスクラス(KDDI割引契約異動通知)*/
	private JBSbatSQLAccess db_KK_T_KDDI_WKEI_IDT = null;

	// IT1-2018-0000100 ADD START
	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;
	// IT1-2018-0000100 ADD END
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** レコード区分 ヘッダ */
	public static final String REC_DIV_HEADER = "10";
	
	/** レコード区分 データ */
	public static final String REC_DIV_DATA = "20";

	/** レコード区分 トラーラ */
	public static final String REC_DIV_TRAILER = "80";

	/** 処理区分 割引料金登録（契約番号未確認）（＝登録） */
	public static final String TRAN_DIV_ADD = "2";
	
	/** 処理区分 割引料金の終了（＝解約） */
	public static final String TRAN_DIV_DSL = "4";

	// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/03/03 add Start ▼▼▼▼▼▼▼▼
	/** サービス契約ステータス 解約済 */
	public static final String SVC_KEI_STAT_DSL = "910";
	/** サービス契約ステータス キャンセル済 */
	public static final String SVC_KEI_STAT_CSL = "920";
	// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/03/03 add End   ▲▲▲▲▲▲▲▲

	/** 割引料金ステータス 登録 */
	public static final String WRIBPRC_GRP_STAT_ADD = "010";

	/** 割引料金ステータス 解除 */
	public static final String WRIBPRC_GRP_STAT_RLS = "040";

	/** 割引料金引継ぎ種別 申込書番号 */
	public static final String WRIBPRC_HKTGI_SBT_MSKMSHO_NO = "1";

	/** 割引料金引継ぎ種別 割引料金グループ番号(バリューコード) */
	public static final String WRIBPRC_HKTGI_SBT_VAL_CD = "3";

	/** エラーコード フォーマットチェックエラー */
	private static final String ERR_CD_E01 = "E01";
	
	/** エラーコード 必須項目エラー */
	private static final String ERR_CD_E02 = "E02";
	
	/** エラーコード お客様未登録 */
	private static final String ERR_CD_E03 = "E03";
	
	/** エラーコード 対象外サービス */
	private static final String ERR_CD_E04 = "E04";
	
	/** エラーコード 電話のみ契約 */
	private static final String ERR_CD_E05 = "E05";
	
	/** エラーコード ＮＥＴのみ契約 */
	private static final String ERR_CD_E06 = "E06";
	
	/** エラーコード 契約状態エラー */
	private static final String ERR_CD_E07 = "E07";
	
	/** エラーコード 対象外プラン契約中 */
	private static final String ERR_CD_E08 = "E08";
	
	/** エラーコード 休止中 */
	private static final String ERR_CD_E09 = "E09";
	
	/** エラーコード 割引情報登録済 */
	private static final String ERR_CD_E10 = "E10";
	
	/** エラーコード 照査未完了 */
	private static final String ERR_CD_E11 = "E11";
	
	/** エラーコード 照査ＮＧ */
	private static final String ERR_CD_E12 = "E12";

	/** エラーコード 割引情報未登録 */
	private static final String ERR_CD_E13 = "E13";

	/** エラーコード 割引情報解除済 */
	private static final String ERR_CD_E14 = "E14";

	/** エラーコード 割引管理情報存在なし */
	private static final String ERR_CD_E15 = "E15";

	// ANK-1272-00-00 2013/01/17 ADD START
	/** エラーコード 別回線内訳番号 */
	private static final String ERR_CD_EA1 = "EA1";
	// ANK-1272-00-00 2013/01/17 ADD END

	// ANK-1272-00-00 2013/01/17 MOD START
	/** エラーコード 必須項目エラー（割引料金グループコード桁数チェック） */
	//private static final String ERR_CD_E16 = "E16";
	private static final String ERR_CD_EA2 = "EA2";
	
	/** エラーコード 必須項目エラー（割引料金グループコード属性チェック） */
	//private static final String ERR_CD_E17 = "E17";
	private static final String ERR_CD_EA3 = "EA3";

	/** エラーコード 必須項目エラー（割引料金登録年月日属性チェック） */
	//private static final String ERR_CD_E18 = "E18";
	private static final String ERR_CD_EA4 = "EA4";

	/** エラーコード 必須項目エラー（割引料金解除年月日属性チェック） */
	//private static final String ERR_CD_E19 = "E19";
	private static final String ERR_CD_EA5 = "EA5";
	// ANK-1272-00-00 2013/01/17 MOD END
	
	/** エラーコード 例外エラー */
	private static final String ERR_CD_E99 = "E99";

	/** KDDIエラーコード 処理区分不正 */
	private static final String KDDI_ERR_CD_901 = "901";

	/** KDDIエラーコード クロスセル料金ステータス不正 */
	private static final String KDDI_ERR_CD_908 = "908";

	/** KDDIエラーコード クロスセル料金引継ぎ種別不正 */
	private static final String KDDI_ERR_CD_913 = "913";

	/** KDDIエラーコード クロスセル料金引継番号存在エラー */
	private static final String KDDI_ERR_CD_205 = "205";

	/** KDDIエラーコード 事業者契約管理番号存在エラー */
	private static final String KDDI_ERR_CD_206 = "206";

	/** KDDIエラーコード FTTH契約回線サービス不正エラー */
	private static final String KDDI_ERR_CD_207 = "207";

	/** KDDIエラーコード FTTH契約回線ステータスエラー／FTTH契約回線サービス不正エラー */
	private static final String KDDI_ERR_CD_208 = "208";

	/** KDDIエラーコード ２重登録エラー */
	private static final String KDDI_ERR_CD_209 = "209";

	/** KDDIエラーコード その他エラー */
	private static final String KDDI_ERR_CD_999 = "999";

	/** 適用可否 適用可 */
	private static final String APLY_KH_OK = "0";
	
	/** 適用可否 適用不可 */
	private static final String APLY_KH_NG = "1";
	
	/** 適用サービス契約 eo光ネット */
	private static final String APLY_SVC_KEI_EOHNT = "01";
	
	/** 適用サービス契約 eo光電話 */
	private static final String APLY_SVC_KEI_EOHTL = "02";
	
	// KT1-2013-0000498 旧ICSコード変換マスタでマンション関連のコードが変換できない 2013/04/17 START
	/** 旧ICSコード変換.旧ICS料金プランコード(変換不可) */
	private static final String OLD_ICS_PPLAN_CD_CHG_FAILED = "000";
	// KT1-2013-0000498 旧ICSコード変換マスタでマンション関連のコードが変換できない 2013/04/17 END

	//**********************************
	// 出力項目
	//**********************************
	/** 処理区分 固定値（加入者情報取得） */
	public static final String TRAN_DIV_FIXED_VALUE = "6";

	/** 事業者区分 固定値（KDDIがK-OPTに割り当てたコード） */
	public static final String JIGYOSHA_DIV_FIXED_VALUE = "03";

	/** 事業者コード 固定値 */
	public static final String JIGYOSHA_CD_FIXED_VALUE = "902";
	
	// 20130522 スマートバリュー品向による問題N MOD START
//	/** 連絡先メールアドレス 固定値 */
//	public static final String KEISHA_MLAD_FIXED_VALUE  = "000000000";
	/** 電話番号 固定値 */
	public static final String TELNO_FIXED_VALUE  = "000000000";
	// 20130522 スマートバリュー品向による問題N MOD END
	
	/** サービス停止フラグ 利用中 */
	public static final String SVC_STP_FLG_OFF  = "0";
	
	/** ネットサービス種別 固定値（割引対象） */
	public static final String NET_SVC_SBT_FIXED_VALUE  = "000002";
	
	/** 電話サービス１種別 固定値（割引対象） */
	public static final String TEL1_SVC_SBT_FIXED_VALUE  = "100005";
		
	/** 契約有無フラグ 有 */
	public static final String KEI_UMU_FLG_ON  = "1";
	
	/** 契約有無フラグ 無 */
	public static final String KEI_UMU_FLG_OFF = "0";
		
	/** 登録結果コード 登録OK */
	public static final String ADD_RSLT_CD_OK = "00";

	/** 登録結果コード 登録NG */
	public static final String ADD_RSLT_CD_NG = "99";
	
	//**********************************
	// 入出力項目
	//**********************************
	/** 入出力項目 レコード区分 */
	public static final String REC_DIV = "rec_div";

	/** 入出力項目 処理区分 */
	public static final String TRAN_DIV = "tran_div";

	/** 入出力項目 事業者区分 */
	public static final String JIGYOSHA_DIV = "jigyosha_div";

	/** 入出力項目 事業者コード */
	public static final String JIGYOSHA_CD = "jigyosha_cd";

	/** 入出力項目 事業者契約管理番号 */
	public static final String JIGYOSHA_KEI_KNRI_NO = "jigyosha_kei_knri_no";

	/** 入出力項目 クロスセル料金種別 */
	public static final String CROSS_SEL_PRC_SBT = "cross_sel_prc_sbt";

	/** 入出力項目 契約コード */
	public static final String KEI_CD = "kei_cd";

	/** 入出力項目 割引料金グループコード */
	public static final String WRIBPRC_GRP_CD = "wribprc_grp_cd";

	/** 入出力項目 割引料金ステータス */
	public static final String WRIBPRC_GRP_STAT = "wribprc_grp_stat";

	/** 入出力項目 割引料金登録年月日 */
	public static final String WRIBPRC_ADD_YMD = "wribprc_add_ymd";

	/** 入出力項目 割引料金更新年月日 */
	public static final String WRIBPRC_UPD_YMD = "wribprc_upd_ymd";

	/** 入出力項目 割引料金解除年月日 */
	public static final String WRIBPRC_RLS_YMD = "wribprc_rls_ymd";

	/** 入出力項目 割引料金引継ぎ番号 */
	public static final String WRIBPRC_HKTGI_NO = "wribprc_hktgi_no";

	/** 入出力項目 割引料金引継ぎ種別 */
	public static final String WRIBPRC_HKTGI_SBT = "wribprc_hktgi_sbt";

	/** 入出力項目 エラーコード */
	public static final String ERR_CD = "err_cd";

	/** 入出力項目 KDDIエラーコード */
	public static final String KDDI_ERR_CD = "kddi_err_cd";

	/** 入力項目 コース名称コード */
	public static final String COURSE_NM_CD = "course_nm_cd";

	/** 入力項目 ネットサービス申込年月日 */
	public static final String NET_SVC_MSKM_YMD = "net_svc_mskm_ymd";

	/** 入力項目 ネットサービス課金開始年月日 */
	public static final String NET_SVC_CHRG_STAYMD = "net_svc_chrg_staymd";

	/** 入力項目 電話サービス１申込年月日 */
	public static final String TEL1_SVC_MSKM_YMD = "tel1_svc_mskm_ymd";

	/** 入力項目 電話サービス１課金開始年月日 */
	public static final String TEL1_SVC_CHRG_STAYMD = "tel1_svc_chrg_staymd";

	/** 入出力項目 SYSID */
	public static final String SYSID = "sysid";

	/** 入出力項目 サービス契約番号（ネット） */
	public static final String SVC_KEI_NO_NET = "svc_kei_no_net";

	/** 入出力項目 サービス契約番号（電話） */
	public static final String SVC_KEI_NO_TEL = "svc_kei_no_tel";
	
	/** 入出力項目 他事業者割引契約番号 */
	public static final String TAJGS_WRIB_KEI_NO = "tajgs_wrib_kei_no";
	
	/** 入出力項目 他事業者割引契約更新年月日時分秒 */
	public static final String TAJGS_WRIB_KEI_UPD_DTM = "tajgs_wrib_kei_upd_dtm";
	
	/** 入出力項目 ＫＤＤＩ事業者契約管理番号 */
	public static final String KDDI_JGS_KEI_KANRI_NO = "kddi_jgs_kei_kanri_no";
	
	/** 入出力項目 世代登録年月日時分秒（他事業者割引契約） */
	public static final String TAJGS_WRIB_KEI_GENE_ADD_DTM = "tajgs_wrib_kei_gene_add_dtm";
	
	/** 出力項目 ＫＤＤＩ割引契約異動通知番号（ネット） */
	public static final String KDDI_WKEI_IDT_NO_NET = "kddi_wkei_idt_no_net";

	/** WORK 申込明細番号 */
	public static final String MSKM_DTL_NO = "mskm_dtl_no";

	/** 処理区分 2:割引料金登録（契約番号未確認） */
	private static final String PARAM_TRAN_DIV_ADD = "2";

	/** 処理区分 4:割引料金の終了 */
	private static final String PARAM_TRAN_DIV_DSL = "4";

	/** 異動区分 スマートバリュー登録・変更 */
	private static final String IDO_DIV_SMTV_ADD_CHGE ="00070";
	
	/** 異動区分 スマートバリュー解約 */
	private static final String IDO_DIV_SMTV_DSL ="00071";
	
	/** 進捗ステータス スマートバリュー登録・変更完了 */
	private static final String PRG_STAT_SMTV_ADD_CHGE ="F090";
	
	/** 進捗ステータス スマートバリュー解約完了 */
	private static final String PRG_STAT_SMTV_DSL ="F091";

	/** KDDI割引契約異動通知結果コード 正常終了 */
	private static final String KDDI_WKEI_IDT_ERR_CD_NORMAL ="0";
	
	/** KDDI割引契約異動通知結果コード エラー */
	private static final String KDDI_WKEI_IDT_ERR_CD_ERR ="1";
	
	/** 異動理由コード 56：その他 */
	private static final String IDO_RSN_CD_OTHER = "56";

	/** 申込種別コード スマートバリュー登録・変更申込 */
	private static final String MSKM_SBT_SMTV_ADD_CHGE ="00043";
	
	/** 申込種別コード スマートバリュー解約申込 */
	private static final String MSKM_SBT_SMTV_ADD_DSL ="00044";
	
	/** 年月日項目の初期値 */
	public static final String YMD_SHKV = "20991231";

	/** シーケンス（進捗番号）*/
	private static final String SEQ_PRG_NO = "SEQ_PRG_NO";

	/** シーケンス（異動理由番号）*/
	private static final String SEQ_IDO_RSN_NO = "SEQ_IDO_RSN_NO";

	/** シーケンス（申込番号）*/
	private static final String SEQ_MSKM_NO = "SEQ_MSKM_NO";

	/** シーケンス（申込明細番号）*/
	private static final String SEQ_MSKM_DTL_NO = "SEQ_MSKM_DTL_NO";

	/** シーケンス（他事業者割引契約番号）*/
	private static final String SEQ_TAJGS_WRIB_KEI_NO = "SEQ_TAJGS_WRIB_KEI_NO";

	/** シーケンス（KDDI事業者契約管理番号）*/
	private static final String SEQ_KDDI_JGS_KEI_KANRI_NO = "SEQ_KDDI_JGS_KEI_KANRI_NO";

	/** シーケンス（他事業者割引契約対象契約番号）*/
	private static final String SEQ_TAJGSWKEI_TGKEI_NO = "SEQ_TAJGSWKEI_TGKEI_NO";

	/** シーケンス（KDDI割引契約異動通知番号）*/
	private static final String SEQ_KDDI_WKEI_IDT_NO = "SEQ_KDDI_WKEI_IDT_NO";

	/** 申込ステータス（承認済）*/
	private static final String MSKM_STAT_130 = "130";

	/** コンシューマ営業用申込状態識別コード（承認済）*/
	private static final String CONS_SKBT_CD_04 = "04";

	/**
	 * 英字・記号のマッピング配列
	 */
	private static final HashMap<String, String> MAPPING = new HashMap<String, String>();

	/** 変換配列 */
	private static final HashMap<String, String> CHANGE_DATA = new HashMap<String, String>();

	static
	{
		// 英字・記号のマッピング配列設定
		MAPPING.put("@", "0");
		MAPPING.put("a", "1");
		MAPPING.put("b", "2");
		MAPPING.put("c", "3");
		MAPPING.put("d", "4");
		MAPPING.put("e", "5");
		MAPPING.put("f", "6");
		MAPPING.put("g", "7");
		MAPPING.put("h", "8");
		MAPPING.put("i", "9");
		MAPPING.put("j", "0");
		MAPPING.put("k", "1");
		MAPPING.put("l", "2");
		MAPPING.put("m", "3");
		MAPPING.put("n", "4");
		MAPPING.put("o", "5");
		MAPPING.put("p", "0");
		MAPPING.put("q", "1");
		MAPPING.put("r", "2");
		MAPPING.put("s", "3");
		MAPPING.put("t", "4");
		MAPPING.put("u", "5");
		MAPPING.put("v", "6");
		MAPPING.put("w", "7");
		MAPPING.put("x", "8");
		MAPPING.put("y", "9");
		MAPPING.put("z", "0");
		MAPPING.put("A", "1");
		MAPPING.put("B", "2");
		MAPPING.put("C", "3");
		MAPPING.put("D", "4");
		MAPPING.put("E", "5");
		MAPPING.put("F", "6");
		MAPPING.put("G", "7");
		MAPPING.put("H", "8");
		MAPPING.put("I", "9");
		MAPPING.put("J", "0");
		MAPPING.put("K", "1");
		MAPPING.put("L", "2");
		MAPPING.put("M", "3");
		MAPPING.put("N", "4");
		MAPPING.put("O", "5");
		MAPPING.put("P", "0");
		MAPPING.put("Q", "1");
		MAPPING.put("R", "2");
		MAPPING.put("S", "3");
		MAPPING.put("T", "4");
		MAPPING.put("U", "5");
		MAPPING.put("V", "6");
		MAPPING.put("W", "7");
		MAPPING.put("X", "8");
		MAPPING.put("Y", "9");
		MAPPING.put("Z", "0");
		// 変換配列設定
		CHANGE_DATA.put("0", "KMNPQRSTUV");
		CHANGE_DATA.put("1", "PQRSTUVWXY");
		CHANGE_DATA.put("2", "TUVWXYZABC");
		CHANGE_DATA.put("3", "IJKMNPQRST");
		CHANGE_DATA.put("4", "CDEFGHIJKM");
		CHANGE_DATA.put("5", "MNPQRSTUVW");
		CHANGE_DATA.put("6", "ABCDEFGHIJ");
		CHANGE_DATA.put("7", "STUVWXYZAB");
		CHANGE_DATA.put("8", "HIJKMNPQRS");
		CHANGE_DATA.put("9", "NPQRSTUVWX");
	}

	// ANK-1918-00-00 2014/07/15 ADD START
	/** 工事諸変更連携対象*/
	private static final String SMTVL_KOJI_SHOHENKO = "SMTVL_KOJI_SHOHENKO";

	/** 工事諸変更連携対象*/
	private static final String SMTVL_KOJI_SHOHENKO_ON = "SMTVL_KOJI_SHOHENKO_ON";
	// ANK-1918-00-00 2014/07/15 ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_TAJGS_WRIB_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_TAJGS_WRIB_KEI);
		db_KK_T_TAJGSWKEI_TGKEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_TAJGSWKEI_TGKEI);
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		db_KK_M_OLD_ICS_CD_CHG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_OLD_ICS_CD_CHG);
		db_KK_T_MSKM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM);
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		db_KK_T_IDO_RSN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSN);
		db_KK_T_KDDI_WKEI_IDT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KDDI_WKEI_IDT);
		// IT1-2018-0000100 ADD START
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		// IT1-2018-0000100 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap 入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// INPUTの読み込みが全て終了した時点で、メイン処理を実行する
		 
		if(inMap == null)
		{
			commonItem.getLogPrint().printDebugLog("INPUTの読み込みが全て終了");
			// INPUTの読み込みが全て終了した場合
			if (outputInItem == null)
			{
				commonItem.getLogPrint().printDebugLog("空ファイル");
				// INPUTが空の場合、処理を終了する
				return null;
			}
			
			// メイン処理
			JBSbatOutputItem outputItem = mainProp(outputInItem);
			
			return outputItem;
		}
		else
		{
			// INPUTの読み込みが全て終了していない場合
			// 退避レコード格納リストに、現レコードを保存して、処理を終了する
			outputInItem.addOutMapList(inMap);
			return outputInItem;
		}
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_TAJGS_WRIB_KEI.close();
		db_KK_T_TAJGSWKEI_TGKEI.close();
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_M_OLD_ICS_CD_CHG.close();
		db_KK_T_MSKM.close();
		db_KK_T_MSKM_DTL.close();
		db_KK_T_PRG.close();
		db_KK_T_IDO_RSN.close();
		db_KK_T_KDDI_WKEI_IDT.close();
		// IT1-2018-0000100 ADD START
		db_KU_T_KOJIAK.close();
		// IT1-2018-0000100 ADD 
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_203)で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_203(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_203);
	}

	/**
	 * SQLKEY(KK_SELECT_204)で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_204(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_204);
	}

	/**
	 * SQLKEY(KK_SELECT_207)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	KDDIバリューコード
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	運用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_207(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_207);
	}

	/**
	 * SQLKEY(KK_SELECT_208)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	サービス契約番号
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	運用年月日
	 *		 	サービス契約番号
	 *		 	SYSID
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_208(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_208);
	}
	
// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/03/03 add Start ▼▼▼▼▼▼▼▼
	/**
	 * SQLKEY(KK_SELECT_287)で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_287(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_287);
	}

	/**
	 * SQLKEY(KK_SELECT_289)で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_289(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_289);
	}
// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/03/03 add End   ▲▲▲▲▲▲▲▲

	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	KDDIバリューコード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_TAJGS_WRIB_KEI_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_TAJGS_WRIB_KEI.selectBySqlDefine(paramList, KK_T_TAJGS_WRIB_KEI_KK_SELECT_001);
	}
	// 20130528 スマートバリュー品向による問題R ADD START
	/**
	 * SQLKEY(KK_SELECT_003)で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_TAJGS_WRIB_KEI_KK_SELECT_003(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_TAJGS_WRIB_KEI.selectBySqlDefine(paramList, KK_T_TAJGS_WRIB_KEI_KK_SELECT_003);
	}
	// 20130528 スマートバリュー品向による問題R ADD END
	/**
	 * SQLKEY(KK_SELECT_003)で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_TAJGSWKEI_TGKEI_KK_SELECT_003(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_KK_T_TAJGSWKEI_TGKEI.selectBySqlDefine(paramList, KK_T_TAJGSWKEI_TGKEI_KK_SELECT_003);
	}
	/**
	 * SQLKEY(KK_SELECT_026)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用日
	 *		 	運用日
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRISVC_TG_KEI_KK_SELECT_026(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_WRISVC_TG_KEI.selectBySqlDefine(paramList, KK_T_WRISVC_TG_KEI_KK_SELECT_026);
	}
	/**
	 * SQLKEY(KK_SELECT_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	料金グループコード
	 *		 	料金コースコード
	 *		 	料金プランコード
	 *		 	運用日付
	 *		 	運用日付
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_OLD_ICS_CD_CHG_KK_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_KK_M_OLD_ICS_CD_CHG.selectBySqlDefine(paramList, KK_M_OLD_ICS_CD_CHG_KK_SELECT_006);
	}

	/**
	 * 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 executeKK_M_OLD_ICS_CD_CHG_KK_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_KK_M_OLD_ICS_CD_CHG.selectBySqlDefine(paramList, KK_M_OLD_ICS_CD_CHG_KK_SELECT_007);
	}

	/**
	 * SQLKEY(KK_SELECT_014)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	運用日付
	 *		 	運用日付
	 *		 	他事業者割引契約番号
	 *		 	運用日付
	 *		 	運用日付
	 *		 	運用日付
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_TAJGSWKEI_TGKEI_KK_SELECT_014(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_KK_T_TAJGSWKEI_TGKEI.selectBySqlDefine(paramList, KK_T_TAJGSWKEI_TGKEI_KK_SELECT_014);
	}

	// IT1-2018-0000100 ADD START
	/**
	 * SQLKEY(KK_SELECT_046)で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_KOJIAK_KK_SELECT_046(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_046);
	}
	// IT1-2018-0000100 ADD END
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * メイン処理<BR>
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	private JBSbatOutputItem mainProp(JBSbatOutputItem outputInItem) throws Exception
	{
		// 戻り値の出力情報
		JBSbatOutputItem outputItem = new JBSbatOutputItem();

		// 退避レコード格納リスト数分、繰り返す。
		for (int i = 0; i < outputInItem.getOutMapList().size(); i++)
		{
			// 入力ファイル情報から処理中のレコード情報を取得
			JBSbatServiceInterfaceMap inRecordMap = (JBSbatServiceInterfaceMap)outputInItem.getOutMapList().get(i);
			commonItem.getLogPrint().printDebugLog("レコード："  + (i + 1) + "件目");
			commonItem.getLogPrint().printDebugLog(
					"  レコード区分：" + inRecordMap.getString(JBSbatKKIFE201.REC_DIV));
			commonItem.getLogPrint().printDebugLog(
					"  処理区分：" + inRecordMap.getString(JBSbatKKIFE201.TRAN_DIV));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金ステータス：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_GRP_STAT));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金引継ぎ種別：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_HKTGI_SBT));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金グループコード：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_GRP_CD));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金登録年月日：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_ADD_YMD));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金引継ぎ番号：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_HKTGI_NO));
			commonItem.getLogPrint().printDebugLog(
					"  割引料金解除年月日：" + inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_RLS_YMD));
			commonItem.getLogPrint().printDebugLog(
					"  事業者契約管理番号：" + inRecordMap.getString(JBSbatKKIFE201.JIGYOSHA_KEI_KNRI_NO));
			
			// 入力ファイル情報からレコード区分取得
			String recDiv = inRecordMap.getString(JBSbatKKIFE201.REC_DIV);

			// レコード区分がヘッダ、トレーラ以外の場合
			if (!REC_DIV_HEADER.equals(recDiv) && !REC_DIV_TRAILER.equals(recDiv))
			{
				// サービス実行に必要な情報を格納するマップ
				HashMap<String, Object> workMap = new HashMap<String, Object>();

				// マップの初期値設定
				initWorkMap(inRecordMap, workMap);

				// メイン処理
				executeMain(workMap);
				commonItem.getLogPrint().printDebugLog(
						"　チェック結果");
				commonItem.getLogPrint().printDebugLog(
						"  エラーコード：" + (String)workMap.get(ERR_CD));
				commonItem.getLogPrint().printDebugLog(
						"  KDDIエラーコード：" + (String)workMap.get(KDDI_ERR_CD));

				// ファイル出力項目設定
				// ※KDDI割引契約異動通知．KDDI割引契約異動通知内容にファイル出力内容を登録するため、スマートバリュー異動情報登録より先に行う
				JBSbatServiceInterfaceMap outputFileMap = new JBSbatServiceInterfaceMap();
				setOutputFileMap(workMap, outputFileMap);

				// スマートバリュー異動情報登録処理（申込情報の登録）
				addSmtvlIdoInf(workMap, outputFileMap, JKKStrConst.CD01445_MSKM);

				// スマートバリュー異動情報登録処理（申込取込結果の登録）
				String kddiWkeiIdtNo = addSmtvlIdoInf(workMap, outputFileMap, JKKStrConst.CD01445_MSKM_TKRT);

				// ファイル出力項目：ＫＤＤＩ割引契約異動通知番号（ネット）を設定
				outputFileMap.setString(JBSbatKKIFM249.KDDI_WKEI_IDT_NO_NET, kddiWkeiIdtNo);
				outputFileMap.setOutFlg(true);
				outputItem.addOutMapList(outputFileMap);

				// 処理区分:登録
				if(PARAM_TRAN_DIV_ADD.equals((String)workMap.get(TRAN_DIV)))
				{
					// サービス開始異動情報登録処理
					addSmtvlIdoInfSvcStart(workMap);
				}
				
				// ANK-1918-00-00 2014/07/15 ADD START
				// スマートバリュー工事諸変更情報ファイル出力
				// 取込結果が正常でかつスマートバリュー工事諸変更連携対象の場合
				if (isNullSpace((String)workMap.get(ERR_CD)) && SMTVL_KOJI_SHOHENKO_ON.equals((String)workMap.get(SMTVL_KOJI_SHOHENKO)))
				{
					JBSbatServiceInterfaceMap outputFileKkifm603Map = new JBSbatServiceInterfaceMap();
					setOutputFileKkifm603Map(workMap, outputFileKkifm603Map);
					outputFileKkifm603Map.setOutFlg(true);
					outputItem.addOutMapList_2(outputFileKkifm603Map);
				}
				// ANK-1918-00-00 2014/07/15 ADD END
			}
		}

		return outputItem;
	}

	/**
	 * チェックメイン処理<br>
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @throws Exception 例外が発生した場合
	 */
	private void chkMain(HashMap<String, Object> workMap)
	throws Exception
	{

		// 必須項目チェック処理
		if (chkHissuKmk(workMap))
		{
			// 処理区分＝登録の場合
			if (TRAN_DIV_ADD.equals(workMap.get(TRAN_DIV)))
			{
				// 登録用のチェック処理を行う
				// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 START
//				chkAdd(workMap);
				// チェックエラーの場合
// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/03/07 mod Start ▼▼▼▼▼▼▼▼
//				if (!chkAdd(workMap, false))
//				{
//					// 割引料金引継ぎ種別が「申込書番号」、エラーコードが「お客様未登録」でない場合
//					if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT))
//						&& !ERR_CD_E03.equals(workMap.get(ERR_CD)))
//					{
//						// 申込書番号での照合はNGであっても、申込書明細番号での照合はOKの場合があるため
//						// 申込書明細番号で再度照合を行う。
//						chkAdd(workMap, true);
//					}
//				}
				chkAdd(workMap);
// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/03/07 mod End ▲▲▲▲▲▲▲▲
				// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 END
			}
			// 処理区分＝解約の場合
			else if (TRAN_DIV_DSL.equals(workMap.get(TRAN_DIV)))
			{
				// 解約用のチェック処理を行う
				chkDsl(workMap);
			}
		}
	}

	/**
	 * 必須項目チェック処理<br>
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @return true:チェックエラーなし、false:チェックエラーあり
	 * @throws Exception
	 */
	private boolean chkHissuKmk(HashMap<String, Object> workMap) throws Exception
	{

		String strValue = "";
		
		// 処理区分を取得
		String recDiv = (String)workMap.get(REC_DIV);

		// 処理区分 ≠ データの場合
		if (!REC_DIV_DATA.equals(recDiv))
		{
			commonItem.getLogPrint().printDebugLog("必須項目チェックエラー「処理区分 ≠ データ」");
			workMap.put(ERR_CD, ERR_CD_E01);
			workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
			return false;
		}

		// 処理区分＝登録の場合
		if (TRAN_DIV_ADD.equals(workMap.get(TRAN_DIV)))
		{
			// 割引料金ステータス ≠ 登録 の場合エラー
			if (!WRIBPRC_GRP_STAT_ADD.equals(workMap.get(WRIBPRC_GRP_STAT)))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（登録）「割引料金ステータス ≠ 登録」");
				workMap.put(ERR_CD, ERR_CD_E02);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_908);
				return false;
			}
			// 割引料金引継ぎ種別 ≠ 申込書番号、割引料金グループ番号の場合、エラー
			if (!WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT))
					&& !WRIBPRC_HKTGI_SBT_VAL_CD.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（登録）「割引料金引継ぎ種別  ≠ 申込書番号、割引料金グループ番号」");
				workMap.put(ERR_CD, ERR_CD_E02);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_913);
				return false;
			}

			// 割引料金グループコード、割引料金登録年月日、割引料金引継ぎ番号、割引料金引継ぎ種別が未設定の場合、エラー
			if (isNullSpace((String)workMap.get(WRIBPRC_GRP_CD)) || isNullSpace((String)workMap.get(WRIBPRC_ADD_YMD))
					|| isNullSpace((String)workMap.get(WRIBPRC_HKTGI_NO))
					|| isNullSpace((String)workMap.get(WRIBPRC_HKTGI_SBT)))
			{
				commonItem.getLogPrint()
						.printDebugLog("必須項目チェックエラー（登録）「割引料金グループコード、割引料金登録年月日、割引料金引継ぎ番号、割引料金引継ぎ種別が未設定」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E02);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
			
			// 割引料金グループコード 桁数チェック
			strValue = (String)workMap.get(WRIBPRC_GRP_CD);
			if(!JBSbatCheckUtil.invoke(strValue.trim(), new String[]{"ketasuu1", "8"}))
			{
				commonItem.getLogPrint()
				.printDebugLog("必須項目チェックエラー（登録）「割引料金グループコードが8桁以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E16);
				workMap.put(ERR_CD, ERR_CD_EA2);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
			
			// 割引料金グループコード 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue.substring(0, 8), new String[]{"hannkakuesuuji1"}))
			{
				commonItem.getLogPrint()
				.printDebugLog("必須項目チェックエラー（登録）「割引料金グループコードが半角英数字1以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E17);
				workMap.put(ERR_CD, ERR_CD_EA3);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
			
			// 割引料金登録年月日が日付以外の場合、エラー
			if (!JBSbatCheckUtil.invoke(workMap.get(WRIBPRC_ADD_YMD), new String[]{"year_month_day1"}))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（登録）「割引料金登録年月日が日付以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E18);
				workMap.put(ERR_CD, ERR_CD_EA4);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
		}
		// 処理区分＝解約の場合
		else if (TRAN_DIV_DSL.equals(workMap.get(TRAN_DIV)))
		{
			// 割引料金ステータス ≠ 解約 の場合エラー
			if (!WRIBPRC_GRP_STAT_RLS.equals(workMap.get(WRIBPRC_GRP_STAT)))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（解約）「割引料金ステータス ≠ 解約」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E02);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_908);
				return false;
			}
			// 割引料金グループコード、割引料金解除年月日、事業者契約管理番号が未設定の場合、エラー
			if (isNullSpace((String)workMap.get(WRIBPRC_GRP_CD)) || isNullSpace((String)workMap.get(WRIBPRC_RLS_YMD))
					|| isNullSpace((String)workMap.get(JIGYOSHA_KEI_KNRI_NO)))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（解約）「割引料金グループコード、割引料金解除年月日、事業者契約管理番号が未設定」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E02);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
			
			// 割引料金グループコード 桁数チェック
			strValue = (String)workMap.get(WRIBPRC_GRP_CD);
			if(!JBSbatCheckUtil.invoke(strValue.trim(), new String[]{"ketasuu1", "8"}))
			{
				commonItem.getLogPrint()
				.printDebugLog("必須項目チェックエラー（解約）「割引料金グループコードが8桁以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E16);
				workMap.put(ERR_CD, ERR_CD_EA2);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}

			// 割引料金グループコード 属性チェック
			if(!JBSbatCheckUtil.invoke(strValue.substring(0, 8), new String[]{"hannkakuesuuji1"}))
			{
				commonItem.getLogPrint()
				.printDebugLog("必須項目チェックエラー（解約）「割引料金グループコードが半角英数字1以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E17);
				workMap.put(ERR_CD, ERR_CD_EA3);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}

			// 割引料金解除年月日が日付以外の場合、エラー
			if (!JBSbatCheckUtil.invoke(workMap.get(WRIBPRC_RLS_YMD), new String[]
			{
				"year_month_day1"
			}))
			{
				commonItem.getLogPrint().printDebugLog("必須項目チェックエラー（登録）「割引料金解除年月日が日付以外」");
				// エラーコード設定
				// ANK-1272-00-00 2013/01/17 MOD START
				//workMap.put(ERR_CD, ERR_CD_E19);
				workMap.put(ERR_CD, ERR_CD_EA5);
				// ANK-1272-00-00 2013/01/17 MOD END
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
		}
		// 処理区分が「登録、解約」以外の場合
		else
		{
			commonItem.getLogPrint().printDebugLog("必須項目チェックエラー「処理区分が「登録、解約」以外」");
			// エラーコード設定
			workMap.put(ERR_CD, ERR_CD_E02);
			workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_901);
			return false;
		}

		return true;
	}

// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/02/19 del Start ▼▼▼▼▼▼▼▼

//	// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 START
//	/**
//	 * 登録チェック処理
//	 * 
//	 * @param workMap サービス実行に必要な情報を格納するマップ
//	 * @param isShogoMskmshoDtlNo 申込書明細番号での照合を行うかどうか
//	 * @return true:チェックエラーなし、false:チェックエラーあり
//	 * @throws Exception
//	 */
////	private boolean chkAdd(HashMap<String, Object> workMap) throws Exception
//	private boolean chkAdd(HashMap<String, Object> workMap, boolean isShogoMskmshoDtlNo) throws Exception
//	// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 END
//	{
//
//		// 相関ルールOUT項目
//		HashMap<String, Object> ruleResult = new HashMap<String, Object>();
//		String aplyKh = ""; // 相関ルールOUT項目の適用可否
//		String aplySvcKei = ""; // 相関ルールOUT項目の適用サービス契約
//		String errCd = ""; // 相関ルールOUT項目のエラーコード
//		String kddiErrCd = ""; // 相関ルールOUT項目のKDDIエラーコード
//		
//		// スマートバリュー適用条件を満たすネット契約の情報
//		HashMap<String, Object> aplySvcKeiNetMap = new HashMap<String, Object>();
//		// スマートバリュー適用条件を満たす電話契約の情報
//		HashMap<String, Object> aplySvcKeiTelMap = new HashMap<String, Object>();
//		// 仮登録されている他事業者割引契約の情報
//		HashMap<String, Object> aplyTajgsWribKeiMap = new HashMap<String, Object>();
//		
//		// ----------------------------------------------------
//		// 契約データ存在チェック
//		// ----------------------------------------------------
//		// サービス契約情報リスト
//		ArrayList<HashMap<String, Object>> svcKeiList = new ArrayList<HashMap<String, Object>>();
//		// 割引料金引継ぎ種別 ＝ 申込書番号の場合
//		if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
//		{
//			// 申込書番号をもとにサービス契約情報を取得
//			svcKeiList = selectSvcKeiByMskmshoNo((String)workMap.get(WRIBPRC_HKTGI_NO));
//
//			// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 START
//			// 取得できなかった場合、または申込書明細番号での照合を行う指定がある場合
////			if (svcKeiList == null || svcKeiList.size() == 0)
//			if (svcKeiList == null || svcKeiList.size() == 0 || isShogoMskmshoDtlNo)
//			// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 END
//			{
//				// 申込書明細番号をもとにサービス契約情報を取得
//				svcKeiList = selectSvcKeiByMskmshoDtlNo((String)workMap.get(WRIBPRC_HKTGI_NO));
//
//				// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 START
//				if (isShogoMskmshoDtlNo)
//				{
//					// 取得できなかった場合
//					if (svcKeiList == null || svcKeiList.size() == 0)
//					{
//						// エラーコード、KDDIエラーコードは申込書番号での照合結果を使用する
//						return false;
//					}
//					else
//					{
//						// 申込書明細番号での照合を行うため、エラーコード、KDDIエラーコードをクリア
//						workMap.put(ERR_CD, "");
//						workMap.put(KDDI_ERR_CD, "");
//					}
//				}
//				else
//				{
//					// 取得できなかった場合
//					if (svcKeiList == null || svcKeiList.size() == 0)
//					{
//						commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「割引料金引継番号でサービス契約情報が取得できませんでした」");
//						// エラーコード設定
//						workMap.put(ERR_CD, ERR_CD_E03);
//						workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_206);
//						return false;
//					}
//				}
//				// OM-2013-0001992 スマートバリュー申込情報取込反映で解約済とサービス提供中の契約が存在する場合に照合エラー 2013/09/13 END
//			}
//		}
//		// 割引料金引継ぎ種別 ＝割引料金グループ番号の場合
//		// ANK-1272-00-00 2013/01/17 MOD START
//		//else if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
//		else if (WRIBPRC_HKTGI_SBT_VAL_CD.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
//		// ANK-1272-00-00 2013/01/17 MOD END
//		{
//			// KDDIバリューコード(割引料金グループコード)をもとにサービス契約情報を取得
//			// ANK-1272-00-00 2013/01/17 MOD START
//			//svcKeiList = selectSvcKeiByKddiValCd((String)workMap.get((String)workMap.get(WRIBPRC_GRP_CD)));
//			svcKeiList = selectSvcKeiByKddiValCd((String)workMap.get(WRIBPRC_GRP_CD));
//			// ANK-1272-00-00 2013/01/17 MOD END
//			// 取得できなかった場合
//			if (svcKeiList == null || svcKeiList.size() == 0)
//			{
//				commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「割引料金グループ番号でサービス契約情報が取得できませんでした」");
//				// エラーコード設定
//				workMap.put(ERR_CD, ERR_CD_E03);
//				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_205);
//				return false;
//			}
//		}
//		
//		// ----------------------------------------------------
//		// eo光ネット契約チェック
//		// ----------------------------------------------------
//		// 20130522 スマートバリュー品向による問題E ADD START
//		// ネット契約が複数取得された場合、１件目のみを処理対象とするためのフラグ(住変の申込書番号or申込書明細番号で連携された)
//		boolean isNetExist = false;
//		// 20130522 スマートバリュー品向による問題E ADD END
//		for (HashMap<String, Object> svcKeiMap : svcKeiList)
//		{
//			// スマートバリュー適用条件を満たすネット契約か判定
//			ruleResult = executeRULE0086001(svcKeiMap);
//			
//			aplyKh = (String)ruleResult.get("APLY_KH");
//			aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
//			errCd = (String)ruleResult.get("ERR_CD");
//			kddiErrCd = (String)ruleResult.get("KDDI_ERR_CD");
//			
//			if (APLY_KH_OK.equals(aplyKh))
//			{
//				// 20130522 スマートバリュー品向による問題E MOD START
////				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
//				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei) && !isNetExist)
//				// 20130522 スマートバリュー品向による問題E MOD END
//				{
//					// 適用条件を満たす、ネット契約が存在した場合
//					
//					// SYSID、サービス契約番号（ネット）は、以降のチェックでNGとなった場合でも
//					// サービス呼出に必要になるため、この時点で設定
//					workMap.put(SYSID, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SYSID));
//					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//					
//					// DBから取得した項目を退避してブレイクする
//					aplySvcKeiNetMap.putAll(svcKeiMap);
//					break;
//				}
//				else if (APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
//				{
//					// 適用条件を満たす、電話契約が存在した場合、
//					// DBから取得した項目を退避
//					if (aplySvcKeiTelMap.isEmpty())
//					{
//						aplySvcKeiTelMap.putAll(svcKeiMap);
//					}
//				}
//			}
//			else
//			{
//				// 20130522 スマートバリュー品向による問題E MOD START
//				// ネットで対象外サービス以外のエラーの場合、その時点でエラーとする
//				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
//				{
//					isNetExist = true;
//					// サービス契約番号（ネット）
//					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//					
//					if (!ERR_CD_E04.equals(errCd))
//					{
//						commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「相関ルールによるネットの照合チェックエラー」");
//						// エラーコード設定
//						workMap.put(ERR_CD, errCd);
//						workMap.put(KDDI_ERR_CD, kddiErrCd);
//						return false;
//					}
//				}
//				// 20130522 スマートバリュー品向による問題E MOD END
//			}
//		}
//		
//		// ----------------------------------------------------
//		// eo光電話契約チェック
//		// ----------------------------------------------------
//		// スマートバリュー適用条件を満たすネット契約が存在する場合
//		if (!aplySvcKeiNetMap.isEmpty())
//		{
//			aplySvcKeiTelMap = new HashMap<String, Object>();
//			String svcKeiNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
//			String sysIdNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SYSID);
//			
//			boolean isExistBtKaisen = false;		//ネットと別回線の適用条件を満たす電話契約が存在した場合、True
//			// 20130522 スマートバリュー品向による問題E ADD START
//			// ネット契約の移転先サービス契約回線内訳番号が設定されている場合、移転先サービス契約回線内訳番号が一致するかを判定する
//			boolean isItens = !isNullSpace((String)aplySvcKeiNetMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO));
//			// 20130522 スマートバリュー品向による問題E ADD END
//			// ネット契約と同一SYSIDのサービス契約を取得
//			svcKeiList = selectSvcKeiBySysIdSvcKeiNo(svcKeiNoNet, sysIdNet);
//			
//			for (HashMap<String, Object> svcKeiMap : svcKeiList)
//			{
//				// スマートバリュー適用条件を満たす電話契約か判定
//				ruleResult = executeRULE0086001(svcKeiMap);
//				aplyKh = (String)ruleResult.get("APLY_KH");
//				aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
//				
//				if (APLY_KH_OK.equals(aplyKh) && APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
//				{
//					// 20130522 スマートバリュー品向による問題E MOD START
////					String svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
////					String svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
//					String svcKeiKaisenUcwkNoNet = null; 
//					String svcKeiKaisenUcwkNoTel = null;
//					if(isItens)
//					{
//						svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO);
//						svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO);
//					}
//					else
//					{
//						svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
//						svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
//					}
//					
//					// 20130522 スマートバリュー品向による問題E MOD END
//					if (svcKeiKaisenUcwkNoNet != null && svcKeiKaisenUcwkNoNet.equals(svcKeiKaisenUcwkNoTel))
//					{
//						// 適用条件を満たす同一回線の電話契約が存在した場合
//						aplySvcKeiTelMap.putAll(svcKeiMap);
//						break;
//					}
//					else
//					{
//						// 適用条件を満たす別回線の電話契約が存在した場合
//						isExistBtKaisen = true;
//					}
//				}
//			}
//			
//			// 適用条件を満たす電話契約が存在しない場合
//			if (aplySvcKeiTelMap.isEmpty())
//			{
//				// ANK-1272-00-00 2013/01/17 DEL START
//				// 	commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「ＮＥＴのみ契約」");
//				// エラーコード設定
//				//
//				//workMap.put(ERR_CD, ERR_CD_E06);
//				//workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
//				//return false;
//				//}
//				//else
//				//{
//				// ANK-1272-00-00 2013/01/17 DEL END
//				if (isExistBtKaisen)
//				{
//					// 別回線のスマートバリュー適用条件を満たす電話契約が存在した場合
//					commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「別回線内訳番号」");
//					// エラーコード設定
//					// ANK-1272-00-00 2013/01/17 MOD START
//					//workMap.put(ERR_CD, ERR_CD_E15);
//					workMap.put(ERR_CD, ERR_CD_EA1);
//					// ANK-1272-00-00 2013/01/17 MOD END
//					workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
//					return false;
//				}
//				// ANK-1272-00-00 2013/01/17 ADD END
//				commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「ＮＥＴのみ契約」");
//				// エラーコード設定
//				
//				workMap.put(ERR_CD, ERR_CD_E06);
//				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
//				return false;
//				// ANK-1272-00-00 2013/01/17 ADD END
//			}
//		}
//		// スマートバリュー適用条件を満たすeo光ネット契約が存在しない場合
//		else
//		{
//			// スマートバリュー適用条件を満たすeo光電話が存在する場合
//			// ※ eo光ネット契約チェック時点の電話のサービス契約番号で判定
//			// 20130522 スマートバリュー品向 条件誤りの修正 MOD START
////			if (aplySvcKeiTelMap.isEmpty())
//			if (!aplySvcKeiTelMap.isEmpty())
//			// 20130522 スマートバリュー品向 条件誤りの修正 MOD END
//			{
//				commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「電話のみ」");
//				
//				// サービス契約番号（ネット）※電話のサービス契約番号だが、KDDI割引契約異動通知に出力するため、ネットの項目に設定
//				workMap.put(SVC_KEI_NO_NET, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//				// エラーコード設定
//				workMap.put(ERR_CD, ERR_CD_E05);
//				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
//				return false;
//			}
//			else
//			{
//				commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「対象外サービス」");
//				// エラーコード設定
//				workMap.put(ERR_CD, ERR_CD_E05);
//				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
//				return false;
//			}
//		}
//
//		// ----------------------------------------------------
//		// スマートバリュー締結済チェック
//		// バリューコードと申込書番号の相関チェック
//		// ----------------------------------------------------
//		// バリューコードをもとに他事業者割引契約取得
//		ArrayList<HashMap<String, Object>> tajgsWribKeiList = new ArrayList<HashMap<String, Object>>();
//		tajgsWribKeiList = selectTajgsWribKeiByValCd((String)workMap.get(WRIBPRC_GRP_CD));
//		if (tajgsWribKeiList != null && tajgsWribKeiList.size() > 0)
//		{
//			HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
//			if (isValidYmd((String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
//			{
//				// 他事業者割引契約締結年月日が設定されている場合、エラー
//				commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「スマートバリュー締結済チェック」");
//				// エラーコード設定
//				workMap.put(ERR_CD, ERR_CD_E10);
//				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
//				return false;
//			}
//
//			// 割引料金引継ぎ種別 ＝ 申込書番号の場合
//			if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
//			{
//				// 他事業者割引契約番号、サービス契約番号をもとに他事業者割引契約対象契約を取得
//				ArrayList<HashMap<String, Object>> tajgswkeiTgkeiList = new ArrayList<HashMap<String, Object>>();
//				tajgswkeiTgkeiList = selectTajgswkeiTgkei(
//						(String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO), 
//						(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO), 
//						(String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//				if (tajgswkeiTgkeiList == null || (tajgswkeiTgkeiList != null && tajgswkeiTgkeiList.size() < 2))
//				{
//					// 連携されたバリューコードに紐づくサービス契約と
//					// 連携された申込書番号に紐づくサービス契約が一致しない場合、エラー
//					commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「バリューコードと申込書番号の相関チェック」");
//					// エラーコード設定
//					workMap.put(ERR_CD, ERR_CD_E10);
//					workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
//					return false;
//				}
//			}
//			aplyTajgsWribKeiMap.putAll(tajgsWribKeiMap);
//		}
//		// 20130528 スマートバリュー品向による問題R ADD START
//		else
//		{
//			// 割引料金引継ぎ種別 ＝ 申込書番号の場合
//			if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
//			{
//				// サービス契約に紐付く他事業者割引契約を取得
//				ArrayList<HashMap<String, Object>> tajgsWribKeiBySvcKeiNoList = selectTajgsWribKeiBySvcKeiNo((String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//				if (tajgsWribKeiBySvcKeiNoList != null && tajgsWribKeiBySvcKeiNoList.size() > 0)
//				{
//					HashMap<String, Object> tajgsWribKeiBySvcKeiNoMap = tajgsWribKeiBySvcKeiNoList.get(0);
//					
//					// 締結済or解約済の場合
//					if (isValidYmd((String)tajgsWribKeiBySvcKeiNoMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
//					{
//						if (!isValidYmd((String)tajgsWribKeiBySvcKeiNoMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD)))
//						{
//							// 締結済の場合エラー
//							commonItem.getLogPrint().printDebugLog("照合チェックエラー（登録）「スマートバリュー締結済チェック２」");
//							// エラーコード設定
//							workMap.put(ERR_CD, ERR_CD_E10);
//							workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
//							return false;
//							
//						}
//						else
//						{
//							// 解約済の場合は、再申込のため更新ではなく新規登録する
//						}
//					}
//					// 仮登録の場合
//					else
//					{
//						// 連携されたバリューコードとは別のバリューコードで仮登録中の場合、更新処理を行う
//						aplyTajgsWribKeiMap.putAll(tajgsWribKeiBySvcKeiNoMap);
//					}
//				}
//				else
//				{
//					// 新規登録する
//				}
//			}
//			
//		}
//		// 20130528 スマートバリュー品向による問題R ADD END
//		
//		
//		// ----------------------------------------------------
//		// チェックOK
//		// ----------------------------------------------------
//		// サービス契約番号（電話）
//		workMap.put(SVC_KEI_NO_TEL, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//		
//		// 他事業者割引契約番号
//		workMap.put(TAJGS_WRIB_KEI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO));
//		
//		// 他事業者割引契約更新年月日時分秒
//		workMap.put(TAJGS_WRIB_KEI_UPD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.UPD_DTM));
//		
//		// ＫＤＤＩ事業者契約管理番号
//		workMap.put(KDDI_JGS_KEI_KANRI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO));
//		
//		// 世代登録年月日時分秒（他事業者割引契約）
//		workMap.put(TAJGS_WRIB_KEI_GENE_ADD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM));
//		
//		// コース名称コード
//		workMap.put(COURSE_NM_CD, getCourseNmCd(
//				(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)
//				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PRC_GRP_CD)
//				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PCRS_CD)
//				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PPLAN_CD)));
//		
//		// ネットサービス申込年月日
//		workMap.put(NET_SVC_MSKM_YMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
//		
//		// ネットサービス課金開始年月日
//		// 20130522 スマートバリュー品向による問題@ MOD START
////		workMap.put(NET_SVC_CHRG_STAYMD, getSvcChrgStaymd((String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD)));
//		workMap.put(NET_SVC_CHRG_STAYMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
//		// 20130522 スマートバリュー品向による問題@ MOD END
//		
//		// 電話サービス１申込年月日
//		workMap.put(TEL1_SVC_MSKM_YMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
//		
//		// 電話サービス１課金開始年月日
//		// 20130522 スマートバリュー品向による問題@ MOD START
////		workMap.put(TEL1_SVC_CHRG_STAYMD, getSvcChrgStaymd((String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD)));
//		workMap.put(TEL1_SVC_CHRG_STAYMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
//		// 20130522 スマートバリュー品向による問題@ MOD END
//		
//		return true;
//	}

// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/02/19 del End   ▲▲▲▲▲▲▲▲
// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/02/19 add Start ▼▼▼▼▼▼▼▼
	/**
	 * 登録チェック処理
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @param isShogoMskmshoDtlNo 申込書明細番号での照合を行うかどうか
	 * @return true:チェックエラーなし、false:チェックエラーあり
	 * @throws Exception
	 */
	private boolean chkAdd(HashMap<String, Object> workMap) throws Exception
	{
		// 割引料金引継ぎ種別 ＝ 申込書番号の場合
		if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
		{
			// IT1-2014-0000097 2014/03/19 MOD START
			String wribPrcHktgiNo = ((String)workMap.get(WRIBPRC_HKTGI_NO)).trim();
			if (!chkAddMskmsho(workMap, false, wribPrcHktgiNo))
			// IT1-2014-0000097 2014/03/19 MOD END
			{
				// 割引料金引継ぎ種別が「申込書番号」、エラーコードが「お客様未登録」でない場合
				if (WRIBPRC_HKTGI_SBT_MSKMSHO_NO.equals(workMap.get(WRIBPRC_HKTGI_SBT))
						&& !ERR_CD_E03.equals(workMap.get(ERR_CD)))
				{
					// 申込書番号での照合はNGであっても、申込書明細番号での照合はOKの場合があるため
					// 申込書明細番号で再度照合を行う。
					// IT1-2014-0000097 2014/03/19 MOD START
					if(chkAddMskmsho(workMap, true, wribPrcHktgiNo))
					// IT1-2014-0000097 2014/03/19 MOD END
					{
						return true;
					}
				}
			}
			else{
				return true;
			}
			
			// 連携された申込書番号、申込書明細番号での照合がNGだった場合
			// 住所変更時の申込書番号、申込書明細番号を取得
			// IT1-2014-0000097 2014/03/19 MOD START
			HashMap<String, Object> addChgMskmshoNo = getAddChgChuMskmshoNo(wribPrcHktgiNo);
			// IT1-2014-0000097 2014/03/19 MOD END
			if(addChgMskmshoNo.isEmpty())
			{
				// 住所変更中ではないため
				return false;
			}
			else
			{
				// 住所変更時の申込書番号、申込書明細番号での照合を行うため、エラーコード、KDDIエラーコードをクリア
				workMap.put(ERR_CD, "");
				workMap.put(KDDI_ERR_CD, "");

				if(chkAddMskmsho(workMap, false, (String)addChgMskmshoNo.get(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO)))
				{
					return true;
				}
				else
				{
					return chkAddMskmsho(workMap, true, (String)addChgMskmshoNo.get(JBSbatKK_T_MSKM_DTL.MSKMSHO_DTL_NO));
				}
			}
		}
		// 割引料金引継ぎ種別 ＝割引料金グループ番号の場合
		else
		{
			return chkAddValcd(workMap);
		}
	}

	/**
	 * 登録チェック(申込書明細番号)処理
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @param isShogoMskmshoDtlNo 申込書明細番号での照合を行うかどうか
	 * @param addChgMskmshoNo 住所変更時申込書番号(または申込書明細番号)
	 * @return true:チェックエラーなし、false:チェックエラーあり
	 * @throws Exception
	 */
	private boolean chkAddMskmsho(HashMap<String, Object> workMap, boolean isShogoMskmshoDtlNo, String mskmshoNo) throws Exception
	{
		// 相関ルールOUT項目
		HashMap<String, Object> ruleResult = new HashMap<String, Object>();
		String aplyKh = ""; // 相関ルールOUT項目の適用可否
		String aplySvcKei = ""; // 相関ルールOUT項目の適用サービス契約
		String errCd = ""; // 相関ルールOUT項目のエラーコード
		String kddiErrCd = ""; // 相関ルールOUT項目のKDDIエラーコード
		
		// スマートバリュー適用条件を満たすネット契約の情報
		HashMap<String, Object> aplySvcKeiNetMap = new HashMap<String, Object>();
		// スマートバリュー適用条件を満たす電話契約の情報
		HashMap<String, Object> aplySvcKeiTelMap = new HashMap<String, Object>();
		// 仮登録されている他事業者割引契約の情報
		HashMap<String, Object> aplyTajgsWribKeiMap = new HashMap<String, Object>();
		
		// ----------------------------------------------------
		// 契約データ存在チェック
		// ----------------------------------------------------
		// サービス契約情報リスト
		ArrayList<HashMap<String, Object>> svcKeiList = new ArrayList<HashMap<String, Object>>();
		// 申込書番号をもとにサービス契約情報を取得
		svcKeiList = selectSvcKeiByMskmshoNo(mskmshoNo);

		// 取得できなかった場合、または申込書明細番号での照合を行う指定がある場合
		if (svcKeiList == null || svcKeiList.size() == 0 || isShogoMskmshoDtlNo)
		{
			// 申込書明細番号をもとにサービス契約情報を取得
			svcKeiList = selectSvcKeiByMskmshoDtlNo(mskmshoNo);

			if (isShogoMskmshoDtlNo)
			{
				// 取得できなかった場合
				if (svcKeiList == null || svcKeiList.size() == 0)
				{
					// エラーコード、KDDIエラーコードは申込書番号での照合結果を使用する
					return false;
				}
				else
				{
					// 申込書明細番号での照合を行うため、エラーコード、KDDIエラーコードをクリア
					workMap.put(ERR_CD, "");
					workMap.put(KDDI_ERR_CD, "");
				}
			}
			else
			{
				// 取得できなかった場合
				if (svcKeiList == null || svcKeiList.size() == 0)
				{
					commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「割引料金引継番号でサービス契約情報が取得できませんでした」");
					// エラーコード設定
					workMap.put(ERR_CD, ERR_CD_E03);
					workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_206);
					return false;
				}
			}
		}

		// ----------------------------------------------------
		// eo光ネット契約チェック
		// ----------------------------------------------------
		// ネット契約が複数取得された場合、１件目のみを処理対象とするためのフラグ(住変の申込書番号or申込書明細番号で連携された)
		boolean isNetExist = false;
		for (HashMap<String, Object> svcKeiMap : svcKeiList)
		{
			// スマートバリュー適用条件を満たすネット契約か判定
			ruleResult = executeRULE0086001(svcKeiMap);
			
			aplyKh = (String)ruleResult.get("APLY_KH");
			aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
			errCd = (String)ruleResult.get("ERR_CD");
			kddiErrCd = (String)ruleResult.get("KDDI_ERR_CD");
			
			if (APLY_KH_OK.equals(aplyKh))
			{
				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei) && !isNetExist)
				{
					// 適用条件を満たす、ネット契約が存在した場合
					
					// SYSID、サービス契約番号（ネット）は、以降のチェックでNGとなった場合でも
					// サービス呼出に必要になるため、この時点で設定
					workMap.put(SYSID, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SYSID));
					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
					
					// DBから取得した項目を退避してブレイクする
					aplySvcKeiNetMap.putAll(svcKeiMap);
					break;
				}
				else if (APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
				{
					// 適用条件を満たす、電話契約が存在した場合、
					// DBから取得した項目を退避
					if (aplySvcKeiTelMap.isEmpty())
					{
						aplySvcKeiTelMap.putAll(svcKeiMap);
					}
				}
			}
			else
			{
				// ネットで対象外サービス以外のエラーの場合、その時点でエラーとする
				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
				{
					isNetExist = true;
					// サービス契約番号（ネット）
					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
					
					if (!ERR_CD_E04.equals(errCd))
					{
						commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「相関ルールによるネットの照合チェックエラー」");
						// エラーコード設定
						workMap.put(ERR_CD, errCd);
						workMap.put(KDDI_ERR_CD, kddiErrCd);
						return false;
					}
				}
			}
		}
		
		// ----------------------------------------------------
		// eo光電話契約チェック
		// ----------------------------------------------------
		// スマートバリュー適用条件を満たすネット契約が存在する場合
		if (!aplySvcKeiNetMap.isEmpty())
		{
			aplySvcKeiTelMap = new HashMap<String, Object>();
			String svcKeiNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
			String sysIdNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SYSID);
			
			boolean isExistBtKaisen = false;		//ネットと別回線の適用条件を満たす電話契約が存在した場合、True
			// 住所変更の申込書番号(申込書明細番号)が設定されている場合
			boolean isItens = !isNullSpace((String)aplySvcKeiNetMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO));
			// ネット契約と同一SYSIDのサービス契約を取得
			svcKeiList = selectSvcKeiBySysIdSvcKeiNo(svcKeiNoNet, sysIdNet);
			
			for (HashMap<String, Object> svcKeiMap : svcKeiList)
			{
				// スマートバリュー適用条件を満たす電話契約か判定
				ruleResult = executeRULE0086001(svcKeiMap);
				aplyKh = (String)ruleResult.get("APLY_KH");
				aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
				
				if (APLY_KH_OK.equals(aplyKh) && APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
				{
					String svcKeiKaisenUcwkNoNet = null;
					String svcKeiKaisenUcwkNoTel = null;
					if(isItens)
					{
						svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO);
						svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_ADCHG.ITENS_SVKEI_KISUW_NO);
						
						if (!svcKeiKaisenUcwkNoNet.equals(svcKeiKaisenUcwkNoTel))
						{
							// 移転先回線内訳が一致しない場合、移転元回線内訳で照合する
							svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
							svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
						}
					}
					else
					{
						svcKeiKaisenUcwkNoNet = (String)aplySvcKeiNetMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
						svcKeiKaisenUcwkNoTel = (String)svcKeiMap.get(JBSbatKK_T_KAISEN_TG_SVKEI.SVC_KEI_KAISEN_UCWK_NO);
					}
					
					if (svcKeiKaisenUcwkNoNet != null && svcKeiKaisenUcwkNoNet.equals(svcKeiKaisenUcwkNoTel))
					{
						// 適用条件を満たす同一回線の電話契約が存在した場合
						aplySvcKeiTelMap.putAll(svcKeiMap);
						break;
					}
					else
					{
						// 適用条件を満たす別回線の電話契約が存在した場合
						isExistBtKaisen = true;
					}
				}
			}
			
			// 適用条件を満たす電話契約が存在しない場合
			if (aplySvcKeiTelMap.isEmpty())
			{
				if (isExistBtKaisen)
				{
					// 別回線のスマートバリュー適用条件を満たす電話契約が存在した場合
					commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「別回線内訳番号」");
					// エラーコード設定
					workMap.put(ERR_CD, ERR_CD_EA1);
					workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
					return false;
				}
				commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「ＮＥＴのみ契約」");
				// エラーコード設定
				
				workMap.put(ERR_CD, ERR_CD_E06);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
		}
		// スマートバリュー適用条件を満たすeo光ネット契約が存在しない場合
		else
		{
			// スマートバリュー適用条件を満たすeo光電話が存在する場合
			// ※ eo光ネット契約チェック時点の電話のサービス契約番号で判定
			if (!aplySvcKeiTelMap.isEmpty())
			{
				commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「電話のみ」");
				
				// サービス契約番号（ネット）※電話のサービス契約番号だが、KDDI割引契約異動通知に出力するため、ネットの項目に設定
				workMap.put(SVC_KEI_NO_NET, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E05);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
			else
			{
				commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「対象外サービス」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E04);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
		}

		// ----------------------------------------------------
		// スマートバリュー締結済チェック
		// バリューコードと申込書番号の相関チェック
		// ----------------------------------------------------
		// バリューコードをもとに他事業者割引契約取得
		ArrayList<HashMap<String, Object>> tajgsWribKeiList = new ArrayList<HashMap<String, Object>>();
		tajgsWribKeiList = selectTajgsWribKeiByValCd((String)workMap.get(WRIBPRC_GRP_CD));
		if (tajgsWribKeiList != null && tajgsWribKeiList.size() > 0)
		{
			HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
			if (isValidYmd((String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
			{
				// 他事業者割引契約締結年月日が設定されている場合、エラー
				commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「スマートバリュー締結済チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E10);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
				return false;
			}

			// 他事業者割引契約番号、サービス契約番号をもとに他事業者割引契約対象契約を取得
			ArrayList<HashMap<String, Object>> tajgswkeiTgkeiList = new ArrayList<HashMap<String, Object>>();
			tajgswkeiTgkeiList = selectTajgswkeiTgkei(
					(String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO), 
					(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO), 
					(String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
			if (tajgswkeiTgkeiList == null || (tajgswkeiTgkeiList != null && tajgswkeiTgkeiList.size() < 2))
			{
				// 連携されたバリューコードに紐づくサービス契約と
				// 連携された申込書番号に紐づくサービス契約が一致しない場合、エラー
				commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「バリューコードと申込書番号の相関チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E10);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
				return false;
			}
			aplyTajgsWribKeiMap.putAll(tajgsWribKeiMap);
		}
		else
		{
			// OM-2014-0003197 2014/10/02 ADD START
			// ネット、電話のサービス契約番号を格納
			String svcKeiNoList[] = {
					(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO),
					(String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)
			};
			for (String svcKeiNo : svcKeiNoList)
			{
			// OM-2014-0003197 2014/10/02 ADD END
				// サービス契約に紐付く他事業者割引契約を取得
				// OM-2014-0003197 2014/10/02 MOD START
				// ネット、電話それぞれのサービス契約番号でチェックを行う。
//				ArrayList<HashMap<String, Object>> tajgsWribKeiBySvcKeiNoList = selectTajgsWribKeiBySvcKeiNo((String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				ArrayList<HashMap<String, Object>> tajgsWribKeiBySvcKeiNoList = selectTajgsWribKeiBySvcKeiNo(svcKeiNo);
				// OM-2014-0003197 2014/10/02 MOD END
				if (tajgsWribKeiBySvcKeiNoList != null && tajgsWribKeiBySvcKeiNoList.size() > 0)
				{
					HashMap<String, Object> tajgsWribKeiBySvcKeiNoMap = tajgsWribKeiBySvcKeiNoList.get(0);
	
					// 締結済or解約済の場合
					if (isValidYmd((String)tajgsWribKeiBySvcKeiNoMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
					{
						if (!isValidYmd((String)tajgsWribKeiBySvcKeiNoMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD)))
						{
							// 締結済の場合エラー
							commonItem.getLogPrint().printDebugLog("(申込)照合チェックエラー（登録）「スマートバリュー締結済チェック２」");
							// エラーコード設定
							workMap.put(ERR_CD, ERR_CD_E10);
							workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
							return false;
	
						}
						else
						{
							// 解約済の場合は、再申込のため更新ではなく新規登録する
						}
					}
					// 仮登録の場合
					else
					{
						// 連携されたバリューコードとは別のバリューコードで仮登録中の場合、更新処理を行う
						aplyTajgsWribKeiMap.putAll(tajgsWribKeiBySvcKeiNoMap);
					}
				}
				else
				{
					// 新規登録する
				}
			// OM-2014-0003197 2014/10/02 ADD START
			}
			// OM-2014-0003197 2014/10/02 ADD END
		}
		
		// ----------------------------------------------------
		// チェックOK
		// ----------------------------------------------------
		// サービス契約番号（電話）
		workMap.put(SVC_KEI_NO_TEL, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		
		// 他事業者割引契約番号
		workMap.put(TAJGS_WRIB_KEI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO));
		
		// 他事業者割引契約更新年月日時分秒
		workMap.put(TAJGS_WRIB_KEI_UPD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.UPD_DTM));
		
		// ＫＤＤＩ事業者契約管理番号
		workMap.put(KDDI_JGS_KEI_KANRI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO));
		
		// 世代登録年月日時分秒（他事業者割引契約）
		workMap.put(TAJGS_WRIB_KEI_GENE_ADD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM));
		
		// コース名称コード
		workMap.put(COURSE_NM_CD, getCourseNmCd(
				(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PRC_GRP_CD)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PCRS_CD)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PPLAN_CD)));
		
		// ネットサービス申込年月日
		workMap.put(NET_SVC_MSKM_YMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
		
		// ネットサービス課金開始年月日
		workMap.put(NET_SVC_CHRG_STAYMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
		
		// 電話サービス１申込年月日
		workMap.put(TEL1_SVC_MSKM_YMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
		
		// 電話サービス１課金開始年月日
		workMap.put(TEL1_SVC_CHRG_STAYMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
		
		return true;
	}

	/**
	 * 住所変更後申込書番号取得処理
	 * 
	 * @param mskmshoNo 連携された申込書番号（または、申込書明細番号）
	 * @param isShogoMskmshoDtlNo true:申込書明細番号で照合 false:申込書番号で照合
	 * @return 申込書番号、申込書明細番号
	 * @throws Exception
	 */
	private HashMap<String, Object> getAddChgChuMskmshoNo(String mskmshoNo) throws Exception
	{
		HashMap<String, Object> addChgChuMskmshoNo = new HashMap<String, Object>();
		ArrayList<HashMap<String, Object>> result = new ArrayList<HashMap<String, Object>>();
		
		result = selectAddCngChuMskmshoNo(mskmshoNo);
		
		if(result != null && result.size() > 0)
		{
			addChgChuMskmshoNo = result.get(0);
		}
		if(addChgChuMskmshoNo.isEmpty())
		{
			result = selectAddCngChuMskmshoDtlNo(mskmshoNo);
			
			if(result != null && result.size() > 0)
			{
				addChgChuMskmshoNo = result.get(0);
			}
			if(!addChgChuMskmshoNo.isEmpty())
			{
				if(mskmshoNo.equals(addChgChuMskmshoNo.get(JBSbatKK_T_MSKM_DTL.MSKMSHO_DTL_NO)))
				{
					// 取得した申込書明細番号が、連携されていた申込書明細番号と一致する場合、
					// 住所変更先の申込書明細番号が連携されているため、空のHashMapを返す。
					return new HashMap<String,Object>();
				}
				else
				{
					return addChgChuMskmshoNo;
				}
			}
			else
			{
				// 取得できた申込書番号、申込書明細番号がないため、
				return new HashMap<String,Object>();
			}
		}
		else
		{
			if(mskmshoNo.equals(addChgChuMskmshoNo.get(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO)))
			{
				// 取得した申込書番号が、連携されていた申込書番号と一致する場合、
				// 住所変更先の申込書番号が連携されているため、空のHashMapを返す。
				return new HashMap<String,Object>();
			}
			else
			{
				return addChgChuMskmshoNo;
			}
		}
	}

	/**
	 * 登録チェック(割引料金グループ番号)処理
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @return true:チェックエラーなし、false:チェックエラーあり
	 * @throws Exception
	 */
	private boolean chkAddValcd(HashMap<String, Object> workMap) throws Exception
	{

		// 相関ルールOUT項目
		HashMap<String, Object> ruleResult = new HashMap<String, Object>();
		String aplyKh = ""; // 相関ルールOUT項目の適用可否
		String aplySvcKei = ""; // 相関ルールOUT項目の適用サービス契約
		String errCd = ""; // 相関ルールOUT項目のエラーコード
		String kddiErrCd = ""; // 相関ルールOUT項目のKDDIエラーコード
		
		// スマートバリュー適用条件を満たすネット契約の情報
		HashMap<String, Object> aplySvcKeiNetMap = new HashMap<String, Object>();
		// スマートバリュー適用条件を満たす電話契約の情報
		HashMap<String, Object> aplySvcKeiTelMap = new HashMap<String, Object>();
		// 仮登録されている他事業者割引契約の情報
		HashMap<String, Object> aplyTajgsWribKeiMap = new HashMap<String, Object>();
		
		// ----------------------------------------------------
		// 契約データ存在チェック
		// ----------------------------------------------------
		// サービス契約情報リスト
		ArrayList<HashMap<String, Object>> svcKeiList = new ArrayList<HashMap<String, Object>>();

		// 割引料金引継ぎ種別 ＝割引料金グループ番号の場合
		if (WRIBPRC_HKTGI_SBT_VAL_CD.equals(workMap.get(WRIBPRC_HKTGI_SBT)))
		{
			// KDDIバリューコード(割引料金グループコード)をもとにサービス契約情報を取得
			svcKeiList = selectSvcKeiByKddiValCd((String)workMap.get(WRIBPRC_GRP_CD));
			// 取得できなかった場合
			if (svcKeiList == null || svcKeiList.size() == 0)
			{
				commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「割引料金グループ番号でサービス契約情報が取得できませんでした」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E03);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_205);
				return false;
			}
		}
		
		// ----------------------------------------------------
		// eo光ネット契約チェック
		// ----------------------------------------------------
		for (HashMap<String, Object> svcKeiMap : svcKeiList)
		{
			// スマートバリュー適用条件を満たすネット契約か判定
			ruleResult = executeRULE0086001(svcKeiMap);
			
			aplyKh = (String)ruleResult.get("APLY_KH");
			aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
			errCd = (String)ruleResult.get("ERR_CD");
			kddiErrCd = (String)ruleResult.get("KDDI_ERR_CD");
			
			if (APLY_KH_OK.equals(aplyKh))
			{
				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
				{
					// 適用条件を満たす、ネット契約が存在した場合
					
					// サービス契約番号（ネット）は、以降のチェックでNGとなった場合でも
					// サービス呼出に必要になるため、この時点で設定
					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
					
					// DBから取得した項目を退避
					aplySvcKeiNetMap.putAll(svcKeiMap);
				}
				else if (APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
				{
					// 適用条件を満たす、電話契約が存在した場合、
					// DBから取得した項目を退避
					aplySvcKeiTelMap.putAll(svcKeiMap);
				}
			}
			else
			{
				// ネットで対象外サービス以外のエラーの場合、その時点でエラーとする
				if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
				{
					// サービス契約番号（ネット）
					workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
					
					if (!ERR_CD_E04.equals(errCd))
					{
						commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「相関ルールによるネットの照合チェックエラー」");
						// エラーコード設定
						workMap.put(ERR_CD, errCd);
						workMap.put(KDDI_ERR_CD, kddiErrCd);
						return false;
					}
				}
			}
		}
		
		// ----------------------------------------------------
		// eo光電話契約チェック
		// ----------------------------------------------------
		// スマートバリュー適用条件を満たすネット契約が存在する場合
		if (!aplySvcKeiNetMap.isEmpty())
		{
			// 適用条件を満たす電話契約が存在しない場合
			if (aplySvcKeiTelMap.isEmpty())
			{
				commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「ＮＥＴのみ契約」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E06);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
		}
		// スマートバリュー適用条件を満たすeo光ネット契約が存在しない場合
		else
		{
			// スマートバリュー適用条件を満たすeo光電話が存在する場合
			// ※ eo光ネット契約チェック時点の電話のサービス契約番号で判定
			if (!aplySvcKeiTelMap.isEmpty())
			{
				commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「電話のみ」");
				
				// サービス契約番号（ネット）※電話のサービス契約番号だが、KDDI割引契約異動通知に出力するため、ネットの項目に設定
				workMap.put(SVC_KEI_NO_NET, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E05);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
			else
			{
				commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「対象外サービス」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E04);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_207);
				return false;
			}
		}

		// ----------------------------------------------------
		// スマートバリュー締結済チェック
		// ----------------------------------------------------
		// バリューコードをもとに他事業者割引契約取得
		ArrayList<HashMap<String, Object>> tajgsWribKeiList = new ArrayList<HashMap<String, Object>>();
		tajgsWribKeiList = selectTajgsWribKeiByValCd((String)workMap.get(WRIBPRC_GRP_CD));
		if (tajgsWribKeiList != null && tajgsWribKeiList.size() > 0)
		{
			HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
			if (isValidYmd((String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
			{
				// 他事業者割引契約締結年月日が設定されている場合、エラー
				commonItem.getLogPrint().printDebugLog("(バリュー)照合チェックエラー（登録）「スマートバリュー締結済チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E10);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_209);
				return false;
			}

			aplyTajgsWribKeiMap.putAll(tajgsWribKeiMap);
		}
		
		// ----------------------------------------------------
		// チェックOK
		// ----------------------------------------------------
		// サービス契約番号（電話）
		workMap.put(SVC_KEI_NO_TEL, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
		
		// 他事業者割引契約番号
		workMap.put(TAJGS_WRIB_KEI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO));
		
		// 他事業者割引契約更新年月日時分秒
		workMap.put(TAJGS_WRIB_KEI_UPD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.UPD_DTM));
		
		// ＫＤＤＩ事業者契約管理番号
		workMap.put(KDDI_JGS_KEI_KANRI_NO, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO));
		
		// 世代登録年月日時分秒（他事業者割引契約）
		workMap.put(TAJGS_WRIB_KEI_GENE_ADD_DTM, (String)aplyTajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM));
		
		// コース名称コード
		workMap.put(COURSE_NM_CD, getCourseNmCd(
				(String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PRC_GRP_CD)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PCRS_CD)
				, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.PPLAN_CD)));
		
		// ネットサービス申込年月日
		workMap.put(NET_SVC_MSKM_YMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
		
		// ネットサービス課金開始年月日
		workMap.put(NET_SVC_CHRG_STAYMD, (String)aplySvcKeiNetMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
		
		// 電話サービス１申込年月日
		workMap.put(TEL1_SVC_MSKM_YMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
		
		// 電話サービス１課金開始年月日
		workMap.put(TEL1_SVC_CHRG_STAYMD, (String)aplySvcKeiTelMap.get(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
		
		return true;
	}
// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/02/19 add End   ▲▲▲▲▲▲▲▲

	/**
	 * 解約チェック処理
	 * 
	 * @param workMap サービス実行に必要な情報を格納するマップ
	 * @return true:チェックエラーなし、false:チェックエラーあり
	 * @throws Exception
	 */
	private boolean chkDsl(HashMap<String, Object> workMap) throws Exception
	{
		String tajgsWribKeiNo = ""; 		// 他事業者割引契約番号
		String tajgsWribKeiUpdDtm = "";		// 更新年月日時分秒
		String tajgsWribKeiGeneAddDtm = "";	// 世代登録年月日時分秒
		String kddiJgsKeiKanriNo = "";		// KDDI事業者契約管理番号
		// ----------------------------------------------------
		// 契約データ存在チェック
		// ----------------------------------------------------
		// サービス契約情報リスト
		ArrayList<HashMap<String, Object>> svcKeiList = new ArrayList<HashMap<String, Object>>();

		// KDDIバリューコード(割引料金グループコード)をもとにサービス契約情報を取得
		String kddiValcd = (String)workMap.get(WRIBPRC_GRP_CD);
		svcKeiList = selectSvcKeiByKddiValCd(kddiValcd.trim());
		
		// 取得できなかった場合
		if (svcKeiList == null || svcKeiList.size() == 0)
		{
			commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「割引料金グループ番号でサービス契約情報が取得できませんでした」");
			// エラーコード設定
			workMap.put(ERR_CD, ERR_CD_E03);
			workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_205);
			return false;
		}

		for (HashMap<String, Object> svcKeiMap : svcKeiList)
		{
			// ネット契約か判定
			HashMap<String, Object> ruleResult = executeRULE0086001(svcKeiMap);
			String aplySvcKei = (String)ruleResult.get("APLY_SVC_KEI");
			if (APLY_SVC_KEI_EOHNT.equals(aplySvcKei))
			{
				workMap.put(SYSID, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SYSID));
				workMap.put(SVC_KEI_NO_NET, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//				break;
			}
			else if (APLY_SVC_KEI_EOHTL.equals(aplySvcKei))
			{
				workMap.put(SVC_KEI_NO_TEL, (String)svcKeiMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
//				break;
			}
			
		}
		if(isNullSpace((String)workMap.get(SVC_KEI_NO_NET)) || isNullSpace((String)workMap.get(SVC_KEI_NO_TEL)))
		{
			commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「割引料金グループ番号でサービス契約情報が取得できませんでした（データ矛盾）」");
			// エラーコード設定
			workMap.put(ERR_CD, ERR_CD_E03);
			workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_205);
			return false;
		}
		
		// ----------------------------------------------------
		// スマートバリュー締結済チェック
		// スマートバリュー未解約チェック
		// 割引管理情報存在チェック
		// ----------------------------------------------------
		// バリューコードをもとに他事業者割引契約取得
		ArrayList<HashMap<String, Object>> tajgsWribKeiList = new ArrayList<HashMap<String, Object>>();
		tajgsWribKeiList = selectTajgsWribKeiByValCd((String)workMap.get(WRIBPRC_GRP_CD));
		if (tajgsWribKeiList != null && tajgsWribKeiList.size() > 0)
		{
			HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
			if (!isValidYmd((String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD)))
			{
				// 他事業者割引契約締結年月日が設定されていない場合、エラー
				commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「スマートバリュー締結済チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E13);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_208);
				return false;
			}

			if (isValidYmd((String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD)))
			{
				// 他事業者割引契約解約年月日が設定されている場合、エラー
				commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「スマートバリュー未解約チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E14);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_208);
				return false;
			}
			
			// ANK-1272-00-00 2013/01/17 ADD START
			// （カレント）他事業者割引契約のKDDI事業者契約管理番号
			kddiJgsKeiKanriNo = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO);
			
			// 処理レコード.事業者契約管理番号を取得し、左から１０桁を取得。
			String inJgsKeiKanriNo = (String)workMap.get(JIGYOSHA_KEI_KNRI_NO);
			String workJgsKeiKanriNo = inJgsKeiKanriNo.substring(0, 10);
			
			if(!workJgsKeiKanriNo.equals(kddiJgsKeiKanriNo))
			{
				// 他事業者割引契約.KDDI事業者契約管理番号 ≠ 処理レコード.事業者契約管理番号であった場合、エラー
				commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「割引管理情報存在チェック」");
				// エラーコード設定
				workMap.put(ERR_CD, ERR_CD_E15);
				workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_999);
				return false;
			}
			// ANK-1272-00-00 2013/01/17 ADD END
			
			// 他事業者割引契約番号
			tajgsWribKeiNo = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO);
			// 更新年月日時分秒
			tajgsWribKeiUpdDtm = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.UPD_DTM);
			// 世代登録年月日時分秒（他事業者割引契約）
			tajgsWribKeiGeneAddDtm = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM);
			// ANK-1272-00-00 2013/01/17 DEL START
			// KDDI事業者契約管理番号
			// kddiJgsKeiKanriNo = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO);
			// ANK-1272-00-00 2013/01/17 DEL END
			
		}
		else
		{
			// 取得できなかった場合
			// 他事業者割引契約が取得できない場合、エラー
			commonItem.getLogPrint().printDebugLog("照合チェックエラー（解約）「他事業者割引契約が存在しない」");
			// エラーコード設定
			workMap.put(ERR_CD, ERR_CD_E13);
			workMap.put(KDDI_ERR_CD, KDDI_ERR_CD_208);
			return false;
		}
		
		// ----------------------------------------------------
		// チェックOK
		// ----------------------------------------------------
		workMap.put(TAJGS_WRIB_KEI_NO, tajgsWribKeiNo);
		workMap.put(TAJGS_WRIB_KEI_UPD_DTM, tajgsWribKeiUpdDtm);
		workMap.put(KDDI_JGS_KEI_KANRI_NO, kddiJgsKeiKanriNo);
		workMap.put(TAJGS_WRIB_KEI_GENE_ADD_DTM, tajgsWribKeiGeneAddDtm);
		
		return true;
	}

	/**
	 * 申込書番号(割引料金引継番号)をもとにサービス契約情報を取得
	 * 
	 * @param mskmshoNo 申込書番号
	 * @return サービス契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectSvcKeiByMskmshoNo(String mskmshoNo) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("申込書番号(割引料金引継番号)をもとにサービス契約情報を取得"+ " 申込書番号[" + mskmshoNo +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();
		
// v54.0.0 OM-2021-0000643 2021/08/19 ADD START
		//申込書番号がnullまたは空白でないとき、呼び出し処理を実行する。
		if (!isNullSpace(mskmshoNo))
		{
// v54.0.0 OM-2021-0000643 2021/08/19 ADD END

			String[] param =
			{
					super.opeDate, super.opeDate, super.opeDate, super.opeDate, mskmshoNo.trim(), super.opeDate
			};
			executeKK_T_SVC_KEI_KK_SELECT_203(param);
			JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();
	
			while (dbInterface != null)
			{
				resultList.add((HashMap<String, Object>)dbInterface.getMap());
				dbInterface = db_KK_T_SVC_KEI.selectNext();
			}
// v54.0.0 OM-2021-0000643 2021/08/19 ADD START
		}
// v54.0.0 OM-2021-0000643 2021/08/19 ADD END

		return resultList;
	}

	/**
	 * 申込書明細番号(割引料金引継番号)をもとにサービス契約情報を取得
	 * 
	 * @param mskmshoDtlNo 申込書明細番号
	 * @return サービス契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectSvcKeiByMskmshoDtlNo(String mskmshoDtlNo) throws Exception
	{
		
		commonItem.getLogPrint().printDebugLog("申込書明細番号(割引料金引継番号)をもとにサービス契約情報を取得"+ " 申込書明細番号[" + mskmshoDtlNo +"]");
		
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();
		
// v54.0.0 OM-2021-0000643 2021/08/19 ADD START
		//申込書番号がnullまたは空白でないとき、呼び出し処理を実行する。
		if (!isNullSpace(mskmshoDtlNo))
		{
// v54.0.0 OM-2021-0000643 2021/08/19 ADD END

			String[] param =
			{
					// IT1-2013-0000205 2013-02-10 EDIT_START 申込書明細番号trim追加
					super.opeDate, super.opeDate, super.opeDate, super.opeDate, mskmshoDtlNo.trim(), super.opeDate
					// IT1-2013-0000205 2013-02-10 EDIT_END
			};
			executeKK_T_SVC_KEI_KK_SELECT_204(param);
			JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();
	
			while (dbInterface != null)
			{
				resultList.add((HashMap<String, Object>)dbInterface.getMap());
				dbInterface = db_KK_T_SVC_KEI.selectNext();
			}
// v54.0.0 OM-2021-0000643 2021/08/19 ADD START
		}
// v54.0.0 OM-2021-0000643 2021/08/19 ADD END

		return resultList;
	}

// ▼▼▼▼▼▼▼▼ ANK-1844-00-00 2014/03/07 add Start ▼▼▼▼▼▼▼▼
	/**
	 * 申込書番号をもとに住所変更後申込書番号を取得
	 * 
	 * @param mskmshoNo 申込書番号
	 * @return 申込書番号、申込書明細番号
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectAddCngChuMskmshoNo(String mskmshoNo) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("申込書番号をもとに住所変更後申込書番号を取得"+ " 申込書番号[" + mskmshoNo +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				mskmshoNo.trim(), super.opeDate
		};
		executeKK_T_SVC_KEI_KK_SELECT_287(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_SVC_KEI.selectNext();
		}

		return resultList;
	}

	/**
	 * 申込書明細番号をもとに住所変更後申込書明細番号を取得
	 * 
	 * @param mskmshoDtlNo 申込書明細番号
	 * @return 申込書番号、申込書明細番号
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectAddCngChuMskmshoDtlNo(String mskmshoDtlNo) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("申込書明細番号をもとに住所変更後申込書明細番号を取得"+ " 申込書明細番号[" + mskmshoDtlNo +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				mskmshoDtlNo.trim(), super.opeDate
		};
		executeKK_T_SVC_KEI_KK_SELECT_289(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_SVC_KEI.selectNext();
		}

		return resultList;
	}
// ▲▲▲▲▲▲▲▲ ANK-1844-00-00 2014/03/07 add End   ▲▲▲▲▲▲▲▲

	/**
	 * KDDIバリューコード(割引料金グループコード)をもとにサービス契約情報を取得<br>
	 * 
	 * @param kddiValCd KDDIバリューコード
	 * @return サービス契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectSvcKeiByKddiValCd(String kddiValCd) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("KDDIバリューコード(割引料金グループコード)をもとにサービス契約情報を取得"+ " KDDIバリューコード[" + kddiValCd +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				super.opeDate, super.opeDate, super.opeDate, super.opeDate, kddiValCd.trim(), 
				super.opeDate, super.opeDate, super.opeDate
		};
		executeKK_T_SVC_KEI_KK_SELECT_207(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_SVC_KEI.selectNext();
		}

		return resultList;
	}

	/**
	 * 同一SYSIDのサービス契約情報取得<br>
	 * 指定したSYSIDをもつサービス契約を取得する。（指定したサービス契約番号は除く）<br>
	 * 
	 * @param svcKeiNo
	 *            サービス契約番号
	 * @param sysId
	 *            SYSID
	 * @return サービス契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectSvcKeiBySysIdSvcKeiNo(String svcKeiNo, String sysId)
			throws Exception
	{
		commonItem.getLogPrint().printDebugLog("同一SYSIDのサービス契約情報取得"+ " サービス契約番号[" + svcKeiNo +"]"+ " SYSID[" + sysId +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				super.opeDate,
				super.opeDate,
				super.opeDate,
				super.opeDate,
				sysId,
				svcKeiNo, 
				super.opeDate,
		};

		executeKK_T_SVC_KEI_KK_SELECT_208(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_SVC_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_SVC_KEI.selectNext();
		}

		return resultList;
	}

	/**
	 * KDDIバリューコードをもとに他事業者割引契約の取得<br>
	 * 
	 * @param kddiValCd
	 *            KDDIバリューコード
	 * @return 他事業者割引契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectTajgsWribKeiByValCd(String kddiValCd) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("KDDIバリューコードをもとに他事業者割引契約の取得"+ " KDDIバリューコード[" + kddiValCd +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
			kddiValCd.trim()
		};

		executeKK_T_TAJGS_WRIB_KEI_KK_SELECT_001(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_TAJGS_WRIB_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_TAJGS_WRIB_KEI.selectNext();
		}

		return resultList;
	}

	/**
	 * 他事業者割引契約番号、サービス契約番号をもとに他事業者割引契約対象契約の取得<br>
	 * 
	 * @param tajgsWribKeiNo 他事業者割引契約番号
	 * @param svcKeiNoNet eo光ネットのサービス契約番号
	 * @param svcKeiNoTel eo光電話のサービス契約番号
	 * @return 他事業者割引契約対象契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectTajgswkeiTgkei(String tajgsWribKeiNo, String svcKeiNoNet, String svcKeiNoTel)
			throws Exception
	{
		commonItem.getLogPrint().printDebugLog("他事業者割引契約番号、サービス契約番号をもとに他事業者割引契約対象契約の取得"+ " 他事業者割引契約番号[" + tajgsWribKeiNo +"]"+ " サービス契約番号(ネット)[" + svcKeiNoNet +"]"+ " サービス契約番号(電話)[" + svcKeiNoTel +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				tajgsWribKeiNo, super.opeDate, super.opeDate, svcKeiNoNet, svcKeiNoTel
		};

		executeKK_T_TAJGSWKEI_TGKEI_KK_SELECT_003(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_TAJGSWKEI_TGKEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_TAJGSWKEI_TGKEI.selectNext();
		}

		return resultList;
	}
	// 20130528 スマートバリュー品向による問題R ADD START
	/**
	 * サービス契約番号をもとに他事業者割引契約の取得<br>
	 * 
	 * @param svcKeiNo サービス契約番号
	 * @return 他事業者割引契約情報
	 * @throws Exception
	 */
	private ArrayList<HashMap<String, Object>> selectTajgsWribKeiBySvcKeiNo(String svcKeiNo) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("サービス契約番号をもとに他事業者割引契約を取得"+ " サービス契約番号[" + svcKeiNo +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
			svcKeiNo, super.opeDate, super.opeDate
		};

		executeKK_T_TAJGS_WRIB_KEI_KK_SELECT_003(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_TAJGS_WRIB_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_TAJGS_WRIB_KEI.selectNext();
		}

		return resultList;
	}
	// 20130528 スマートバリュー品向による問題R ADD END

	/**
	 * 他事業者割引契約に紐付く他事業者割引契約対象契約を取得します。<br>
	 * 
	 * @param tajgsWribKeiNo 他事業者割引契約番号
	 * @return 他事業者割引契約対象契約情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<HashMap<String, Object>> selectTajgswkeiTgkeiByTajgsWribKeiNo(String tajgsWribKeiNo) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("他事業者割引契約に紐付く他事業者割引契約対象契約を取得"+ " 他事業者割引契約番号[" + tajgsWribKeiNo +"]");
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
			super.opeDate,
			super.opeDate,
			tajgsWribKeiNo,
			super.opeDate,
			super.opeDate,
			super.opeDate
		};

		executeKK_T_TAJGSWKEI_TGKEI_KK_SELECT_014(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_TAJGSWKEI_TGKEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_TAJGSWKEI_TGKEI.selectNext();
		}

		return resultList;
	}

	/**
	 * 旧ICSコード変換からコース名称コードを取得する
	 * @param svcKeiNo サービス契約番号
	 * @param prcGrpCd 料金グループコード
	 * @param pcrsCd 料金コースコード
	 * @param pplanCd 料金プランコード
	 * @return コース名称コード
	 * @throws Exception
	 */
	private String getCourseNmCd(String svcKeiNo, String prcGrpCd, String pcrsCd, String pplanCd) throws Exception
	{

		String couseNmCd = null;
		// 即割り判断用パラメータを設定
		String[] judgeParam =
		{
				super.opeDate, super.opeDate, svcKeiNo
		};

		// 即割り有無の判断
		executeKK_T_WRISVC_TG_KEI_KK_SELECT_026(judgeParam);

		// 即割り有無判断用結果取得
		JBSbatCommonDBInterface sokuwariCountMap = this.db_KK_T_WRISVC_TG_KEI.selectNext();

		String[] getParam =
		{
				prcGrpCd, pcrsCd, pplanCd, super.opeDate, super.opeDate
		};

		if ("0".equals(sokuwariCountMap.getString("COUNT")))
		{
			executeKK_M_OLD_ICS_CD_CHG_KK_SELECT_007(getParam);
		}
		else
		{
			executeKK_M_OLD_ICS_CD_CHG_KK_SELECT_006(getParam);
		}

		// 旧ＩＣＳコード変換用結果MAP
		JBSbatCommonDBInterface oldIcsCdChgMap = this.db_KK_M_OLD_ICS_CD_CHG.selectNext();

		// KT1-2013-0000498 旧ICSコード変換マスタでマンション関連のコードが変換できない 2013/04/17 START
		if (null != oldIcsCdChgMap)
		{
			String oldIcsKeiSvcCd = oldIcsCdChgMap.getString(JBSbatKK_M_OLD_ICS_CD_CHG.OLD_ICS_KEI_SVC_CD);
			String oldIcsPplanCd = oldIcsCdChgMap.getString(JBSbatKK_M_OLD_ICS_CD_CHG.OLD_ICS_PPLAN_CD);
			// 旧ICS料金プランコードが「変換不可」の場合
			if (OLD_ICS_PPLAN_CD_CHG_FAILED.equals(oldIcsPplanCd))
			{
				// スマートバリュー用コード名称コード取得部品からコース名称コードを取得
				couseNmCd = JKKGetSmtvlCourseNmCd.getCourseNmCd(super.commonItem, svcKeiNo, prcGrpCd, pcrsCd, pplanCd);

				// 部品からの戻り値が設定されなかった場合
				if (null == couseNmCd || couseNmCd.isEmpty())
				{
					// 旧ICS契約サービスコードと旧ICS料金プランコードを結合
					couseNmCd = oldIcsKeiSvcCd + oldIcsPplanCd;
				}
			}
			else
			{
				// 旧ICS契約サービスコードと旧ICS料金プランコードを結合
				couseNmCd = oldIcsKeiSvcCd + oldIcsPplanCd;
			}
		}
		// 旧ICSコード変換からデータが取得できない場合
		else
		{
			// 現在の料金プランコードを設定
			couseNmCd = pplanCd;
		}
		// KT1-2013-0000498 旧ICSコード変換マスタでマンション関連のコードが変換できない 2013/04/17 END

		return couseNmCd;
	}

	/**
	 * 課金開始日が運用日以前の場合、入力値を返却する。以外は空文字を返却する<br>
	 * @param svcChrgStaymd サービス課金開始年月日
	 * @return 課金開始日
	 */
	private String getSvcChrgStaymd(String svcChrgStaymd)
	{
		if (!isNullSpace(svcChrgStaymd) &&  svcChrgStaymd.compareTo(super.opeDate) <= 0)
		{
			// 課金開始日が運用日以前の場合、入力値を返却。以外は空文字を返却。
			return svcChrgStaymd;
		}
		return "";
	}

	/**
	 * スマートバリュー適用条件相関ルールを実行する<br>
	 * 
	 * @param inMap DBから取得したサービス契約情報
	 * @return HashMap<String, Object>
	 * @throws Exception
	 */
	private HashMap<String, Object> executeRULE0086001(HashMap<String, Object> inMap)
			throws Exception
	{
		HashMap<String, Object> result = new HashMap<String, Object>();
		
		// 相関ルールINマップ
		HashMap<String, Object> map = new HashMap<String, Object>();
		// 料金グループコード
		map.put("PRC_GRP_CD", (String)inMap.get(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
		// 料金コースコード
		map.put("PCRS_CD", (String)inMap.get(JBSbatKK_T_SVC_KEI.PCRS_CD));
		// 料金プランコード
		map.put("PPLAN_CD", (String)inMap.get(JBSbatKK_T_SVC_KEI.PPLAN_CD));
		// eo光ネット料金プラン体系識別コード
		map.put("PPLAN_TIKI_SKCD", (String)inMap.get(JBSbatKK_M_PPLAN.EOHNT_PPLAN_TIKI_SKCD));
		// サービス契約ステータス
		map.put("SVC_KEI_STAT", (String)inMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
		// 休止中断コード
		map.put("PAUSE_STP_CD", (String)inMap.get(JBSbatKK_T_SVC_KEI.PAUSE_STP_CD));
		// 照査解約完了コード
		map.put("SHOSA_DSL_FIN_CD", (String)inMap.get(JBSbatKK_T_SVC_KEI.SHOSA_DSL_FIN_CD));
		// IT1-2018-0000100 ADD START
		// 工事仮キャンセルフラグ
		map.put("KJ_KR_CNCL_FLG", getKjKrCnclFlg((String)inMap.get(JBSbatKK_T_SVC_KEI.SVC_KEI_NO)));
		// IT1-2018-0000100 ADD END

		JRuleXMLHandler xmlHandler = JCCBatCommon.createSokanRuleEngine("RULE0086001", JRuleXMLPattern.SINGLE_MODE_TYPE);
		ArrayList<ArrayList<HashMap<String, Object>>> outMsgList = JCCBatCommon.getCheckResultArray(xmlHandler, map);

		if (outMsgList != null && outMsgList.size() > 0 && outMsgList.get(0) != null && outMsgList.get(0).get(0) != null)
		{
			result = (HashMap<String, Object>)outMsgList.get(0).get(0);
		}
		
		return result;
	}

	/**
	 * サービス実行用マップの初期値設定
	 * 
	 * @param inRecordMap 入力ファイル情報
	 * @param workMap サービス実行用マップ
	 * @throws Exception 例外が発生した場合
	 */
	private void initWorkMap(JBSbatServiceInterfaceMap inRecordMap, HashMap<String, Object> workMap)
			throws Exception
	{
		// レコード区分
		workMap.put(REC_DIV, inRecordMap.getString(JBSbatKKIFE201.REC_DIV));

		// 処理区分
		workMap.put(TRAN_DIV, inRecordMap.getString(JBSbatKKIFE201.TRAN_DIV));

		// 事業者区分
		workMap.put(JIGYOSHA_DIV, inRecordMap.getString(JBSbatKKIFE201.JIGYOSHA_DIV));

		// 事業者コード
		workMap.put(JIGYOSHA_CD, inRecordMap.getString(JBSbatKKIFE201.JIGYOSHA_CD));

		// 事業者契約管理情報
		workMap.put(JIGYOSHA_KEI_KNRI_NO, inRecordMap.getString(JBSbatKKIFE201.JIGYOSHA_KEI_KNRI_NO));

		// クロスセル料金種別
		workMap.put(CROSS_SEL_PRC_SBT, inRecordMap.getString(JBSbatKKIFE201.CROSS_SEL_PRC_SBT));
		
		// 契約コード
		workMap.put(KEI_CD, inRecordMap.getString(JBSbatKKIFE201.KEI_CD));

		// 割引料金グループコード
		workMap.put(WRIBPRC_GRP_CD, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_GRP_CD));

		// 割引料金ステータス
		workMap.put(WRIBPRC_GRP_STAT, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_GRP_STAT));

		// 割引料金登録年月日
		workMap.put(WRIBPRC_ADD_YMD, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_ADD_YMD));

		// 割引料金更新年月日
		workMap.put(WRIBPRC_UPD_YMD, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_UPD_YMD));

		// 割引料金解除年月日
		workMap.put(WRIBPRC_RLS_YMD, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_RLS_YMD));

		// 割引料金引継ぎ番号
		workMap.put(WRIBPRC_HKTGI_NO, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_HKTGI_NO));

		// 割引料金引継ぎ種別
		workMap.put(WRIBPRC_HKTGI_SBT, inRecordMap.getString(JBSbatKKIFE201.WRIBPRC_HKTGI_SBT));
	
	}

	/**
	 * スマートバリュー申込情報取込処理
	 * 
	 * @param workMap 入力情報
	 * @throws Exception 
	 */
	private void executeMain(HashMap<String, Object> workMap) throws Exception
	{
		// チェックメイン処理
		chkMain(workMap);

		// エラーコードを取得
		String errCd = (String)workMap.get(ERR_CD);
		// 処理区分を取得
		String tranDiv = (String)workMap.get(TRAN_DIV);
		// 他事者割引契約番号を取得
		String tajgsWribKeiNo = (String)workMap.get(TAJGS_WRIB_KEI_NO);
		
		// エラーが存在しない場合
		if(isNullorBlank(errCd))
		{
			// 処理区分:登録
			if(PARAM_TRAN_DIV_ADD.equals(tranDiv))
			{
				// 他事業者割引契約番号が設定されていない場合
				if(isNullorBlank(tajgsWribKeiNo))
				{
					// スマートバリュー情報登録処理
					addSmtvlInf(workMap);
					// ANK-1918-00-00 2014/07/15 ADD START
					// 本登録の場合
					workMap.put(SMTVL_KOJI_SHOHENKO, SMTVL_KOJI_SHOHENKO_ON);
					// ANK-1918-00-00 2014/07/15 ADD END
				}
				// 他事業者割引契約番号が設定されている場合
				else
				{
					// スマートバリュー情報更新処理
					updSmtvlInf(workMap);
				}
			}
			// 処理区分:解約
			else if (PARAM_TRAN_DIV_DSL.equals(tranDiv))
			{
				// スマートバリュー情報解約処理
				dslSmtvlInf(workMap);
				// ANK-1918-00-00 2014/07/15 ADD START
				// 解約の場合
				workMap.put(SMTVL_KOJI_SHOHENKO, SMTVL_KOJI_SHOHENKO_ON);
				// ANK-1918-00-00 2014/07/15 ADD END
			}
		}
		// エラーが存在する場合
		else
		{
			// スマートバリュー情報エラー処理
			errSmtvlInf(workMap);
		}
	}

	/**
	 * スマートバリュー情報登録処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void addSmtvlInf(HashMap<String, Object> userData)
	throws Exception
	{
		// 申込・申込明細処理
		// 申込種別コード：スマートバリュー登録・変更申込 
		String mskmDtlNo = addMskmMskmDtl(userData, MSKM_SBT_SMTV_ADD_CHGE);
		// 登録した申込明細番号を設定
		userData.put(MSKM_DTL_NO, mskmDtlNo);

		// 他事業者割引契約対象契約適用終了処理　※ネット・電話共に適用終了する
		tendTajgswkeiTgkei(userData);

		// 他事業者割引契約登録締結処理
		String[] tajgsWribKeiInfo = addCncTajgswkei(userData);
		// 登録した他事業者割引契約番号、KDDI事業者契約管理番号を設定
		userData.put(TAJGS_WRIB_KEI_NO, tajgsWribKeiInfo[0]);
		userData.put(KDDI_JGS_KEI_KANRI_NO, tajgsWribKeiInfo[1]);

		// 進捗登録処理（ネット）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_NET), IDO_DIV_SMTV_ADD_CHGE, PRG_STAT_SMTV_ADD_CHGE);

		// 進捗登録処理（電話）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_TEL), IDO_DIV_SMTV_ADD_CHGE, PRG_STAT_SMTV_ADD_CHGE);
	}

	/**
	 * スマートバリュー情報更新処理
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void updSmtvlInf(HashMap<String, Object> userData)
	throws Exception
	{
		// 他事業者割引契約締結処理
		cncTajgswkei(userData);

		// 進捗登録処理（ネット）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_NET), IDO_DIV_SMTV_ADD_CHGE, PRG_STAT_SMTV_ADD_CHGE);

		// 進捗登録処理（電話）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_TEL), IDO_DIV_SMTV_ADD_CHGE, PRG_STAT_SMTV_ADD_CHGE);
	}

	/**
	 * スマートバリュー情報解約処理
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void dslSmtvlInf(HashMap<String, Object> userData)
	throws Exception
	{
		// 申込・申込明細処理
		// 申込種別コード：スマートバリュー解約申込
		String mskmDtlNo = addMskmMskmDtl(userData, MSKM_SBT_SMTV_ADD_DSL);
		// 登録した申込明細番号を設定
		userData.put(MSKM_DTL_NO, mskmDtlNo);

		// 他事業者割引契約解約処理
		dslTajgswkei(userData);

		// 進捗登録処理（ネット）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_NET), IDO_DIV_SMTV_DSL, PRG_STAT_SMTV_DSL);

		// 進捗登録処理（電話）
		addPrg(userData, (String)userData.get(SVC_KEI_NO_TEL), IDO_DIV_SMTV_DSL, PRG_STAT_SMTV_DSL);
	}

	/**
	 * スマートバリュー情報エラー処理
	 * 
	 * @param userData ユーザデータ
	 * @param work ワーク
	 * @throws Exception 例外が発生した場合
	 */
	private void errSmtvlInf(HashMap<String, Object> userData)
	throws Exception
	{
		String tajgsWribKeiNo = "";
		// 他事業者割引契約が紐付くサービス契約番号　※電話契約が設定されている場合もある
		String svcKeiNo = (String)userData.get(SVC_KEI_NO_NET);
		if (!isNullorBlank(svcKeiNo))
		{
			// サービス契約に紐付く他事業者割引契約を取得
			ArrayList<HashMap<String, Object>> tajgsWribKeiList = selectTajgsWribKeiBySvcKeiNo(svcKeiNo);
			if (null != tajgsWribKeiList && 0 < tajgsWribKeiList.size())
			{
				HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
				// 他事業者割引契約番号
				tajgsWribKeiNo = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO);
			}
		}

		// 他事業者割引契約番号を設定　※KDDI割引契約異動通知に登録する
		userData.put(TAJGS_WRIB_KEI_NO, tajgsWribKeiNo);
	}

	/**
	 * サービス開始異動情報登録処理
	 * 課金開始日が未来日に申込取込(登録)を行った場合、
	 * 課金開始日連携のトリガとなる異動情報は、サービス開始バッチでは作成されないため（サービス開始バッチが動いた後であるため）
	 * 本機能で擬似的に課金開始日連携用の異動情報を登録する。
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void addSmtvlIdoInfSvcStart(HashMap<String, Object> userData)
	throws Exception
	{
		// 対象契約のサービス契約番号
		ArrayList<String> svcKeiNoList = new ArrayList<String>();

		// ネットの課金開始日が運用日より未来の場合
		if (isExecuteSvcStartIdoInfAdd((String)userData.get(NET_SVC_CHRG_STAYMD)))
		{
			svcKeiNoList.add((String)userData.get(SVC_KEI_NO_NET));
		}

		// 電話の課金開始日が運用日より未来の場合
		if (isExecuteSvcStartIdoInfAdd((String)userData.get(TEL1_SVC_CHRG_STAYMD)))
		{
			svcKeiNoList.add((String)userData.get(SVC_KEI_NO_TEL));
		}

		for (String svcKeiNo : svcKeiNoList)
		{
			// KDDI割引契約異動通知番号の払い出し
			String kddiWkeiIdtNo = JCCOracleSeqUtil.getFormatedNextSeq(
					super.commonItem.getConnection(), SEQ_KDDI_WKEI_IDT_NO, "", 15);
			JBSbatCommonDBInterface kddiWkeiIdtMap = new JBSbatCommonDBInterface();
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NO, kddiWkeiIdtNo);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_NO, (String)userData.get(TAJGS_WRIB_KEI_NO));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_STAT_CD,
					JKKStrConst.CD01446_MI_TCHI);											// 「未通知」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_DTM, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_SBT_CD, "3");	// 「異動情報通知」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_TRAN_CD, "3");	// 「変更」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_RSLT_CD, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_ERR_CD, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.SVC_KEI_NO, svcKeiNo);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.IDO_DIV,
					JKKStrConst.CD00576_00001);												// 「新規契約」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.PRG_STAT,
					JKKStrConst.CD00647_SVCTK_CHU);											// 「サービス提供中」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.IDO_DTM, JKKBatCommon.getOpeDateTimeStamp(commonItem));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NAIYO, null);
			// KDDI割引契約異動通知登録
			this.db_KK_T_KDDI_WKEI_IDT.insertByPrimaryKeys(kddiWkeiIdtMap);
		}
	}

	/**
	 * サービス開始異動情報登録判定
	 * 
	 * @param svcChrgStaYmd サービス課金開始年月日
	 * @return 判定結果 true:登録要 false:登録不要
	 */
	private boolean isExecuteSvcStartIdoInfAdd(String svcChrgStaYmd)
	{
		if (isValidYmd(svcChrgStaYmd) && svcChrgStaYmd.compareTo(super.opeDate) > 0)
		{
			// 課金開始日が運用日より未来の場合
			return true;
		}
		return false;
	}

	/**
	 * 申込・申込明細登録処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @param mskmSbtCd 申込種別コード
	 * @return 申込明細番号
	 * @throws Exception 例外が発生した場合
	 */
	private String addMskmMskmDtl(HashMap<String, Object> userData, String mskmSbtCd)
	throws Exception
	{
		// システム年月日時分秒を取得
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();

		// 申込番号の払い出し
		String mskmNo = JCCOracleSeqUtil.getFormatedNextSeq(super.commonItem.getConnection(), SEQ_MSKM_NO, "", 12);
		// 申込用データマップ
		JBSbatCommonDBInterface mskmMap = new JBSbatCommonDBInterface();
		mskmMap.setValue(JBSbatKK_T_MSKM.MSKM_NO, mskmNo);								// 申込番号
		mskmMap.setValue(JBSbatKK_T_MSKM.GENE_ADD_DTM, sysDateTimeStamp);				// 世代登録年月日時分秒
		mskmMap.setValue(JBSbatKK_T_MSKM.MSKM_STAT, MSKM_STAT_130);						// 申込ステータス
		mskmMap.setValue(JBSbatKK_T_MSKM.SYSID, (String)userData.get(SYSID));			// ＳＹＳＩＤ
		mskmMap.setValue(JBSbatKK_T_MSKM.MSKM_SBT_CD, mskmSbtCd);						// 申込種別コード
		mskmMap.setValue(JBSbatKK_T_MSKM.MSKM_UK_DTM,
				JKKBatCommon.getOpeDateTimeStamp(commonItem));							// 申込受付年月日時分秒
		mskmMap.setValue(JBSbatKK_T_MSKM.MSKM_YMD, super.opeDate);						// 申込年月日
		mskmMap.setValue(JBSbatKK_T_MSKM.CONSMBSN_MSKM_STAT_SKBT_CD, CONS_SKBT_CD_04);	// コンシューマ営業用申込状態識別コード
		// 申込を挿入
		this.db_KK_T_MSKM.insertByPrimaryKeys(mskmMap);

		// 申込明細番号の払い出し
		String mskmDtlNo = JCCOracleSeqUtil.getFormatedNextSeq(
				super.commonItem.getConnection(), SEQ_MSKM_DTL_NO, "", 12);
		// 申込明細（受付済）用データマップ
		JBSbatCommonDBInterface mskmDtlMap = new JBSbatCommonDBInterface();
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_DTL_NO, mskmDtlNo);				// 申込明細番号
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.GENE_ADD_DTM, sysDateTimeStamp);		// 世代登録年月日時分秒
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_DTL_STAT,
				JKKStrConst.MSKM_DTL_STAT_UKETSUKEZUMI);								// 申込明細ステータス
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_NO, mskmNo);						// 申込番号
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_YMD, super.opeDate);				// 申込年月日
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.SYSID, (String)userData.get(SYSID));	// ＳＹＳＩＤ
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.OP_SVC_HKTGI_UM,
				JKKStrConst.CD_DIV_UM_NASHI);											// オプションサービス引継有無
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.WRIB_AUTO_APLY_TG_GAI_FLG,
				JKKStrConst.CD_DIV_UM_NASHI);											// 割引自動適用対象外フラグ
		// 申込明細（受付済）登録
		this.db_KK_T_MSKM_DTL.insertByPrimaryKeys(mskmDtlMap);

		// 申込明細（承認済）用データマップ
		sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.GENE_ADD_DTM, sysDateTimeStamp);		// 世代登録年月日時分秒
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_DTL_STAT,
				JKKStrConst.MSKM_DTL_STAT_KOUGYM_IRAIZUMI);								// 申込明細ステータス
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.MSKM_DTL_SHOSA_DTM, sysDateTimeStamp);	// 申込明細照査年月日時分秒 
		mskmDtlMap.setValue(JBSbatKK_T_MSKM_DTL.KZKWRK_REQYMD, super.opeDate);			// 後続業務依頼年月日
		// 申込明細（承認済）登録
		this.db_KK_T_MSKM_DTL.insertByPrimaryKeys(mskmDtlMap);

		return mskmDtlNo;
	}
	
	/**
	 * 他事業者割引契約対象契約適用終了処理<br>
	 * 
	 * サービス契約番号紐づく他事業者割引契約が既に解約されている場合、<br>
	 * その他事業者割引契約に紐づく他事業者割引契約対象契約に適用終了日を設定し紐付けを解除する。<br>
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void tendTajgswkeiTgkei(HashMap<String, Object> userData)
	throws Exception
	{
		// OM-2014-0003197 2014/10/02 ADD START
		// ネット、電話のサービス契約番号を格納
		String svcKeiNoList[] =
		{
			(String)userData.get(SVC_KEI_NO_NET),
			(String)userData.get(SVC_KEI_NO_TEL)
		};
		for(String svcKeiNo : svcKeiNoList)
		{
		// OM-2014-0003197 2014/10/02 ADD END
			// サービス契約に紐付く他事業者割引契約を取得
			// OM-2014-0003197 2014/10/02 MOD START
			// ネット、電話それぞれのサービス契約番号でチェックを行う。
//			ArrayList<HashMap<String, Object>> tajgsWribKeiList = selectTajgsWribKeiBySvcKeiNo((String)userData.get(SVC_KEI_NO_NET));
			ArrayList<HashMap<String, Object>> tajgsWribKeiList = selectTajgsWribKeiBySvcKeiNo(svcKeiNo);
			// OM-2014-0003197 2014/10/02 MOD END
			if (null != tajgsWribKeiList && 0 < tajgsWribKeiList.size())
			{
				HashMap<String, Object> tajgsWribKeiMap = tajgsWribKeiList.get(0);
				// 他事業者割引契約番号
				String tajgsWribKeiNo = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO);
				// 他事業者割引契約解約年月日
				String dslYmd = (String)tajgsWribKeiMap.get(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD);
	
				// 他事業者割引契約が解約されている場合
				if (isValidYmd(dslYmd))
				{
					// 他事業者割引契約に紐付く他事業者割引契約対象契約を取得
					ArrayList<HashMap<String, Object>> tajgswkeiTgkeiList = selectTajgswkeiTgkeiByTajgsWribKeiNo(tajgsWribKeiNo);
	
					if (null != tajgswkeiTgkeiList)
					{
						for (HashMap<String, Object> tajgswkeiTgkeiMap : tajgswkeiTgkeiList)
						{
							// 他事業者割引契約対象契約を適用終了する
							JBSbatCommonDBInterface insTajgswkeiTgkeiMap = new JBSbatCommonDBInterface();
	
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.GENE_ADD_DTM, JKKBatCommon.getSysDateTimeStamp());
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.SVC_KEI_NO,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.SVC_KEI_NO));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.DSL_TAJGS_TCH_YMD,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.DSL_TAJGS_TCH_YMD));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.PPCHG_TAJGS_TCH_YMD,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.PPCHG_TAJGS_TCH_YMD));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_TSTAYMD,
									(String)tajgswkeiTgkeiMap.get(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_TSTAYMD));
							insTajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_TENDYMD,
									JBSbatDateUtil.adjustDate(super.opeDate, -1));
							// 他事業者割引契約対象契約登録
							this.db_KK_T_TAJGSWKEI_TGKEI.insertByPrimaryKeys(insTajgswkeiTgkeiMap);
						}
					}
				}
			}
		// OM-2014-0003197 2014/10/02 ADD START
		}
		// OM-2014-0003197 2014/10/02 ADD END
	}

	/**
	 * 他事業者割引契約申込登録締結処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @return 他事業者割引契約番号、KDDI事業者契約管理番号
	 * @throws Exception 例外が発生した場合
	 */
	private String[] addCncTajgswkei(HashMap<String, Object> userData)
	throws Exception
	{
		// 他事業者割引契約番号の払い出し
		String tajgsWribKeiNo = JCCOracleSeqUtil.getFormatedNextSeq(
				super.commonItem.getConnection(), SEQ_TAJGS_WRIB_KEI_NO, "", 15);

		// KDDI事業者契約管理番号の払い出し
		String kddiJgsKeiKanriNo = JCCOracleSeqUtil.getFormatedNextSeq(
				super.commonItem.getConnection(), SEQ_KDDI_JGS_KEI_KANRI_NO, "KE", 7);
		// 接尾語にチェックデジットを付与する
		kddiJgsKeiKanriNo += getCheckDigit21(kddiJgsKeiKanriNo);

		// KDDIバリューコード
		String kddiValcd = ((String)userData.get(WRIBPRC_GRP_CD)).trim();

		JBSbatCommonDBInterface tajgsWribKeiMap = new JBSbatCommonDBInterface();
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO, tajgsWribKeiNo);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM, JKKBatCommon.getSysDateTimeStamp());
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_TK_JGS_CD, JKKStrConst.CD00255_AU);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.MSKM_DTL_NO, (String)userData.get(MSKM_DTL_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_VAL_CD, kddiValcd);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO, kddiJgsKeiKanriNo);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_MKM_UK_YMD, (String)userData.get(WRIBPRC_ADD_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNCL_YMD, YMD_SHKV);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD, (String)userData.get(WRIBPRC_ADD_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD, YMD_SHKV);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_TCH_YOKSI_UM, JKKStrConst.CD_DIV_UM_NASHI);
		// 他事業者割引契約登録
		this.db_KK_T_TAJGS_WRIB_KEI.insertByPrimaryKeys(tajgsWribKeiMap);

		// 対象契約のサービス契約番号
		String svcKeiNoList[] =
		{
			(String)userData.get(SVC_KEI_NO_NET),
			(String)userData.get(SVC_KEI_NO_TEL)
		};

		JBSbatCommonDBInterface tajgswkeiTgkeiMap = new JBSbatCommonDBInterface();
		for (String svcKeiNo : svcKeiNoList)
		{
			// 他事業者割引契約対象契約番号の払い出し
			String tajgswkeiTgkeiNo = JCCOracleSeqUtil.getFormatedNextSeq(
					super.commonItem.getConnection(), SEQ_TAJGSWKEI_TGKEI_NO, "", 15);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGS_WRIB_KEI_NO, tajgsWribKeiNo);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_NO, tajgswkeiTgkeiNo);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.GENE_ADD_DTM, JKKBatCommon.getSysDateTimeStamp());
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.SVC_KEI_NO, svcKeiNo);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.DSL_TAJGS_TCH_YMD, YMD_SHKV);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.PPCHG_TAJGS_TCH_YMD, YMD_SHKV);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_TSTAYMD, super.opeDate);
			tajgswkeiTgkeiMap.setValue(JBSbatKK_T_TAJGSWKEI_TGKEI.TAJGSWKEI_TGKEI_TENDYMD, YMD_SHKV);
			// 他事業者割引契約対象契約登録
			this.db_KK_T_TAJGSWKEI_TGKEI.insertByPrimaryKeys(tajgswkeiTgkeiMap);
		}

		return new String[]{tajgsWribKeiNo, kddiJgsKeiKanriNo};
	}

	/**
	 * 他事業者割引契約締結処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void cncTajgswkei(HashMap<String, Object> userData)
	throws Exception
	{
		// カレント（仮登録）の他事業者割引契約を取得
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO, (String)userData.get(TAJGS_WRIB_KEI_NO));
		whereMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM, (String)userData.get(TAJGS_WRIB_KEI_GENE_ADD_DTM));
		JBSbatCommonDBInterface curTajgsWribKei =  db_KK_T_TAJGS_WRIB_KEI.selectByPrimaryKeys(whereMap);

		// KDDIバリューコード
		String kddiValcd = ((String)userData.get(WRIBPRC_GRP_CD)).trim();

		JBSbatCommonDBInterface tajgsWribKeiMap = new JBSbatCommonDBInterface();
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM, JKKBatCommon.getSysDateTimeStamp());
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_TK_JGS_CD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_TK_JGS_CD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.MSKM_DTL_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.MSKM_DTL_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_VAL_CD, kddiValcd);
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_MKM_UK_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_MKM_UK_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNCL_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNCL_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD,
				(String)userData.get(WRIBPRC_ADD_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_TCH_YOKSI_UM,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_TCH_YOKSI_UM));
		// 他事業者割引契約登録
		this.db_KK_T_TAJGS_WRIB_KEI.insertByPrimaryKeys(tajgsWribKeiMap);
	}

	/**
	 * 他事業者割引契約解約処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @throws Exception 例外が発生した場合
	 */
	private void dslTajgswkei(HashMap<String, Object> userData)
	throws Exception
	{
		// カレントの他事業者割引契約を取得
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO, (String)userData.get(TAJGS_WRIB_KEI_NO));
		whereMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM, (String)userData.get(TAJGS_WRIB_KEI_GENE_ADD_DTM));
		JBSbatCommonDBInterface curTajgsWribKei =  db_KK_T_TAJGS_WRIB_KEI.selectByPrimaryKeys(whereMap);

		JBSbatCommonDBInterface tajgsWribKeiMap = new JBSbatCommonDBInterface();
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.GENE_ADD_DTM, JKKBatCommon.getSysDateTimeStamp());
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_TK_JGS_CD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_TK_JGS_CD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.MSKM_DTL_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.MSKM_DTL_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_VAL_CD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_VAL_CD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.KDDI_JGS_KEI_KANRI_NO));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_MKM_UK_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_MKM_UK_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNCL_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNCL_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_CNC_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_WRIB_KEI_DSL_YMD,
				(String)userData.get(WRIBPRC_RLS_YMD));
		tajgsWribKeiMap.setValue(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_TCH_YOKSI_UM,
				curTajgsWribKei.getString(JBSbatKK_T_TAJGS_WRIB_KEI.TAJGS_TCH_YOKSI_UM));
		// 他事業者割引契約登録
		this.db_KK_T_TAJGS_WRIB_KEI.insertByPrimaryKeys(tajgsWribKeiMap);
	}

	/**
	 * 進捗登録処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @param svcKeiNo サービス契約番号
	 * @param idoDiv 異動区分
	 * @param prgStat 進捗ステータス
	 * @throws Exception 例外が発生した場合
	 */
	private void addPrg(HashMap<String, Object> userData, String svcKeiNo, String idoDiv, String prgStat)
	throws Exception
	{
		// システム年月日時分秒を取得
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();

		// 進捗番号の払い出し
		String prgNo = JCCOracleSeqUtil.getFormatedNextSeq(super.commonItem.getConnection(), SEQ_PRG_NO, "", 12);

		// 進捗用マップ生成
		JBSbatCommonDBInterface prgMap = new JBSbatCommonDBInterface();
		prgMap.setValue(JBSbatKK_T_PRG.PRG_NO, prgNo);									// 進捗番号
		prgMap.setValue(JBSbatKK_T_PRG.MSKM_DTL_NO, (String)userData.get(MSKM_DTL_NO));	// 申込明細番号
		prgMap.setValue(JBSbatKK_T_PRG.SVC_KEI_NO, svcKeiNo);							// サービス契約番号
		prgMap.setValue(JBSbatKK_T_PRG.IDO_DIV, idoDiv);								// 異動区分
		prgMap.setValue(JBSbatKK_T_PRG.IDO_DTM, sysDateTimeStamp);						// 異動年月日時分秒
		prgMap.setValue(JBSbatKK_T_PRG.PRG_STAT, prgStat);								// 進捗ステータス
		prgMap.setValue(JBSbatKK_T_PRG.PRG_DTM, JKKBatCommon.getOpeDateTimeStamp(commonItem));	// 進捗年月日時分秒
		// 進捗登録
		this.db_KK_T_PRG.insertByPrimaryKeys(prgMap);

		// 異動理由番号の払い出し
		String idoRsnNo = JCCOracleSeqUtil.getFormatedNextSeq(super.commonItem.getConnection(), SEQ_IDO_RSN_NO, "", 12);

		// 異動理由用マップ生成
		JBSbatCommonDBInterface idoMap = new JBSbatCommonDBInterface();
		idoMap.setValue(JBSbatKK_T_IDO_RSN.IDO_DIV, idoDiv);							// 異動区分
		idoMap.setValue(JBSbatKK_T_IDO_RSN.IDO_DTM, sysDateTimeStamp);					// 異動年月日時分秒
		idoMap.setValue(JBSbatKK_T_IDO_RSN.IDO_RSN_CD, IDO_RSN_CD_OTHER);				// 異動理由コード
		idoMap.setValue(JBSbatKK_T_IDO_RSN.IDO_RSN_NO, idoRsnNo);						// 異動理由番号
		idoMap.setValue(JBSbatKK_T_IDO_RSN.SVC_KEI_NO, svcKeiNo);						// サービス契約番号
		// 異動理由登録
		this.db_KK_T_IDO_RSN.insertByPrimaryKeys(idoMap);
	}

	/**
	 * スマートバリュー異動情報登録処理<br>
	 * 
	 * @param userData ユーザデータ
	 * @param outMap 出力ファイル情報
	 * @param smtvlIdoDtlCd スマートバリュー異動詳細コード
	 * @return KDDI割引契約異動通知番号
	 * @throws Exception 例外が発生した場合
	 */
	private String addSmtvlIdoInf(HashMap<String, Object> userData, JBSbatServiceInterfaceMap outMap, String smtvlIdoDtlCd)
	throws Exception
	{
		JBSbatCommonDBInterface kddiWkeiIdtMap = new JBSbatCommonDBInterface();

		// KDDI割引契約異動通知番号の払い出し
		String kddiWkeiIdtNo = JCCOracleSeqUtil.getFormatedNextSeq(
				super.commonItem.getConnection(), SEQ_KDDI_WKEI_IDT_NO, "", 15);

		// 申込情報の場合
		if (JKKStrConst.CD01445_MSKM.equals(smtvlIdoDtlCd))
		{
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NO, kddiWkeiIdtNo);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_NO, (String)userData.get(TAJGS_WRIB_KEI_NO));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_STAT_CD, JKKStrConst.CD01446_TCHI_FUYO);	// 「通知不要」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_DTM, JKKBatCommon.getSysDateTimeStamp());
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_SBT_CD, "1");	// 「スマートバリュー照合依頼」
			// 処理区分が「登録」、または取込結果がエラーの場合
			if(PARAM_TRAN_DIV_ADD.equals((String)userData.get(TRAN_DIV)) || !isNullSpace((String)userData.get(ERR_CD)))
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_TRAN_CD, "1");	// 「登録」
			}
			else
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_TRAN_CD, "2");	// 「解約」
			}
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NAIYO, getKddiWkeiIdtNaiyo(userData, null));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.SVC_KEI_NO, (String)userData.get(SVC_KEI_NO_NET));
			// 取込結果が正常の場合
			if (isNullSpace((String)userData.get(ERR_CD)))
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_RSLT_CD, KDDI_WKEI_IDT_ERR_CD_NORMAL);	// 「正常終了」
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_ERR_CD, null);
			}
			// 取込結果がエラーの場合
			else
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_RSLT_CD, KDDI_WKEI_IDT_ERR_CD_ERR);	// 「エラー」
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_ERR_CD, (String)userData.get(ERR_CD));
			}
		}
		// 申込取込結果の場合
		else
		{
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NO, kddiWkeiIdtNo);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_NO, (String)userData.get(TAJGS_WRIB_KEI_NO));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_STAT_CD, JKKStrConst.CD01446_TCHI_STAY);	// 「通知待ち(ファイル作成済)」
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_DTM, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_SBT_CD, "2");	// 「スマートバリュー照合結果」
			// 処理区分が「登録」、または取込結果がエラーの場合
			if(PARAM_TRAN_DIV_ADD.equals((String)userData.get(TRAN_DIV)) || !isNullSpace((String)userData.get(ERR_CD)))
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_TRAN_CD, "1");	// 「登録」
			}
			else
			{
				kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.TAJGS_WRIB_KEI_TRAN_CD, "2");	// 「解約」
			}
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_RSLT_CD, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_ERR_CD, null);
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.SVC_KEI_NO, (String)userData.get(SVC_KEI_NO_NET));
			kddiWkeiIdtMap.setValue(JBSbatKK_T_KDDI_WKEI_IDT.KDDI_WKEI_IDT_NAIYO, getKddiWkeiIdtNaiyo(null, outMap));
		}
		// KDDI割引契約異動通知登録
		this.db_KK_T_KDDI_WKEI_IDT.insertByPrimaryKeys(kddiWkeiIdtMap);

		return kddiWkeiIdtNo;
	}

	/**
	 * KDDI割引契約異動通知内容の編集
	 * 
	 * @param userData 申込情報（申込取込結果の内容を返す場合はNULL）
	 * @param outputFileMap 申込取込結果（申込情報の内容を返す場合はNULL）
	 * @return 申込情報、または申込取込結果をカンマ区切りで編集した文字列
	 * @throws Exception 例外が発生した場合
	 */
	private String getKddiWkeiIdtNaiyo(HashMap<String, Object> userData, JBSbatServiceInterfaceMap outputFileMap)
	throws Exception
	{
		String kddiWkeiIdtNaiyo;
		// 申込情報の場合
		if (null != userData)
		{
			kddiWkeiIdtNaiyo = replaceNulltoBlank(userData.get(REC_DIV)) + ','
				+ replaceNulltoBlank(userData.get(TRAN_DIV)) + ','
				+ replaceNulltoBlank(userData.get(JIGYOSHA_DIV)) + ','
				+ replaceNulltoBlank(userData.get(JIGYOSHA_CD)) + ','
				+ replaceNulltoBlank(userData.get(JIGYOSHA_KEI_KNRI_NO)) + ','
				+ replaceNulltoBlank(userData.get(CROSS_SEL_PRC_SBT)) + ','
				+ replaceNulltoBlank(userData.get(KEI_CD)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_GRP_CD)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_GRP_STAT)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_ADD_YMD)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_UPD_YMD)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_RLS_YMD)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_HKTGI_NO)) + ','
				+ replaceNulltoBlank(userData.get(WRIBPRC_HKTGI_SBT));
		}
		// 申込取込結果の場合
		else
		{
			kddiWkeiIdtNaiyo = replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.REC_DIV)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.ERR_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TRAN_DIV)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.JIGYOSHA_DIV)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.JIGYOSHA_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.JIGYOSHA_KEI_KNRI_NO)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEI_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_SEI_KANJI)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_NM_KANJI)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_SEI_KANA)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_NM_KANA)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.CUST_DIV)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_BIRTHD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_PCD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_ADR)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_RRKS_TELNO1)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_RRKS_TELNO2)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEISHA_MLAD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.COURSE_NM_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KEI_INF_YOBI_KMK)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_KEI_UMU_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_STP_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_SBT)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_MSKM_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_CHRG_STAYMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_DSL_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_DLRE)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.NET_SVC_YOBI_KMK)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_KEI_UMU_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_STP_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_SBT)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TELNO1)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_MSKM_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_CHRG_STAYMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_DSL_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_DLRE)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL1_SVC_YOBI_KMK)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_KEI_UMU_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_STP_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_SBT)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TELNO2)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_MSKM_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_CHRG_STAYMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_DSL_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_DLRE)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TEL2_SVC_YOBI_KMK)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_KEI_UMU_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_STP_FLG)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_SBT)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV__SVC_MSKM_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_CHRG_STAYMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_DSL_YMD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_DLRE)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.TV_SVC_YOBI_KMK)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.WRIBPRC_GRP_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.ADD_RSLT_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.ADD_RSLT_NG_JIYU)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KDDI_TRKM_RSLT_CD)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.KDDI_TRKM_RSLT_NG_JIYU)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.CROSSEL_PRC_HKTGI_NO)) + ','
				+ replaceNulltoBlank(outputFileMap.getString(JBSbatKKIFM249.CROSSEL_PRC_HKTGI_SBT));
				// ※予備は出力しない（ICSからの仕様）
		}

		return kddiWkeiIdtNaiyo;
	}

	/**
	 * 出力ファイル情報の設定を行う<br>
	 * オール半角スペース、および右スペース埋めは、フレームワーク側で自動的に付与されるため、編集しない。<br>
	 * 但し、オール全角スペースは、フレームワーク側で自動的に付与されるため、編集する。<br>
	 * @param inMap 入力情報
	 * @param outMap 出力ファイル情報
	 * @throws Exception
	 */
	private void setOutputFileMap(HashMap<String, Object> inMap, JBSbatServiceInterfaceMap outMap) throws Exception
	{
	
		// 共通項目の設定
		// ＫＤＤＩ割引契約異動通知番号（ネット）
		outMap.setString(JBSbatKKIFM249.KDDI_WKEI_IDT_NO_NET, (String)inMap.get(KDDI_WKEI_IDT_NO_NET));
		// レコード区分
		outMap.setString(JBSbatKKIFM249.REC_DIV, REC_DIV_DATA);
		// 処理区分
		outMap.setString(JBSbatKKIFM249.TRAN_DIV, TRAN_DIV_FIXED_VALUE);
		// 事業者区分
		outMap.setString(JBSbatKKIFM249.JIGYOSHA_DIV, JIGYOSHA_DIV_FIXED_VALUE);
		// 事業者コード
		outMap.setString(JBSbatKKIFM249.JIGYOSHA_CD, JIGYOSHA_CD_FIXED_VALUE);
		// 契約者氏名漢字（姓）
		outMap.setString(JBSbatKKIFM249.KEISHA_SEI_KANJI,  JBSbatStringUtil.fillSpace("", 30, true));
		// 契約者氏名漢字（名）
		outMap.setString(JBSbatKKIFM249.KEISHA_NM_KANJI,  JBSbatStringUtil.fillSpace("", 30, true));
		// 契約者氏名カナ（姓）
		outMap.setString(JBSbatKKIFM249.KEISHA_SEI_KANA,  JBSbatStringUtil.fillSpace("", 30, true));
		// 契約者氏名カナ（名）
		outMap.setString(JBSbatKKIFM249.KEISHA_NM_KANA,  JBSbatStringUtil.fillSpace("", 30, true));
		// 契約者住所 
		outMap.setString(JBSbatKKIFM249.KEISHA_ADR, JBSbatStringUtil.fillSpace("", 160, true));
		// 割引料金グループコード
		outMap.setString(JBSbatKKIFM249.WRIBPRC_GRP_CD, (String)inMap.get(WRIBPRC_GRP_CD));
		// ANK-1174-00-00 2013/01/17 ADD START
		// クロスセル料金引継番号
		outMap.setString(JBSbatKKIFM249.CROSSEL_PRC_HKTGI_NO, (String)inMap.get(WRIBPRC_HKTGI_NO));
		// クロスセル料金引継種別
		outMap.setString(JBSbatKKIFM249.CROSSEL_PRC_HKTGI_SBT, (String)inMap.get(WRIBPRC_HKTGI_SBT));
		// ANK-1174-00-00 2013/01/17 ADD END
		
		// 取込結果が正常の場合
		if (isNullSpace((String)inMap.get(ERR_CD)))
		{
			// 事業者契約管理番号 
			outMap.setString(JBSbatKKIFM249.JIGYOSHA_KEI_KNRI_NO, (String)inMap.get(KDDI_JGS_KEI_KANRI_NO));
			// 登録結果コード
			outMap.setString(JBSbatKKIFM249.ADD_RSLT_CD, ADD_RSLT_CD_OK);

			String tranDiv = (String)inMap.get(TRAN_DIV);
			// 処理区分が登録の場合
			if (TRAN_DIV_ADD.equals(tranDiv))
			{
				// 20130522 スマートバリュー品向による問題N MOD START
//				// 連絡先メールアドレス
//				outMap.setString(JBSbatKKIFM249.KEISHA_MLAD, KEISHA_MLAD_FIXED_VALUE);
				// 契約者連絡先電話番号１
				outMap.setString(JBSbatKKIFM249.KEISHA_RRKS_TELNO1, TELNO_FIXED_VALUE);
				// 20130522 スマートバリュー品向による問題N MOD END
				// コース名称コード
				outMap.setString(JBSbatKKIFM249.COURSE_NM_CD, (String)inMap.get(COURSE_NM_CD));
				// ネットサービス契約有無フラグ
				outMap.setString(JBSbatKKIFM249.NET_SVC_KEI_UMU_FLG, KEI_UMU_FLG_ON);
				// ネットサービス停止フラグ
				outMap.setString(JBSbatKKIFM249.NET_SVC_STP_FLG, SVC_STP_FLG_OFF);
				// ネットサービス種別
				outMap.setString(JBSbatKKIFM249.NET_SVC_SBT, NET_SVC_SBT_FIXED_VALUE);
				// ネットサービス申込年月日
				outMap.setString(JBSbatKKIFM249.NET_SVC_MSKM_YMD, (String)inMap.get(NET_SVC_MSKM_YMD));
				// ネットサービス課金開始年月日
				// 20130522 スマートバリュー品向による問題@ MOD START
//				outMap.setString(JBSbatKKIFM249.NET_SVC_CHRG_STAYMD, (String)inMap.get(NET_SVC_CHRG_STAYMD));
				outMap.setString(JBSbatKKIFM249.NET_SVC_CHRG_STAYMD, getSvcChrgStaymd((String)inMap.get(NET_SVC_CHRG_STAYMD)));
				// 20130522 スマートバリュー品向による問題@ MOD END
				// 電話サービス１契約有無フラグ
				outMap.setString(JBSbatKKIFM249.TEL1_SVC_KEI_UMU_FLG, KEI_UMU_FLG_ON);
				// 電話サービス１停止フラグ
				outMap.setString(JBSbatKKIFM249.TEL1_SVC_STP_FLG, SVC_STP_FLG_OFF);
				// 電話サービス１種別
				outMap.setString(JBSbatKKIFM249.TEL1_SVC_SBT, TEL1_SVC_SBT_FIXED_VALUE);
				// 電話サービス１申込年月日
				outMap.setString(JBSbatKKIFM249.TEL1_SVC_MSKM_YMD, (String)inMap.get(TEL1_SVC_MSKM_YMD));
				// 電話サービス１課金開始年月日
				// 20130522 スマートバリュー品向による問題@ MOD START
//				outMap.setString(JBSbatKKIFM249.TEL1_SVC_CHRG_STAYMD, (String)inMap.get(TEL1_SVC_CHRG_STAYMD));
				outMap.setString(JBSbatKKIFM249.TEL1_SVC_CHRG_STAYMD, getSvcChrgStaymd((String)inMap.get(TEL1_SVC_CHRG_STAYMD)));
				// 20130522 スマートバリュー品向による問題@ MOD END
				// 電話サービス２契約有無フラグ
				outMap.setString(JBSbatKKIFM249.TEL2_SVC_KEI_UMU_FLG, KEI_UMU_FLG_OFF);
			}
			// 処理区分が解約の場合
			else
			{
				// なし
			}
		}
		// 取込結果がエラーの場合
		else
		{
			// 登録結果コード
			outMap.setString(JBSbatKKIFM249.ADD_RSLT_CD, ADD_RSLT_CD_NG);
			// 登録結果ＮＧ事由
			outMap.setString(JBSbatKKIFM249.ADD_RSLT_NG_JIYU, (String)inMap.get(KDDI_ERR_CD));
		}
	}

	/**
	 * <p>
	 * チェックデジット算出処理21。<br>
	 * </p>
	 * @param targetNo チェックデジット算出対象の番号
	 * @return 算出されたチェックデジット
	 * @see JKKejbNumberPartsBase#getCheckDigit21
	 */
	private String getCheckDigit21(String targetNo)
	{
		int total = 0;

		// 下位の桁から1桁ずつ処理を行う
		for (int i = 0; i < targetNo.length(); i++)
		{
			// 算出対象の番号に含まれる、英字・記号を数値に置換
			String strSub = String.valueOf(targetNo.charAt(i));

			if (MAPPING.containsKey(strSub))
			{
				strSub = MAPPING.get(strSub);
			}

			int one = Integer.valueOf(strSub);

			// 「1 * 10^偶数」の位の数値に、2の重みを付与する
			if ((targetNo.length() - i) % 2 == 1)
			{
				one = one * 2;
			}

			// 重みを掛けた数値の1の位と10の位をそれぞれ合計に加算する
			total = total + (one / 10);
			total = total + (one % 10);

		}

		// 合計値の1の位を10から減算した値の1の位をチェックデジットとして返却する
		total = 10 - (total % 10);

		return String.valueOf(total % 10);
	}

	/**
	 * 値がnullまたは空白かを判定する<br>
	 * @param arg
	 * @return 値がnullまたは空白の場合true
	 */
	private boolean isNullorBlank(String arg)
	{
		if (arg == null || "".equals(arg))
		{
			return true;
		}
		
		return false;
	}

	/**
	 * null又は半角スペースの場合、trueを返却する
	 * 
	 * @param str
	 *            検査対象文字列
	 * @return true:null、又は半角スペース／false:左記以外
	 */
	private boolean isNullSpace(String str)
	{
		if (str == null || "".equals(str.trim()))
		{
			return true;
		}
		return false;
	}

	/**
	 * NULLを空文字に置き換える<br>
	 * 
	 * @param obj null又は文字列
	 * @return 文字列
	 */
	private String replaceNulltoBlank(Object obj)
	{
		if (obj == null)
		{
			return "";
		}
		else
		{
			return obj.toString();
		}
	}

	/**
	 * 有効な年月日の場合、trueを返却する
	 * 
	 * @param str
	 *            検査対象文字列（年月日）
	 * @return true:有効な日付／false:左記以外
	 */
	private boolean isValidYmd(String str)
	{
		if (str == null || "".equals(str.trim()) || JKKBatConst.S_MAX_DATE.equals(str))
		{
			return false;
		}
		return true;
	}
	
	// ANK-1918-00-00 2014/07/15 ADD START
	/**
	 * 出力ファイル情報の設定を行う<br>
	 * オール半角スペース、および右スペース埋めは、フレームワーク側で自動的に付与されるため、編集しない。<br>
	 * 但し、オール全角スペースは、フレームワーク側で自動的に付与されるため、編集する。<br>
	 * @param inMap 入力情報
	 * @param outMap 出力ファイル情報
	 * @throws Exception
	 */
	private void setOutputFileKkifm603Map(HashMap<String, Object> inMap, JBSbatServiceInterfaceMap outMap) throws Exception
	{
		// サービス契約番号（ネット）
		outMap.setString(JBSbatKKIFM603.SVC_KEI_NO, (String)inMap.get(SVC_KEI_NO_NET));
		
		String tranDiv = (String)inMap.get(TRAN_DIV);
		// 処理区分が登録の場合
		if (TRAN_DIV_ADD.equals(tranDiv))
		{
			// スマートバリュー契約有無
			outMap.setString(JBSbatKKIFM603.SMTVL_KEI_UM, JKKStrConst.CD_DIV_UM_ARI);
		}
		// 処理区分が解約の場合
		else
		{
			// スマートバリュー契約有無
			outMap.setString(JBSbatKKIFM603.SMTVL_KEI_UM, JKKStrConst.CD_DIV_UM_NASHI);
		}
		// 申込明細番号
		outMap.setString(JBSbatKKIFM603.MSKM_DTL_NO, (String)inMap.get(MSKM_DTL_NO));
	}
	// ANK-1918-00-00 2014/07/15 ADD END
	
	// IT1-2018-0000100 ADD START
	/**
	 * 工事仮キャンセルフラグを取得します。
	 * <br>
	 * @param svcKeiNo サービス契約番号
	 * @return 工事仮キャンセルフラグ
	 * @throws Exception 例外が発生した場合
	 */
	private String getKjKrCnclFlg(String svcKeiNo) throws Exception
	{
		// 工事仮キャンセルフラグ
		String kjKrCnclFlg = "";

		// 工事案件を検索
		executeKU_T_KOJIAK_KK_SELECT_046(new String[]{super.opeDate, svcKeiNo});
		JBSbatCommonDBInterface kojiakMap = db_KU_T_KOJIAK.selectNext();
		if (kojiakMap != null)
		{
			kjKrCnclFlg = kojiakMap.getString(JBSbatKU_T_KOJIAK.KJ_KR_CNCL_FLG);
		}

		return kjKrCnclFlg;
	}
	// IT1-2018-0000100 ADD END
}
