/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKEoTelPackTgAdchgAdd
*	ソースファイル名	：JBSbatKKEoTelPackTgAdchgAdd.java
*	作成者				：富士通　
*	作成日				：2014年05月27日
*＜機能概要＞
*　ｅｏ光電話パック対象住所変更情報登録
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v9.00.00	2014/05/27   FJ)阮		新規作成
*
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM605;
import eo.common.util.JCCOracleSeqUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKEoTelPackTgAdchgAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(住所変更)*/
	private static final String D_TBL_NAME_KK_T_ADCHG = "KK_T_ADCHG";
	
	/** テーブル(住所変更明細)*/
	private static final String D_TBL_NAME_KK_T_ADCHG_DTL = "KK_T_ADCHG_DTL";
	
	/** テーブル(割引サービス対象契約)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_TG_KEI = "KK_T_WRISVC_TG_KEI";
	
	/** テーブル(住所変更申込一時保存)*/
	private static final String D_TBL_KK_T_ADCHM_TLN_TPPV = "KK_T_ADCHM_TLN_TPPV";
	
	/** テーブル(オプションサービス契約)*/
	private static final String D_TBL_KK_T_OP_SVC_KEI = "KK_T_OP_SVC_KEI";

	/** SQL定義キー(KK_SELECT_040)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_019 = "KK_SELECT_019";
	
	/** SQL定義キー(KK_SELECT_041)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_041 = "KK_SELECT_041";
	
	/** SQL定義キー(KK_SELECT_055)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_055 = "KK_SELECT_055";
	
	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_ADCHM_TLN_TPPV_KK_SELECT_001 = "KK_SELECT_001";
	
	/** SQL定義キー(KK_SELECT_107)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_110= "KK_SELECT_110";
	
	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;
	
	/** テーブルアクセスクラス(住所変更)*/
	private JBSbatSQLAccess db_KK_T_ADCHG = null;
	
	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;
	
	/** テーブルアクセスクラス(住所変更明細電話一時保存)*/
	private JBSbatSQLAccess db_KK_T_ADCHM_TLN_TPPV = null;
	
	/** テーブルアクセスクラス(オプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI = null;

	/** 電話番号 */
	public static final String TEL_NO = "TEL_NO";
	/** サービス契約番号 */
	public static final String SVC_KEI_NO = "SVC_KEI_NO";
	/** サービス契約内訳番号 */
	public static final String SVC_KEI_UCWK_NO = "SVC_KEI_UCWK_NO";
	/** 申込明細番号 */
	public static final String MSKM_DTL_NO = "MSKM_DTL_NO";
	/** パック指定 */
	public static final String PACK_STI = "PACK_STI";
	/** 請求契約番号 */
	public static final String SEIKY_KEI_NO = "SEIKY_KEI_NO";
	/** SYSID */
	public static final String SYSID = "SYSID";
	/** eo光電話セレクトオプションパック登録 */
	public static final String RSLT = "RSLT";
	/** 光電話セレクトパック登録年月日 */
	public static final String TEL_SELECT_OP_PACK_ADD_YMD = "TEL_SELECT_OP_PACK_ADD_YMD";
	/** エラー内容 */
	public static final String ERR_NAIYO = "ERR_NAIYO";
	
	/** 住所変更番号 */
	public static final String ADCHG_NO = "ADCHG_NO";
	
	/** 住所変更明細種別コード */
	public static final String ADCHG_DTL_SBT_CD = "ADCHG_DTL_SBT_CD";
	
	/** 割引サービス契約番号 */
	public static final String WRIB_SVC_KEI_NO = "WRIB_SVC_KEI_NO";
	
	/** 割引サービスコード */
	public static final String WRIB_SVC_CD = "WRIB_SVC_CD";
	
	/** 変更前識別番号 */
	public static final String CHBF_SKBT_NO = "CHBF_SKBT_NO";
	
	/** 変更前識別番号 */
	public static final String CHBF_SKAT_NO = "CHBF_SKAT_NO";
	
	/** シーケンス（住所変更明細）*/
	private static final String SEQ_ADCHG_DTL_NO = "SEQ_ADCHG_DTL_NO";
	
	/** オプションサービス契約番号 */
	private static final String OP_SVC_KEI_NO = "OP_SVC_KEI_NO";
	
	/** オプションサービスコード */
	private static final String OP_SVC_CD = "OP_SVC_CD";
	
	/** サブオプションサービス契約番号 */
	private static final String SBOP_SVC_KEI_NO = "SBOP_SVC_KEI_NO";
	
	/** 解約予約年月日 */
	private static final String DSL_APLY_YMD = "DSL_APLY_YMD";
	
	/** 契約中OP_1 */
	public static final String KEIYAKU_OP_1 = "KEIYAKU_OP_1";
	
	/** 契約中OP_2 */
	public static final String KEIYAKU_OP_2 = "KEIYAKU_OP_2";
	
	/** 契約中OP_3 */
	public static final String KEIYAKU_OP_3 = "KEIYAKU_OP_3";
	
	/** 契約中OP_4 */
	public static final String KEIYAKU_OP_4 = "KEIYAKU_OP_4";
	
	/** 契約中OP_5 */
	public static final String KEIYAKU_OP_5 = "KEIYAKU_OP_5";
	
	/** 契約中OP_6 */
	public static final String KEIYAKU_OP_6 = "KEIYAKU_OP_6";
	
	/** 契約中OP_7 */
	public static final String KEIYAKU_OP_7 = "KEIYAKU_OP_7";
	
	/** 解約予約中OP_1 */
	public static final String DSLAPLY_OP_1 = "DSLAPLY_OP_1";
	
	/** 解約予約中OP_2 */
	public static final String DSLAPLY_OP_2 = "DSLAPLY_OP_2";
	
	/** 解約予約中OP_3 */
	public static final String DSLAPLY_OP_3 = "DSLAPLY_OP_3";
	
	/** 解約予約中OP_4 */
	public static final String DSLAPLY_OP_4 = "DSLAPLY_OP_4";
	
	/** 解約予約中OP_5 */
	public static final String DSLAPLY_OP_5 = "DSLAPLY_OP_5";
	
	/** 解約予約中OP_6 */
	public static final String DSLAPLY_OP_6 = "DSLAPLY_OP_6";
	
	/** 解約予約中OP_7 */
	public static final String DSLAPLY_OP_7 = "DSLAPLY_OP_7";
	
	/** オプションパック */
	public static final String OP_PACK = "OP_PACK";
	
	// 住所変更一時保存マップ START
	// --------------------------------------------------------------------------------------------
		private static final String ADCHM_TPPV_NO  = "ADCHM_TPPV_NO";

		private static final String ADCHM_TLN_TPPV_NO  = "ADCHM_TLN_TPPV_NO";

		private static final String AD_SVC_KEI_UCWK_NO  = "SVC_KEI_UCWK_NO";

		private static final String DSL_UM  = "DSL_UM";

		private static final String BMP_KOJI_UM  = "BMP_KOJI_UM";

		private static final String BMP_DOJI_KOJI_KIBO_UM  = "BMP_DOJI_KOJI_KIBO_UM";

		private static final String BMP_KSH_KANA  = "BMP_KSH_KANA";

		private static final String BMP_KSH_NM = "BMP_KSH_NM";

		private static final String NTT_KEISHA_AD_CD = "NTT_KEISHA_AD_CD";

		private static final String NTT_KEISHA_PCD = "NTT_KEISHA_PCD";

		private static final String NTT_KEISHA_STATE_NM = "NTT_KEISHA_STATE_NM";

		private static final String NTT_KEISHA_CITY_NM = "NTT_KEISHA_CITY_NM";

		private static final String NTT_KEISHA_OAZTSU_NM = "NTT_KEISHA_OAZTSU_NM";

		private static final String NTT_KEISHA_AZCHO_NM = "NTT_KEISHA_AZCHO_NM";

		private static final String NTT_KEISHA_BNCHIGO = "NTT_KEISHA_BNCHIGO";

		private static final String NTT_KEISHA_ADRTTM = "NTT_KEISHA_ADRTTM";

		private static final String NTT_KEISHA_ADRRM = "NTT_KEISHA_ADRRM";

		private static final String NKYS_AD_MAN_INPUT_FLG = "NKYS_AD_MAN_INPUT_FLG";

		private static final String BMP_MSKM_JI_TSJGS_CD = "BMP_MSKM_JI_TSJGS_CD";

		private static final String BMP_MSKM_JI_TSJGS_KTN_CD = "BMP_MSKM_JI_TSJGS_KTN_CD";

		private static final String BMP_KOJI_KIBO_YMD = "BMP_KOJI_KIBO_YMD";

		private static final String BMPKJ_KIBO_TIME_CD = "BMPKJ_KIBO_TIME_CD";

		private static final String BMP_KOJI_FIX_YMD = "BMP_KOJI_FIX_YMD";

		private static final String BMPKJ_FIX_TIME_CD = "BMPKJ_FIX_TIME_CD";

		private static final String BMP_KOJI_FIN_YMD = "BMP_KOJI_FIN_YMD";

		private static final String BMP_JMTE_SKBT_CD = "BMP_JMTE_SKBT_CD";

		private static final String BMP_JMTE_STI_AMNT = "BMP_JMTE_STI_AMNT";

		private static final String TELNO = "TELNO";

		private static final String DOBANITEN_KSH_KANA = "DOBANITEN_KSH_KANA";

		private static final String DOBANITEN_KSH_NM = "DOBANITEN_KSH_NM";

		private static final String DOBANITEN_SK_AD_CD = "DOBANITEN_SK_AD_CD";

		private static final String DOBANITEN_SK_PCD = "DOBANITEN_SK_PCD";

		private static final String DOBANITEN_SK_STATE_NM = "DOBANITEN_SK_STATE_NM";

		private static final String DOBANITEN_SK_CITY_NM = "DOBANITEN_SK_CITY_NM";

		private static final String DOBANITEN_SK_OAZTSU_NM = "DOBANITEN_SK_OAZTSU_NM";

		private static final String DOBANITEN_SK_AZCHO_NM = "DOBANITEN_SK_AZCHO_NM";

		private static final String DOBANITEN_SK_BNCHIGO = "DOBANITEN_SK_BNCHIGO";

		private static final String DOBANITEN_SK_ADRTTM = "DOBANITEN_SK_ADRTTM";

		private static final String DOBANITEN_SK_ADRRM = "DOBANITEN_SK_ADRRM";

		private static final String DOBANITEN_SK_AD_MANIPT_FLG = "DOBANITEN_SK_AD_MANIPT_FLG";

		private static final String DOBANITEN_KIJIRAN_1 = "DOBANITEN_KIJIRAN_1";

		private static final String DOBANITEN_KIJIRAN_2 = "DOBANITEN_KIJIRAN_2";

		private static final String VA_PORT_NO = "VA_PORT_NO";

		private static final String DOBANITEN_CSKK_CD_NO_KKK = "DOBANITEN_CSKK_CD_NO_KKK";

		private static final String DOBANITEN_CSKK_CD_NTTSYKK = "DOBANITEN_CSKK_CD_NTTSYKK";

		private static final String DOBANITEN_KH = "DOBANITEN_KH";

		private static final String DOBANITEN_CHOSA_REQYMD = "DOBANITEN_CHOSA_REQYMD";

		private static final String DOBANITEN_REQ_CTRL_CD = "DOBANITEN_REQ_CTRL_CD";

		private static final String DOBANITEN_JDG_CD = "DOBANITEN_JDG_CD";

		private static final String EMG_KSH_KANA = "EMG_KSH_KANA";

		private static final String EMG_KSH_NM = "EMG_KSH_NM";

		private static final String EMG_ADRTTM = "EMG_ADRTTM";

		private static final String EMG_ADRRM = "EMG_ADRRM";

		private static final String ITENS_OPBF_TOKI_ADD_CD = "ITENS_OPBF_TOKI_ADD_CD";

		private static final String ITENS_OPBF_TOKI_SBT_CD = "ITENS_OPBF_TOKI_SBT_CD";

		private static final String ITENS_OPBF_TOKI_KIBO_UM = "ITENS_OPBF_TOKI_KIBO_UM";

		private static final String ITENS_OPBF_TOKI_OPEN_RSYMD = "ITENS_OPBF_TOKI_OPEN_RSYMD";

		private static final String ITENS_OPBF_TOKI_END_RSYMD = "ITENS_OPBF_TOKI_END_RSYMD";

		private static final String ITENS_OPBF_TOKI_ITNM_TLN = "ITENS_OPBF_TOKI_ITNM_TLN";

		private static final String ITENS_OPBF_TOKI_RRKS_TLN = "ITENS_OPBF_TOKI_RRKS_TLN";

		private static final String ITENS_OPBF_TOKI_NYO = "ITENS_OPBF_TOKI_NYO";

		private static final String ITENS_OPAF_TOKI_ADD_CD = "ITENS_OPAF_TOKI_ADD_CD";

		private static final String ITENS_OPAF_TOKI_SBT_CD = "ITENS_OPAF_TOKI_SBT_CD";

		private static final String ITENS_OPAF_TOKI_KIBO_UM = "ITENS_OPAF_TOKI_KIBO_UM";

		private static final String ITENS_OPAF_TOKI_OPEN_RSYMD = "ITENS_OPAF_TOKI_OPEN_RSYMD";

		private static final String ITENS_OPAF_TOKI_END_RSYMD = "ITENS_OPAF_TOKI_END_RSYMD";

		private static final String ITENS_OPAF_TOKI_ITNM_TLN = "ITENS_OPAF_TOKI_ITNM_TLN";

		private static final String ITENS_OPAF_TOKI_ITNS_TLN = "ITENS_OPAF_TOKI_ITNS_TLN";

		private static final String ITENS_OPAF_TOKI_NYO = "ITENS_OPAF_TOKI_NYO";

		private static final String TWRYO_STIAM_TTU_TCHI_STIAM = "TWRYO_STIAM_TTU_TCHI_STIAM";

		private static final String TWRYO_STIAM_TTU_TCHI_OP_UM = "TWRYO_STIAM_TTU_TCHI_OP_UM";

		private static final String ADD_DTM = "ADD_DTM";

		private static final String ADD_OPEACNT = "ADD_OPEACNT";

		private static final String UPD_DTM = "UPD_DTM";

		private static final String UPD_OPEACNT = "UPD_OPEACNT";

		private static final String DEL_DTM = "DEL_DTM";

		private static final String DEL_OPEACNT = "DEL_OPEACNT";

		private static final String MK_FLG = "MK_FLG";

		private static final String ADD_UNYO_YMD = "ADD_UNYO_YMD";

		private static final String ADD_TRN_ID = "ADD_TRN_ID";

		private static final String UPD_UNYO_YMD = "UPD_UNYO_YMD";

		private static final String UPD_TRN_ID = "UPD_TRN_ID";

		private static final String DEL_UNYO_YMD = "DEL_UNYO_YMD";

		private static final String DEL_TRN_ID = "DEL_TRN_ID";

		private static final String TEL_OP_PACK_SKCD = "TEL_OP_PACK_SKCD";
	// --------------------------------------------------------------------------------------------
	// 住所変更一時保存マップ END
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		// DBアクセスクラスを生成します
		//
		db_KK_T_ADCHG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG);
		// 住所変更明細
		db_KK_T_ADCHG_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_ADCHG_DTL);
		// 割引サービス対象契約
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		// 住所変更明細電話一時保存
		db_KK_T_ADCHM_TLN_TPPV = new JBSbatSQLAccess(commonItem, D_TBL_KK_T_ADCHM_TLN_TPPV);
		// オプションサービス契約
		db_KK_T_OP_SVC_KEI  = new JBSbatSQLAccess(commonItem, D_TBL_KK_T_OP_SVC_KEI);
		
		// ヘッダー出力
		writeHeader();
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		super.logPrint.printDebugLog("execute start");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 電話番号
		String telNo = inMap.getString(JBSbatKKIFM605.TELNO);
		// サービス契約番号
		String svcKeiNo = inMap.getString(JBSbatKKIFM605.SVC_KEI_NO);
		// サービス契約内訳番号
		String svcKeiUcwkNo = inMap.getString(JBSbatKKIFM605.SVC_KEI_UCWK_NO);
		// 申込明細番号
		String mskmDtlno = inMap.getString(JBSbatKKIFM605.MSKM_DTL_NO);
		// パック指定(割引サービスコード)
		String packSti_wribSvcCd = inMap.getString(JBSbatKKIFM605.PACK_STI);
		// 請求契約番号
		String seikyKeiNo = inMap.getString(JBSbatKKIFM605.SEIKY_KEI_NO);
		// SYSID
		String sysid = inMap.getString(JBSbatKKIFM605.SYSID);
		// eo光電話セレクトオプションパック登録
		String rslt = inMap.getString(JBSbatKKIFM605.RSLT);
		// 光電話セレクトパック登録年月日
		String telSelectOpPackAddYmd = inMap.getString(JBSbatKKIFM605.TEL_SELECT_OP_PACK_ADD_YMD);
		// エラー内容
		String errNaiyo = inMap.getString(JBSbatKKIFM605.ERR_NAIYO);
		
		// LOG編集
		String log = telNo + ":" + svcKeiNo + ":" + svcKeiUcwkNo
						+ ":" + mskmDtlno + ":" + packSti_wribSvcCd + ":" + seikyKeiNo
						+ ":" + sysid + ":" + rslt + ":" + telSelectOpPackAddYmd
						+ ":" + errNaiyo;
		super.logPrint.printDebugLog(log);
		
		// 運用日の取得
		String unyoDtm = this.commonItem.getOpeDate();
		
		// サービス契約内訳に紐付く割引サービス対象契約を取得し、割引サービス契約番号を特定
		String[] param_wribTgSvc = {svcKeiUcwkNo, unyoDtm, unyoDtm, unyoDtm};
		executeKK_T_WRISVC_TG_KEI_KK_SELECT_055(param_wribTgSvc);
		
		// 住所変更全情報を設定するリスト
		ArrayList<HashMap<String, String>> wribSvcDtlAllList = new ArrayList<HashMap<String, String>>();
		
		// 割引サービス契約番号の取得
		JBSbatCommonDBInterface getDataMap_wribSvc = db_KK_T_WRISVC_TG_KEI.selectNext();
		
		// 割引サービス契約取得できる場合
		if (getDataMap_wribSvc != null) {
			super.logPrint.printDebugLog("割引サービス契約情報取得しました。");
			wribSvcDtlAllList.add((HashMap<String, String>)getDataMap_wribSvc.getMap());
		}
		
		// 住所変更を取得する（住所変更番号を特定）
		// パラメータにサービス契約番号を設定する
		String[] param_adchgDtl_SvcKeiNo = {svcKeiNo, svcKeiNo};
		executeKK_T_ADCHG_DTL_KK_SELECT_040(param_adchgDtl_SvcKeiNo);
		
		// 住所変更番号情報を設定するリスト
		ArrayList<HashMap<String, String>> adChgDtlList = new ArrayList<HashMap<String, String>>();
		
		JBSbatCommonDBInterface getDataMap = db_KK_T_ADCHG.selectNext();
		
		// レコードを取得できた場合
		if(getDataMap != null)
		{
			super.logPrint.printDebugLog("住所変更明細番号取得しました。");
			adChgDtlList.add((HashMap<String, String>)getDataMap.getMap());
			
			// 住所変更番号を取得
			String adChgNo = null;
			for(int i = 0; i < adChgDtlList.size(); i++)
			{
				// 住所変更中の住所変更番号のみを取得する
				adChgNo = adChgDtlList.get(i).get(ADCHG_NO);
			}
			
			// 住所変更明細一覧（住所変更番号紐付き）の保持
			String[] param_adchgDtl_all = {adChgNo};
			executeKK_T_ADCHG_DTL_KK_SELECT_041(param_adchgDtl_all);
			
			// 住所変更全情報を設定するリスト
			ArrayList<HashMap<String, String>> adChgDtlAllList = new ArrayList<HashMap<String, String>>();
			
			JBSbatCommonDBInterface getAdChgDtlDataMap = db_KK_T_ADCHG_DTL.selectNext();
			
			while(getAdChgDtlDataMap != null)
			{
				super.logPrint.printDebugLog("住所変更明細全件取得しました。");
				adChgDtlAllList.add((HashMap<String, String>)getAdChgDtlDataMap.getMap());
				
				getAdChgDtlDataMap = db_KK_T_ADCHG_DTL.selectNext();
			}
			
			// 割引サービス契約情報が存在する場合のみ登録する
			if (wribSvcDtlAllList != null){
				
				// 登録対象の割引サービス契約番号
				String wribSvcKeiNo = (String)wribSvcDtlAllList.get(0).get(WRIB_SVC_KEI_NO);
				
				// 登録対象の割引サービスコードの取得
				String wribSvcCd = (String)wribSvcDtlAllList.get(0).get(WRIB_SVC_CD);
				
				boolean insertTgFlg = true;
				
				// 住所変更明細一覧リスト
				for(int i = 0; i < adChgDtlAllList.size(); i++) {
					String adchgDtlSbtCd = adChgDtlAllList.get(i).get(ADCHG_DTL_SBT_CD);
					//住所所変更種別コード「10」のデータ有無を確認
					if ("10".equals(adchgDtlSbtCd)) {
						// 変更前後の識別番号と一致すれば、再度INSERTはしない
						if (wribSvcKeiNo.equals((String)adChgDtlAllList.get(i).get(CHBF_SKBT_NO))
								|| wribSvcKeiNo.equals((String)adChgDtlAllList.get(i).get(CHBF_SKAT_NO))) {
							insertTgFlg = false;
							break;
						}
					}
				}
				if (insertTgFlg) {
					// 取得した割引サービス契約情報（割引サービス契約番号等）をINSERT
					insertAdChgDtl(adChgNo, wribSvcKeiNo);
				}
				
				// 住所変更一時保存情報の抽出(サービス契約内訳番号紐付）
//				String[] param_AdchmTlnTppv = {svcKeiUcwkNo,telNo};
				String[] param_AdchmTlnTppv = {svcKeiUcwkNo};
				executeKK_T_ADCHM_TLN_TPPV_KK_SELECT_002(param_AdchmTlnTppv);
				// 住所変更一時保存情報を設定するリスト
				ArrayList<HashMap<String, String>> adChgTlnList = new ArrayList<HashMap<String, String>>();
				
				JBSbatCommonDBInterface getAdChgTlnDataMap = db_KK_T_ADCHM_TLN_TPPV.selectNext();
				
				// 住所変更一時保存情報取得できた場合
				if (getAdChgTlnDataMap != null) {
					super.logPrint.printDebugLog("住所変更一時保存情報取得しました。");
					adChgTlnList.add((HashMap<String, String>)getAdChgTlnDataMap.getMap());
					// 住所変更申込電話番号一時保存スキーマに対して、UPDATE（サービス契約内訳番号指定）
					// 電話オプションパック識別コードに契約したパックの識別情報を設定する
					updateAdchmTlnTppv(adChgTlnList, wribSvcCd);
					
					// 入出力インターフェースオブジェクトを生成
					JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
					
					// 項目を設定
					// サービス契約番号
					outmap.setString(SVC_KEI_NO, svcKeiNo);
					// サービス契約内訳番号
					outmap.setString(SVC_KEI_UCWK_NO, svcKeiUcwkNo);
					// 電話番号
					outmap.setString(TEL_NO, telNo);
					
					// 契約中OP情報の編集
					// 割込電話
					outmap.setString(KEIYAKU_OP_1, "");
					// 転送電話
					outmap.setString(KEIYAKU_OP_2, "");
					// 転送電話選択
					outmap.setString(KEIYAKU_OP_3, "");
					// 発信者番号表示
					outmap.setString(KEIYAKU_OP_4, "");
					// 非通知着信拒否
					outmap.setString(KEIYAKU_OP_5, "");
					// 迷惑電話拒否
					outmap.setString(KEIYAKU_OP_6, "");
					// 通話明細送付
					outmap.setString(KEIYAKU_OP_7, "");
					
					// 解約予約中OP情報の編集
					// 割込電話
					outmap.setString(DSLAPLY_OP_1, "");
					// 転送電話
					outmap.setString(DSLAPLY_OP_2, "");
					// 転送電話選択
					outmap.setString(DSLAPLY_OP_3, "");
					// 発信者番号表示
					outmap.setString(DSLAPLY_OP_4, "");
					// 非通知着信拒否
					outmap.setString(DSLAPLY_OP_5, "");
					// 迷惑電話拒否
					outmap.setString(DSLAPLY_OP_6, "");
					// 通話明細送付
					outmap.setString(DSLAPLY_OP_7, "");
					
					// 解約希望日
					outmap.setString(DSL_APLY_YMD, "");
					
					// 転居元のオプション情報
					// 転居元にあり、転居先にない（解約予約のオプション情報）
					for(int i = 0; i < adChgDtlAllList.size(); i++) {
						// 住所変更明細から[04：オプション情報]を抽出し、オプション一覧照会する
						String adchgDtlSbtCd = adChgDtlAllList.get(i).get(ADCHG_DTL_SBT_CD);
						if ("04".equals(adchgDtlSbtCd)) {
							String Adchg_opSvcKeiNo = (String)adChgDtlAllList.get(i).get(CHBF_SKBT_NO);
							// オプションサービス契約番号と内訳番号で一覧照会する結果に応じてセット項目を指定
							String[] param_opSvcKei = {unyoDtm, Adchg_opSvcKeiNo, svcKeiUcwkNo, unyoDtm};
							executeKK_T_OP_SVC_KEI_KK_SELECT_107(param_opSvcKei);
							
							// オプションサービス契約の諸情報を設定するリスト
							ArrayList<HashMap<String, String>> opSvcKeiDtlList = new ArrayList<HashMap<String, String>>();
							
							JBSbatCommonDBInterface getOpSvcKeiDataMap = db_KK_T_OP_SVC_KEI.selectNext();
							
							// レコードを取得できた場合
							if(getOpSvcKeiDataMap != null){
								super.logPrint.printDebugLog("オプションサービス契約の諸情報取得しました。");
								opSvcKeiDtlList.add((HashMap<String, String>)getOpSvcKeiDataMap.getMap());
								
								// オプション情報の抽出
								for (int a = 0; a < opSvcKeiDtlList.size(); a++) {
									// オプションサービス契約番号の取得
									String opSvckeiNo = (String)opSvcKeiDtlList.get(a).get(OP_SVC_KEI_NO);
									// オプションサービスコードの取得
									String opSvcCd = (String)opSvcKeiDtlList.get(a).get(OP_SVC_CD);
									// サブオプションサービス契約番号
									String sbopSvcNo = (String)opSvcKeiDtlList.get(a).get(SBOP_SVC_KEI_NO);
									// 解約予約年月日
									String dslAplyYmd = (String)opSvcKeiDtlList.get(a).get(DSL_APLY_YMD);
									
									// オプション情報の選定(契約中)
									// -----------------------------------------------------------------------------
									if ("B023".equals(opSvcCd)) {
										outmap.setString(KEIYAKU_OP_1, opSvckeiNo);
										// 解約予約年月日
										if (dslAplyYmd != null && !"".equals(dslAplyYmd)) {
											outmap.setString(DSLAPLY_OP_1, opSvckeiNo);
											// 解約希望日
											outmap.setString(DSL_APLY_YMD, dslAplyYmd);
										}
									} 
									else if ("B024".equals(opSvcCd)) {
										outmap.setString(KEIYAKU_OP_2, opSvckeiNo);
										// サブオプション保持の場合
										if (sbopSvcNo != null && !"".equals(sbopSvcNo)) {
											outmap.setString(KEIYAKU_OP_3, sbopSvcNo);
										}
										// 解約予約年月日
										if (dslAplyYmd != null && !"".equals(dslAplyYmd)) {
											outmap.setString(DSLAPLY_OP_2, opSvckeiNo);
											outmap.setString(DSLAPLY_OP_3, sbopSvcNo);
											// 解約希望日
											outmap.setString(DSL_APLY_YMD, dslAplyYmd);
										}
									}
									else if ("B025".equals(opSvcCd)) {
										outmap.setString(KEIYAKU_OP_4, opSvckeiNo);
										// サブオプション保持の場合
										if (sbopSvcNo != null && !"".equals(sbopSvcNo)) {
											outmap.setString(KEIYAKU_OP_5, sbopSvcNo);
										}
										// 解約予約年月日
										if (dslAplyYmd != null && !"".equals(dslAplyYmd)) {
											outmap.setString(DSLAPLY_OP_4, opSvckeiNo);
											outmap.setString(DSLAPLY_OP_5, sbopSvcNo);
											// 解約希望日
											outmap.setString(DSL_APLY_YMD, dslAplyYmd);
										}
									}
									else if ("B026".equals(opSvcCd)) {
										outmap.setString(KEIYAKU_OP_6, opSvckeiNo);
										// 解約予約年月日
										if (dslAplyYmd != null && !"".equals(dslAplyYmd)) {
											outmap.setString(DSLAPLY_OP_6, opSvckeiNo);
											// 解約希望日
											outmap.setString(DSL_APLY_YMD, dslAplyYmd);
										}
									}
									else if ("B027".equals(opSvcCd)) {
										outmap.setString(KEIYAKU_OP_7, opSvckeiNo);
										// 解約予約年月日
										if (dslAplyYmd != null && !"".equals(dslAplyYmd)) {
											outmap.setString(DSLAPLY_OP_7, opSvckeiNo);
											// 解約希望日
											outmap.setString(DSL_APLY_YMD, dslAplyYmd);
										}
									}
								}
							}
						}
					}
					
					String packName = "";
					// パック情報
					// 割引サービスコードが「W00000007：パック３」の場合
					if ("W00000007".equals(wribSvcCd)) {
						packName = "パック３";
					}else if ("W00000008".equals(wribSvcCd)) {
						packName = "パック７";
					}
					outmap.setString(OP_PACK, packName);
					
					// レコード出力判定フラグを設定
					outmap.setOutFlg(true);
					
					// 出力共通電文に入出力インターフェースを設定する。
					outputBean.addOutMapList(outmap);
					
					// 出力共通電文を返却
					return outputBean;
				}
			}
		}
		
		super.logPrint.printDebugLog("execute end");
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_ADCHG.close();
		db_KK_T_ADCHG_DTL.close();
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_T_ADCHM_TLN_TPPV.close();
		db_KK_T_OP_SVC_KEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * SQLKEY(KK_SELECT_041)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHG_DTL_KK_SELECT_041(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_041);
	}
	
	/**
	 * SQLKEY(KK_SELECT_040)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHG_DTL_KK_SELECT_040(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHG.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_019);
	}
	
	/**
	 * SQLKEY(KK_SELECT_055)で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_055(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_WRISVC_TG_KEI.selectBySqlDefine(paramList, KK_T_ADCHG_DTL_KK_SELECT_055);
	}
	
	/**
	 * SQLKEY(KK_T_ADCHM_TLN_TPPV_KK_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHM_TLN_TPPV_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_ADCHM_TLN_TPPV.selectBySqlDefine(paramList, KK_T_ADCHM_TLN_TPPV_KK_SELECT_001);
	}
	
	/**
	 * SQLKEY(KK_T_OP_SVC_KEI_KK_SELECT_110)で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_OP_SVC_KEI_KK_SELECT_107(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString()); // 運用日
		paramList.setValue(param[1].toString()); // オプションサービス契約番号
		paramList.setValue(param[2].toString()); // サービス契約内訳番号
		paramList.setValue(param[3].toString()); // 運用日

		// DBアクセスを実行します
		db_KK_T_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_110);
	}

	/**
	 * オプションサービス契約を登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.オプションサービス契約全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @param systemDateTime システム日付。
	 * @param itemValueMap オプションサービス契約のデータを加工したHashMap。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void insertAdChgDtl( String adChgNo,String wribSvcKeiNo) throws Exception
	{
		String[] setParam = {
				adChgNo,	// 住所変更番号 (引数指定１)
				(String)JCCOracleSeqUtil.getFormatedNextSeq(super.commonItem.getConnection(), SEQ_ADCHG_DTL_NO, "", 7),	// 住所変更明細番号 (シーケンス払い出し)
				"10",// 住所変更明細種別コード (固定で「10」)
				"",// CHG_TG_KEI_NO (NULL)
				wribSvcKeiNo,// 変更前識別番号 (引数指定２)
				wribSvcKeiNo,// 変更後識別番号 (引数指定２)
				"",// SVC_KEI_IDO_SBT_CD (NULL)
				"",// SKS_SHS_CHG_UM (NULL)
				"",// ADCHG_WORK_RRK_BIKO (NULL)
				(String)this.commonItem.getOpeDate(),// 登録運用年月日（運用日指定）
				(String)this.commonItem.getOpeDate(),// 更新運用年月日（運用日指定）
				null, // 登録年月日時分秒
				null, // 登録オペレータアカウント
				null, // 更新年月日時分秒
				null, // 更新オペレータアカウント
				null, // 削除年月日時分秒
				null, // 削除オペレータアカウント
				null // 無効フラグ
			};

		executeKK_T_ADCHG_DTL_PKINSERT(setParam);
	}
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHG_DTL_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("ADCHG_NO", setParam[0]);
		setMap.setValue("ADCHG_DTL_NO", setParam[1]);
		setMap.setValue("ADCHG_DTL_SBT_CD", setParam[2]);
		setMap.setValue("CHG_TG_KEI_NO", setParam[3]);
		setMap.setValue("CHBF_SKBT_NO", setParam[4]);
		setMap.setValue("CHAF_SKBT_NO", setParam[5]);
		setMap.setValue("SVC_KEI_IDO_SBT_CD", setParam[6]);
		setMap.setValue("SKS_SHS_CHG_UM", setParam[7]);
		setMap.setValue("ADCHG_WORK_RRK_BIKO", setParam[8]);
		setMap.setValue("ADD_UNYO_YMD", setParam[9]);
		setMap.setValue("UPD_UNYO_YMD", setParam[10]);
		setMap.setValue("ADD_DTM", setParam[11]);
		setMap.setValue("ADD_OPEACNT", setParam[12]);
		setMap.setValue("UPD_DTM", setParam[13]);
		setMap.setValue("UPD_OPEACNT", setParam[14]);
		setMap.setValue("DEL_DTM", setParam[15]);
		setMap.setValue("DEL_OPEACNT", setParam[16]);
		setMap.setValue("MK_FLG", setParam[17]);
	
		// DBアクセスを実行します
		db_KK_T_ADCHG_DTL.insertByPrimaryKeys(setMap);
	}
	
	/**
	 * オプションサービス契約を登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目の配列を作ります。<br>
	 *
	 * 2.オプションサービス契約全項目登録処理を実行します。<br>
	 * </pre>
	 * <p>
	 * @param opSvcKeiMap オプションサービス契約マップ。
	 * @param systemDateTime システム日付。
	 * @param itemValueMap オプションサービス契約のデータを加工したHashMap。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void updateAdchmTlnTppv( ArrayList<HashMap<String, String>> adChgTlnList,String wribSvcCd) throws Exception
	{
		// TEL_OP_PACK_SKCD
		String TEL_OP_PACK_SKCD = "0";
		
		// 割引サービスコードが「W00000007：パック３」の場合
		if ("W00000007".equals(wribSvcCd)) {
			TEL_OP_PACK_SKCD = "1";
		}else if ("W00000008".equals(wribSvcCd)) {
			TEL_OP_PACK_SKCD = "2";
		}
		
		String[] setParam = {
				adChgTlnList.get(0).get(SYSID),
				adChgTlnList.get(0).get(ADCHM_TPPV_NO),
				adChgTlnList.get(0).get(ADCHM_TLN_TPPV_NO),
				adChgTlnList.get(0).get(AD_SVC_KEI_UCWK_NO),
				adChgTlnList.get(0).get(DSL_UM),
				adChgTlnList.get(0).get(BMP_KOJI_UM),
				adChgTlnList.get(0).get(BMP_DOJI_KOJI_KIBO_UM),
				adChgTlnList.get(0).get(BMP_KSH_KANA),
				adChgTlnList.get(0).get(BMP_KSH_NM),
				adChgTlnList.get(0).get(NTT_KEISHA_AD_CD),
				adChgTlnList.get(0).get(NTT_KEISHA_PCD),
				adChgTlnList.get(0).get(NTT_KEISHA_STATE_NM),
				adChgTlnList.get(0).get(NTT_KEISHA_CITY_NM),
				adChgTlnList.get(0).get(NTT_KEISHA_OAZTSU_NM),
				adChgTlnList.get(0).get(NTT_KEISHA_AZCHO_NM),
				adChgTlnList.get(0).get(NTT_KEISHA_BNCHIGO),
				adChgTlnList.get(0).get(NTT_KEISHA_ADRTTM),
				adChgTlnList.get(0).get(NTT_KEISHA_ADRRM),
				adChgTlnList.get(0).get(NKYS_AD_MAN_INPUT_FLG),
				adChgTlnList.get(0).get(BMP_MSKM_JI_TSJGS_CD),
				adChgTlnList.get(0).get(BMP_MSKM_JI_TSJGS_KTN_CD),
				adChgTlnList.get(0).get(BMP_KOJI_KIBO_YMD),
				adChgTlnList.get(0).get(BMPKJ_KIBO_TIME_CD),
				adChgTlnList.get(0).get(BMP_KOJI_FIX_YMD),
				adChgTlnList.get(0).get(BMPKJ_FIX_TIME_CD),
				adChgTlnList.get(0).get(BMP_KOJI_FIN_YMD),
				adChgTlnList.get(0).get(BMP_JMTE_SKBT_CD),
				adChgTlnList.get(0).get(BMP_JMTE_STI_AMNT),
				adChgTlnList.get(0).get(TELNO),
				adChgTlnList.get(0).get(DOBANITEN_KSH_KANA),
				adChgTlnList.get(0).get(DOBANITEN_KSH_NM),
				adChgTlnList.get(0).get(DOBANITEN_SK_AD_CD),
				adChgTlnList.get(0).get(DOBANITEN_SK_PCD),
				adChgTlnList.get(0).get(DOBANITEN_SK_STATE_NM),
				adChgTlnList.get(0).get(DOBANITEN_SK_CITY_NM),
				adChgTlnList.get(0).get(DOBANITEN_SK_OAZTSU_NM),
				adChgTlnList.get(0).get(DOBANITEN_SK_AZCHO_NM),
				adChgTlnList.get(0).get(DOBANITEN_SK_BNCHIGO),
				adChgTlnList.get(0).get(DOBANITEN_SK_ADRTTM),
				adChgTlnList.get(0).get(DOBANITEN_SK_ADRRM),
				adChgTlnList.get(0).get(DOBANITEN_SK_AD_MANIPT_FLG),
				adChgTlnList.get(0).get(DOBANITEN_KIJIRAN_1),
				adChgTlnList.get(0).get(DOBANITEN_KIJIRAN_2),
				adChgTlnList.get(0).get(VA_PORT_NO),
				adChgTlnList.get(0).get(DOBANITEN_CSKK_CD_NO_KKK),
				adChgTlnList.get(0).get(DOBANITEN_CSKK_CD_NTTSYKK),
				adChgTlnList.get(0).get(DOBANITEN_KH),
				adChgTlnList.get(0).get(DOBANITEN_CHOSA_REQYMD),
				adChgTlnList.get(0).get(DOBANITEN_REQ_CTRL_CD),
				adChgTlnList.get(0).get(DOBANITEN_JDG_CD),
				adChgTlnList.get(0).get(EMG_KSH_KANA),
				adChgTlnList.get(0).get(EMG_KSH_NM),
				adChgTlnList.get(0).get(EMG_ADRTTM),
				adChgTlnList.get(0).get(EMG_ADRRM),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_ADD_CD),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_SBT_CD),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_KIBO_UM),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_OPEN_RSYMD),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_END_RSYMD),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_ITNM_TLN),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_RRKS_TLN),
				adChgTlnList.get(0).get(ITENS_OPBF_TOKI_NYO),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_ADD_CD),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_SBT_CD),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_KIBO_UM),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_OPEN_RSYMD),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_END_RSYMD),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_ITNM_TLN),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_ITNS_TLN),
				adChgTlnList.get(0).get(ITENS_OPAF_TOKI_NYO),
				adChgTlnList.get(0).get(TWRYO_STIAM_TTU_TCHI_STIAM),
				adChgTlnList.get(0).get(TWRYO_STIAM_TTU_TCHI_OP_UM),
				adChgTlnList.get(0).get(ADD_DTM),
				adChgTlnList.get(0).get(ADD_OPEACNT),
				null,// UPD_DTM NULL
				null,// UPD_OPEACNT NULL
				null,// DEL_DTM NULL
				null,// DEL_OPEACNT NULL
				null,// MK_FLG NULL
				adChgTlnList.get(0).get(ADD_UNYO_YMD),
				adChgTlnList.get(0).get(ADD_TRN_ID),
				(String)this.commonItem.getOpeDate(),// 運用日,
				null,// UPD_TRN_ID NULL
				null,// DEL_UNYO_YMD
				null,// DEL_TRN_ID
				TEL_OP_PACK_SKCD
			};

		executeKK_T_ADCHM_TLN_TPPV_PKINSERT(setParam);
	}
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_ADCHM_TLN_TPPV_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		
		// プライマリキーマップ
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		
		// 設定値情報
		setMap.setValue("SYSID", null);
		setMap.setValue("ADCHM_TPPV_NO", null);
		setMap.setValue("ADCHM_TLN_TPPV_NO", null);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[3]);
		setMap.setValue("DSL_UM", setParam[4]);
		setMap.setValue("BMP_KOJI_UM", setParam[5]);
		setMap.setValue("BMP_DOJI_KOJI_KIBO_UM", setParam[6]);
		setMap.setValue("BMP_KSH_KANA", setParam[7]);
		setMap.setValue("BMP_KSH_NM", setParam[8]);
		setMap.setValue("NTT_KEISHA_AD_CD", setParam[9]);
		setMap.setValue("NTT_KEISHA_PCD", setParam[10]);
		setMap.setValue("NTT_KEISHA_STATE_NM", setParam[11]);
		setMap.setValue("NTT_KEISHA_CITY_NM", setParam[12]);
		setMap.setValue("NTT_KEISHA_OAZTSU_NM", setParam[13]);
		setMap.setValue("NTT_KEISHA_AZCHO_NM", setParam[14]);
		setMap.setValue("NTT_KEISHA_BNCHIGO", setParam[15]);
		setMap.setValue("NTT_KEISHA_ADRTTM", setParam[16]);
		setMap.setValue("NTT_KEISHA_ADRRM", setParam[17]);
		setMap.setValue("NKYS_AD_MAN_INPUT_FLG", setParam[18]);
		setMap.setValue("BMP_MSKM_JI_TSJGS_CD", setParam[19]);
		setMap.setValue("BMP_MSKM_JI_TSJGS_KTN_CD", setParam[20]);
		setMap.setValue("BMP_KOJI_KIBO_YMD", setParam[21]);
		setMap.setValue("BMPKJ_KIBO_TIME_CD", setParam[22]);
		setMap.setValue("BMP_KOJI_FIX_YMD", setParam[23]);
		setMap.setValue("BMPKJ_FIX_TIME_CD", setParam[24]);
		setMap.setValue("BMP_KOJI_FIN_YMD", setParam[25]);
		setMap.setValue("BMP_JMTE_SKBT_CD", setParam[26]);
		setMap.setValue("BMP_JMTE_STI_AMNT", setParam[27]);
		setMap.setValue("TELNO", setParam[28]);
		setMap.setValue("DOBANITEN_KSH_KANA", setParam[29]);
		setMap.setValue("DOBANITEN_KSH_NM", setParam[30]);
		setMap.setValue("DOBANITEN_SK_AD_CD", setParam[31]);
		setMap.setValue("DOBANITEN_SK_PCD", setParam[32]);
		setMap.setValue("DOBANITEN_SK_STATE_NM", setParam[33]);
		setMap.setValue("DOBANITEN_SK_CITY_NM", setParam[34]);
		setMap.setValue("DOBANITEN_SK_OAZTSU_NM", setParam[35]);
		setMap.setValue("DOBANITEN_SK_AZCHO_NM", setParam[36]);
		setMap.setValue("DOBANITEN_SK_BNCHIGO", setParam[37]);
		setMap.setValue("DOBANITEN_SK_ADRTTM", setParam[38]);
		setMap.setValue("DOBANITEN_SK_ADRRM", setParam[39]);
		setMap.setValue("DOBANITEN_SK_AD_MANIPT_FLG", setParam[40]);
		setMap.setValue("DOBANITEN_KIJIRAN_1", setParam[41]);
		setMap.setValue("DOBANITEN_KIJIRAN_2", setParam[42]);
		setMap.setValue("VA_PORT_NO", setParam[43]);
		setMap.setValue("DOBANITEN_CSKK_CD_NO_KKK", setParam[44]);
		setMap.setValue("DOBANITEN_CSKK_CD_NTTSYKK", setParam[45]);
		setMap.setValue("DOBANITEN_KH", setParam[46]);
		setMap.setValue("DOBANITEN_CHOSA_REQYMD", setParam[47]);
		setMap.setValue("DOBANITEN_REQ_CTRL_CD", setParam[48]);
		setMap.setValue("DOBANITEN_JDG_CD", setParam[49]);
		setMap.setValue("EMG_KSH_KANA", setParam[50]);
		setMap.setValue("EMG_KSH_NM", setParam[51]);
		setMap.setValue("EMG_ADRTTM", setParam[52]);
		setMap.setValue("EMG_ADRRM", setParam[53]);
		setMap.setValue("ITENS_OPBF_TOKI_ADD_CD", setParam[54]);
		setMap.setValue("ITENS_OPBF_TOKI_SBT_CD", setParam[55]);
		setMap.setValue("ITENS_OPBF_TOKI_KIBO_UM", setParam[56]);
		setMap.setValue("ITENS_OPBF_TOKI_OPEN_RSYMD", setParam[57]);
		setMap.setValue("ITENS_OPBF_TOKI_END_RSYMD", setParam[58]);
		setMap.setValue("ITENS_OPBF_TOKI_ITNM_TLN", setParam[59]);
		setMap.setValue("ITENS_OPBF_TOKI_RRKS_TLN", setParam[60]);
		setMap.setValue("ITENS_OPBF_TOKI_NYO", setParam[61]);
		setMap.setValue("ITENS_OPAF_TOKI_ADD_CD", setParam[62]);
		setMap.setValue("ITENS_OPAF_TOKI_SBT_CD", setParam[63]);
		setMap.setValue("ITENS_OPAF_TOKI_KIBO_UM", setParam[64]);
		setMap.setValue("ITENS_OPAF_TOKI_OPEN_RSYMD", setParam[65]);
		setMap.setValue("ITENS_OPAF_TOKI_END_RSYMD", setParam[66]);
		setMap.setValue("ITENS_OPAF_TOKI_ITNM_TLN", setParam[67]);
		setMap.setValue("ITENS_OPAF_TOKI_ITNS_TLN", setParam[68]);
		setMap.setValue("ITENS_OPAF_TOKI_NYO", setParam[69]);
		setMap.setValue("TWRYO_STIAM_TTU_TCHI_STIAM", setParam[70]);
		setMap.setValue("TWRYO_STIAM_TTU_TCHI_OP_UM", setParam[71]);
		setMap.setValue("ADD_DTM", setParam[72]);
		setMap.setValue("ADD_OPEACNT", setParam[73]);
		setMap.setValue("UPD_DTM", setParam[74]);
		setMap.setValue("UPD_OPEACNT", setParam[75]);
		setMap.setValue("DEL_DTM", setParam[76]);
		setMap.setValue("DEL_OPEACNT", setParam[77]);
		setMap.setValue("MK_FLG", setParam[78]);
		setMap.setValue("ADD_UNYO_YMD", setParam[79]);
		setMap.setValue("ADD_TRN_ID", setParam[80]);
		setMap.setValue("UPD_UNYO_YMD", setParam[81]);
		setMap.setValue("UPD_TRN_ID", setParam[82]);
		setMap.setValue("UPD_UNYO_YMD", setParam[83]);
		setMap.setValue("DEL_TRN_ID", setParam[84]);
		setMap.setValue("TEL_OP_PACK_SKCD", setParam[85]);
		
		// プライマリー情報
		whereMap.setValue("SYSID", setParam[0]);
		whereMap.setValue("ADCHM_TPPV_NO", setParam[1]);
		whereMap.setValue("ADCHM_TLN_TPPV_NO", setParam[2]);
	
		// DBアクセスを実行します
		db_KK_T_ADCHM_TLN_TPPV.updateByPrimaryKeys(whereMap, setMap);
	}
		
	/**
	 * ヘッダ部の出力をします。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * ヘッダ部の出力処理をします。<br>
	 *
	 * </pre>
	 * <p>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void writeHeader() throws Exception
	{
		JBSbatOutputFileUtil out_obj = super.commonItem.getOutPutFile();
		StringBuffer header = new StringBuffer();

		header.append("サービス契約番号,");
		header.append("サービス契約内訳番号,");
		header.append("電話番号,");
		header.append("割込電話（契約中）,");
		header.append("転送電話（契約中）,");
		header.append("転送電話選択（契約中）,");
		header.append("発信者番号表示（契約中）,");
		header.append("非通知着信拒否（契約中）,");
		header.append("迷惑電話拒否（契約中）,");
		header.append("指定番号着信選択（契約中）,");
		header.append("契約中電話ＯＰパック,");
		header.append("割込電話（解約予約中）,");
		header.append("転送電話（解約予約中）,");
		header.append("転送電話選択（解約予約中）,");
		header.append("発信者番号表示（解約予約中）,");
		header.append("非通知着信拒否（解約予約中）,");
		header.append("迷惑電話拒否（解約予約中）,");
		header.append("指定番号着信選択（解約予約中）,");
		header.append("解約希望日");
		
		// ヘッダ部の出力を行います。
		out_obj.write(header.toString());
	}
}
