/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTokutIdoOptyCmpEnd
*	ソースファイル名	：JBSbatKKTokutIdoOptyCmpEnd.java
*	作成者				：富士通　
*	作成日				：2020年06月23日
*＜機能概要＞
*　特定異動契機キャンペーン終了部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*   v49.00.00   2020/06/23  FJ)謝       【ANK-3832-01-00】202007CP対応(住変時の仕様変更対応) 新規作成
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatKKConst;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM913;
import eo.business.util.file.JBSbatKKIFM914;
import eo.business.util.table.JBSbatKK_T_ADCHG_DTL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_WRIB_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_WRISVC_KEI_UCWK;
import eo.business.util.table.JBSbatKU_T_SVKEI_KOJIAK;
import eo.common.constant.JKKStrConst;
import eo.common.util.JKKStringUtil;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTokutIdoOptyCmpEnd 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_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(サービス契約＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_SVKEI_KOJIAK = "KU_T_SVKEI_KOJIAK";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(割引サービス対象契約)*/
	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_T_WRIB_SVC_KEI = "KK_T_WRIB_SVC_KEI";

	/** テーブル(割引サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_KEI_UCWK = "KK_T_WRISVC_KEI_UCWK";

	/** テーブル(進捗)*/
	private static final String D_TBL_NAME_KK_T_PRG = "KK_T_PRG";

	/** SQL定義キー(KK_SELECT_030)*/
	private static final String KK_T_ADCHG_KK_SELECT_030 = "KK_SELECT_030";

	/** SQL定義キー(KK_SELECT_055)*/
	private static final String KK_T_ADCHG_DTL_KK_SELECT_055 = "KK_SELECT_055";

	/** SQL定義キー(KK_SELECT_049)*/
	private static final String KU_T_KOJIAK_KK_SELECT_049 = "KK_SELECT_049";

	/** SQL定義キー(KK_SELECT_028)*/
	private static final String KU_T_SVKEI_KOJIAK_KK_SELECT_028 = "KK_SELECT_028";

	/** SQL定義キー(KK_SELECT_376)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_376 = "KK_SELECT_376";

	/** SQL定義キー(KK_SELECT_064)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_064 = "KK_SELECT_064";

	/** SQL定義キー(KK_SELECT_024)*/
	private static final String KK_T_WRISVC_KEI_UCWK_KK_SELECT_024 = "KK_SELECT_024";

	/** テーブルアクセスクラス(住所変更)*/
	private JBSbatSQLAccess db_KK_T_ADCHG = null;

	/** テーブルアクセスクラス(住所変更明細)*/
	private JBSbatSQLAccess db_KK_T_ADCHG_DTL = null;

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(サービス契約＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_SVKEI_KOJIAK = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;

	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI = null;

	/** テーブルアクセスクラス(割引サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 定義ファイル(当日住所変更明細) */
	private static final String KKIFM913_DEF = "KKIFM913.def";
	
	/** 定義ファイル(割引サービス（住所変更確定契機）) */
	private static final String KKIFM914_DEF = "KKIFM914.def";
	
	/** 修正前SQL(割引サービスコード) */
	private static final String EDIT_BF_SQL_WRIB_SVC_CD = "WRIB_SVC_CD IN (?)";
	
	/** 修正後SQL(割引サービスコード) */
	private static final String EDIT_AF_SQL_WRIB_SVC_CD = "WRIB_SVC_CD IN ";
	
	/** 進捗特記事項１編集用（先頭） */
	private static final String PRG_TKJK_1_START = "割引終了済（CPコード：";
	
	/** 進捗特記事項１編集用（末尾） */
	private static final String PRG_TKJK_1_END = "）";
	
	/** テーブルアクセスクラス(共通部品) */
	private JBSbatSQLAccess stmt = null;
	
	/** 住所変更契機キャンペーン終了基準日 */
	private String adcngCpendDate = null;
	
	/** 住所変更契機キャンペーン終了対象外文字列リスト */
	private List<String> adcngEndtggStrList = null;
	
	/** 終了対象割引サービスコードリスト */
	private List<String> endTgWribSvcCdList = null;
	
	/**
	 * 初期処理
	 * @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_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KU_T_SVKEI_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_SVKEI_KOJIAK);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		db_KK_T_WRIB_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);
		db_KK_T_WRISVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_KEI_UCWK);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		// 共通部品用
		stmt = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		
		// 住所変更契機キャンペーン終了基準日を取得する
		adcngCpendDate = JKKBatCommon.getWorkParamSetteValue(commonItem, JBSbatKKConst.KK_ADCNG_CPEND_DATE);
		
		// 住所変更契機キャンペーン終了対象外文字列リストを取得する
		adcngEndtggStrList = new ArrayList<String>();
		String adcngEndtggStr = JKKBatCommon.getWorkParamSetteValue(commonItem, JBSbatKKConst.KK_ADCNG_ENDTGG_STR);
		if (!JKKStringUtil.isNullBlank(adcngEndtggStr))
		{
			adcngEndtggStrList = Arrays.asList(adcngEndtggStr.split(JKKStrConst.COMMA));
		}
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// フリー項目を取得する
		// [0]:当日住所変更明細抽出ファイル
		// [1]:割引サービス（住所変更確定契機）抽出ファイル
		String[] freeItems = freeItem.split(JKKBatConst.S_PARAM_DELIM);
		
		// 終了対象割引サービス情報マップ<割引サービスコード, 表示用キャンペーンコード>
		HashMap<String, String> endTgWribSvcInfoMap = new HashMap<String, String>();
		
		// 終了対象割引サービスコードリスト
		endTgWribSvcCdList = new ArrayList<String>();
		
		// 割引サービス（住所変更確定契機）抽出ファイル読み込み
		String kkifm914DefName = JBSbatAplConst.getAplConstValue(JKKStrConst.KDDI_BAT_ID_IND) + KKIFM914_DEF;
		JBSbatInputFileUtil kkifm914FileUtil = new JBSbatInputFileUtil(freeItems[1]);
		JBSbatDefFileUtil kkifm914FileDef = new JBSbatDefFileUtil(kkifm914DefName, kkifm914FileUtil);
		kkifm914FileUtil.createReader();
		
		// 割引サービス（住所変更確定契機）抽出ファイルの件数分繰り返す
		while (kkifm914FileUtil.ready())
		{
			// ファイルから１レコードを取得する
			String line = kkifm914FileUtil.readLine();
			
			// １レコードの情報をマップに格納する
			JBSbatServiceInterfaceMap recordMap = kkifm914FileDef.lineToObject(line, kkifm914FileUtil, 0);
			
			// 割引サービスコード
			String keyWribSvcCd = (String)recordMap.getMap().get(JBSbatKKIFM914.WRIB_SVC_CD);
			
			// 表示用キャンペーンコード
			String valueDspCampaignCd = (String)recordMap.getMap().get(JBSbatKKIFM914.DSP_CAMPAIGN_CD);
			
			// 終了対象割引サービス情報マップ
			endTgWribSvcInfoMap.put(keyWribSvcCd, valueDspCampaignCd);
			
			// 終了対象割引サービスコードリスト
			endTgWribSvcCdList.add(keyWribSvcCd);
		}
		
		// 終了対象の割引サービスコードが存在しない場合、処理を終了する
		if (endTgWribSvcCdList.size() == 0)
		{
			return null;
		}
		
		// 変更前SQL(割引サービス対象契約)
		String wrisvcTgKeiSqlBf = db_KK_T_WRISVC_TG_KEI.getSql("KK_SELECT_064");
		// 変更後SQL(割引サービス対象契約)
		String wrisvcTgKeiSqlAf = getEditSQL(wrisvcTgKeiSqlBf, endTgWribSvcCdList, EDIT_BF_SQL_WRIB_SVC_CD, EDIT_AF_SQL_WRIB_SVC_CD);
		// 編集したSQLを設定する(割引サービス対象契約)
		db_KK_T_WRISVC_TG_KEI.setSqlMap("KK_SELECT_064", wrisvcTgKeiSqlAf);
		
		// 当日住所変更明細抽出ファイル読み込み
		String kkifm913DefName = JBSbatAplConst.getAplConstValue(JKKStrConst.KDDI_BAT_ID_IND) + KKIFM913_DEF;
		JBSbatInputFileUtil kkifm913FileUtil = new JBSbatInputFileUtil(freeItems[0]);
		JBSbatDefFileUtil kkifm913FileDef = new JBSbatDefFileUtil(kkifm913DefName, kkifm913FileUtil);
		kkifm913FileUtil.createReader();
		
		// 当日住所変更明細抽出ファイルの件数分繰り返す
		while (kkifm913FileUtil.ready())
		{
			// ファイルから１レコードを取得する
			String line = kkifm913FileUtil.readLine();
			
			// １レコードの情報をマップに格納する
			JBSbatServiceInterfaceMap recordMap = kkifm913FileDef.lineToObject(line, kkifm913FileUtil, 0);
			
			// 住所変更番号
			String adchgNo = (String)recordMap.getMap().get(JBSbatKKIFM913.ADCHG_NO);
			
			// 変更後識別番号（住所変更確定日）
			String adchgFixYmd = (String)recordMap.getMap().get(JBSbatKKIFM913.CHAF_SKBT_NO_ADCHG_FIX_YMD);
			
			// キャンペーン終了対象サービス契約番号リスト
			List<String> cpEndTgSvcKeiNoList = new ArrayList<String>();
			
			// 住所変更の検索を行う
			String[] param = new String[2];
			param[0] = adcngCpendDate;
			param[1] = adchgNo;
			executeKK_T_ADCHG_KK_SELECT_030(param);
			JBSbatCommonDBInterface adchgMap = db_KK_T_ADCHG.selectNext();
			if (adchgMap == null)
			{
				continue;
			}
			
			// 住所変更明細の検索を行う
			String[] param2 = new String[1];
			param2[0] = adchgNo;
			executeKK_T_ADCHG_DTL_KK_SELECT_055(param2);
			JBSbatCommonDBInterface adchgDtlMap = db_KK_T_ADCHG_DTL.selectNext();
			while(adchgDtlMap != null)
			{
				// 変更前識別番号
				String chbfSkbtNo = adchgDtlMap.getString(JBSbatKK_T_ADCHG_DTL.CHBF_SKBT_NO);
				// 変更後識別番号
				String chafSkbtNo = adchgDtlMap.getString(JBSbatKK_T_ADCHG_DTL.CHAF_SKBT_NO);
				// 終了対象外フラグ true:終了対象外、false:終了対象
				boolean endtggFlg = false;
				
				if (!JKKStringUtil.isNullBlank(chafSkbtNo))
				{
					for (String adcngEndtggStr : adcngEndtggStrList)
					{
						// 変更後識別番号に住所変更契機キャンペーン終了対象外文字列が含まれている場合
						if (chafSkbtNo.contains(adcngEndtggStr))
						{
							endtggFlg = true;
							break;
						}
					}
				}
				
				if (endtggFlg)
				{
					adchgDtlMap = db_KK_T_ADCHG_DTL.selectNext();
					continue;
				}
				
				if (!JKKStringUtil.isNullBlank(chbfSkbtNo))
				{
					// 撤去工事を取得する
					String[] param3 = new String[1];
					param3[0] = chbfSkbtNo;
					executeKU_T_KOJIAK_KK_SELECT_049(param3);
					JBSbatCommonDBInterface tekkyoKojiakMap = db_KU_T_KOJIAK.selectNext();
					if (tekkyoKojiakMap == null)
					{
						adchgDtlMap = db_KK_T_ADCHG_DTL.selectNext();
						continue;
					}
				}
				
				if (!JKKStringUtil.isNullBlank(chafSkbtNo))
				{
					// 新設工事を取得する
					String[] param4 = new String[1];
					param4[0] = chafSkbtNo;
					executeKU_T_KOJIAK_KK_SELECT_049(param4);
					JBSbatCommonDBInterface newestaKojiakMap = db_KU_T_KOJIAK.selectNext();
					if (newestaKojiakMap == null)
					{
						adchgDtlMap = db_KK_T_ADCHG_DTL.selectNext();
						continue;
					}
					
					// キャンペーン終了対象のサービス契約番号を取得する
					String[] param5 = new String[4];
					param5[0] = adchgNo;
					param5[1] = chafSkbtNo;
					param5[2] = super.opeDate;
					param5[3] = super.opeDate;
					executeKU_T_SVKEI_KOJIAK_KK_SELECT_028(param5);
					JBSbatCommonDBInterface svkeiKojiakMap = db_KU_T_SVKEI_KOJIAK.selectNext();
					while(svkeiKojiakMap != null)
					{
						// キャンペーン終了対象サービス契約番号リスト
						cpEndTgSvcKeiNoList.add(svkeiKojiakMap.getString(JBSbatKU_T_SVKEI_KOJIAK.SVC_KEI_NO));
						svkeiKojiakMap = db_KU_T_SVKEI_KOJIAK.selectNext();
					}
				}
				
				adchgDtlMap = db_KK_T_ADCHG_DTL.selectNext();
			}
			
			// キャンペーン終了対象サービス契約番号リストの件数分、処理を行う
			for (String svcKeiNo : cpEndTgSvcKeiNoList)
			{
				// サービス契約番号に紐づく終了対象の割引サービス契約情報を取得する
				String[] param6 = new String[3];
				param6[0] = "";
				param6[1] = super.opeDate;
				param6[2] = svcKeiNo;
				executeKK_T_WRISVC_TG_KEI_KK_SELECT_064(param6);
				JBSbatCommonDBInterface wrisvcTgKeiMap = db_KK_T_WRISVC_TG_KEI.selectNext();
				if (wrisvcTgKeiMap == null)
				{
					continue;
				}
				
				// 申込明細番号を取得する
				String mskmDtlNo = null;
				String[] param7 = new String[2];
				param7[0] = svcKeiNo;
				param7[1] = super.opeDate;
				executeKK_T_SVC_KEI_KK_SELECT_376(param7);
				JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
				if (svcKeiMap != null)
				{
					mskmDtlNo = svcKeiMap.getString(JBSbatKK_T_SVC_KEI.MSKM_DTL_NO);
				}
				
				// 表示用キャンペーンコードリスト
				List<String> dspCampaignCdList = new ArrayList<String>(); 
				
				// 割引サービス契約情報の件数分、処理を行う
				while(wrisvcTgKeiMap != null)
				{
					// 割引サービス契約のPK検索を行う
					String[] param8 = new String[2];
					param8[0] = wrisvcTgKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
					param8[1] = wrisvcTgKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.GENE_ADD_DTM);
					JBSbatCommonDBInterface wribSvcKeiMapCrnt = executeKK_T_WRIB_SVC_KEI_PKSELECT(param8);
					if (wribSvcKeiMapCrnt != null)
					{
						// 割引サービス契約ステータス
						String wribSvcKeiStat = wrisvcTgKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT);
						
						// 割引サービスコード
						String wribSvcCd = wrisvcTgKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD);
						
						if (!dspCampaignCdList.contains(endTgWribSvcInfoMap.get(wribSvcCd)))
						{
							dspCampaignCdList.add(endTgWribSvcInfoMap.get(wribSvcCd));
						}
						
						// 割引サービス契約ステータスが"010"(受付済)の場合
						if (JBSbatKKConst.WRIB_SVC_KEI_STAT_UK_ZUMI.equals(wribSvcKeiStat))
						{
							// 割引サービス契約のキャンセルを行う
							insertWribSvcKeiCncl(wribSvcKeiMapCrnt, mskmDtlNo);
						}
						// 割引サービス契約ステータスが"100"(サービス提供中)の場合
						else if (JBSbatKKConst.WRIB_SVC_KEI_STAT_KEI.equals(wribSvcKeiStat))
						{
							// 割引サービス契約の解約を行う
							insertWribSvcKeiDsl(wribSvcKeiMapCrnt, adchgFixYmd, mskmDtlNo);
							
							// 割引サービス契約番号に紐づく解約対象の割引サービス契約内訳情報を取得する
							String[] param9 = new String[1];
							param9[0] = wrisvcTgKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
							executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_024(param9);
							JBSbatCommonDBInterface wrisvcKeiUcwkMap = db_KK_T_WRISVC_KEI_UCWK.selectNext();
							while(wrisvcKeiUcwkMap != null)
							{
								// 割引サービス契約内訳のPK検索を行う
								String[] param10 = new String[3];
								param10[0] = wrisvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO);
								param10[1] = wrisvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO);
								param10[2] = wrisvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.GENE_ADD_DTM);
								JBSbatCommonDBInterface wrisvcKeiUcwkMapCrnt = executeKK_T_WRISVC_KEI_UCWK_PKSELECT(param10);
								if (wrisvcKeiUcwkMapCrnt != null)
								{
									// 割引サービス契約内訳の解約を行う
									insertWrisvcKeiUcwkDsl(wrisvcKeiUcwkMapCrnt, adchgFixYmd);
								}
								
								wrisvcKeiUcwkMap = db_KK_T_WRISVC_KEI_UCWK.selectNext();
							}
						}
					}
					
					wrisvcTgKeiMap = db_KK_T_WRISVC_TG_KEI.selectNext();
				}
				
				if (dspCampaignCdList.size() > 0)
				{
					// 進捗特記事項1編集用
					StringBuffer sbPrgTkjk1 = new StringBuffer();
					sbPrgTkjk1.append(PRG_TKJK_1_START);
					for(int i = 0; i < dspCampaignCdList.size(); i++)
					{
						if(i != 0)
						{
							sbPrgTkjk1.append(JKKBatConst.S_HALF_SLASH);
						}
						sbPrgTkjk1.append(dspCampaignCdList.get(i));
					}
					sbPrgTkjk1.append(PRG_TKJK_1_END);
					String prgTkjk1 = sbPrgTkjk1.toString();
					
					// 進捗特記事項1の最大バイト数を超過する場合
					if (prgTkjk1.getBytes(JKKBatConst.SJIS).length > 256)
					{
						prgTkjk1 = JKKStringUtil.subStringByte(prgTkjk1, 256);
					}
					
					// 進捗の登録を行う
					insertPrg(svcKeiNo, mskmDtlNo, prgTkjk1);
				}
			}
		}
		
		// 編集したSQLを元に戻す(割引サービス対象契約)
		db_KK_T_WRISVC_TG_KEI.setSqlMap("KK_SELECT_064", wrisvcTgKeiSqlBf);
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_ADCHG.close();
		db_KK_T_ADCHG_DTL.close();
		db_KU_T_KOJIAK.close();
		db_KU_T_SVKEI_KOJIAK.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_T_WRIB_SVC_KEI.close();
		db_KK_T_WRISVC_KEI_UCWK.close();
		db_KK_T_PRG.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// 共通部品用
		stmt.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_SELECT_030)で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_KK_SELECT_030(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_KK_SELECT_030);
	}

	/**
	 * 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_ADCHG_DTL_KK_SELECT_055(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_055);
	}

	/**
	 * SQLKEY(KK_SELECT_049)で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_049(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_049);
	}

	/**
	 * SQLKEY(KK_SELECT_028)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	住所変更番号
	 *		 	工事案件番号
	 *		 	サービス契約＿工事案件適用開始年月日
	 *		 	サービス契約＿工事案件適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKU_T_SVKEI_KOJIAK_KK_SELECT_028(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_KU_T_SVKEI_KOJIAK.selectBySqlDefine(paramList, KU_T_SVKEI_KOJIAK_KK_SELECT_028);
	}

	/**
	 * SQLKEY(KK_SELECT_376)で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_376(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_376);
	}

	/**
	 * SQLKEY(KK_SELECT_064)で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_064(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		for (String str : endTgWribSvcCdList)
		{
			paramList.setValue(str);
		}
		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_064);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	WRIB_SVC_KEI_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_WRIB_SVC_KEI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("WRIB_SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_WRIB_SVC_KEI.selectByPrimaryKeysForUpdateWait(whereMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	割引サービス契約ステータス				WRIB_SVC_KEI_STAT
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	割引サービスコード				WRIB_SVC_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金プランコード				PPLAN_CD
	 *		 	サービス利用開始希望年月日				SVC_USE_STA_KIBO_YMD
	 *		 	予約適用開始希望年月日				RSV_TSTA_KIBO_YMD
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	照査年月日				SHOSA_YMD
	 *		 	照査取消年月日				SHOSA_CL_YMD
	 *		 	予約適用年月日				RSV_APLY_YMD
	 *		 	予約取消年月日				RSV_CL_YMD
	 *		 	予約適用コード				RSV_APLY_CD
	 *		 	即時適用フラグ				APLY_JUN
	 *		 	プラン開始年月日				PLAN_STAYMD
	 *		 	プラン終了年月日				PLAN_ENDYMD
	 *		 	プラン課金開始年月日				PLAN_CHRG_STAYMD
	 *		 	プラン課金終了年月日				PLAN_CHRG_ENDYMD
	 *		 	プラン終了種別コード				PLAN_END_SBT_CD
	 *		 	サービスキャンセル年月日				SVC_CANCEL_YMD
	 *		 	サービスキャンセル理由コード				SVC_CANCEL_RSN_CD
	 *		 	サービス開始年月日				SVC_STA_YMD
	 *		 	サービス課金開始年月日				SVC_CHRG_STAYMD
	 *		 	サービス終了年月日				SVC_ENDYMD
	 *		 	サービス課金終了年月日				SVC_CHRG_ENDYMD
	 *		 	サービス解約年月日				SVC_DSL_YMD
	 *		 	サービス解約理由コード				SVC_DLRE_CD
	 *		 	サービス解約理由メモ				SVC_DLRE_MEMO
	 *		 	サービス解約手続完了フラグ				SVC_DSL_TTDKI_FIN_FLG
	 *		 	回復年月日				KAIHK_YMD
	 *		 	サービスキャンセル取消年月日				SVC_CANCEL_CL_YMD
	 *		 	サービス解約取消年月日				SVC_DSL_CL_YMD
	 *		 	課金開始年月日補正有無				CHRG_STA_YMD_HOSEI_UM
	 *		 	審査結果送信コード				SKEKKA_SEND_CD
	 *		 	違約金発生コード				PNLTY_HASSEI_CD
	 *		 	異動区分				IDO_DIV
	 *		 	照査解約完了コード				SHOSA_DSL_FIN_CD
	 *		 	契約締結年月日				KEI_CNC_YMD
	 *		 	グループコード				GRP_CD
	 *		 	紹介コード				INTR_CD
	 *		 	申込起算年月日				MSKM_KISAN_YMD
	 *		 	割引登録契機コード				WRIB_ADD_OPTY_CD
	 *		 	割引解約キャンセル契機コード				WRIB_DSL_CNCL_OPTY_CD
	 *		 	割引サービス契約自動継続識別コード				WRIB_SVC_KEI_AT_KEIZK_SKCD
	 *		 	割引額算出基準年月日				WRIB_AMNT_SNST_STDARDYMD
	 *		 	割引課金開始月指定コード				WRIB_CHRG_STA_MON_STI_CD
	 *		 	割引登録年月日				WRIB_ADD_YMD
	 *		 	割引対象契約サービス休止年月日				WRTGKEI_SVC_PAUSE_YMD
	 *		 	割引対象契約サービス休止解除年月日				WRTGKEI_SVC_PAUSE_RLS_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRIB_SVC_KEI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("WRIB_SVC_KEI_STAT", setParam[2]);
		setMap.setValue("SYSID", setParam[3]);
		setMap.setValue("WRIB_SVC_CD", setParam[4]);
		setMap.setValue("PCRS_CD", setParam[5]);
		setMap.setValue("PPLAN_CD", setParam[6]);
		setMap.setValue("SVC_USE_STA_KIBO_YMD", setParam[7]);
		setMap.setValue("RSV_TSTA_KIBO_YMD", setParam[8]);
		setMap.setValue("MSKM_DTL_NO", setParam[9]);
		setMap.setValue("SHOSA_YMD", setParam[10]);
		setMap.setValue("SHOSA_CL_YMD", setParam[11]);
		setMap.setValue("RSV_APLY_YMD", setParam[12]);
		setMap.setValue("RSV_CL_YMD", setParam[13]);
		setMap.setValue("RSV_APLY_CD", setParam[14]);
		setMap.setValue("APLY_JUN", setParam[15]);
		setMap.setValue("PLAN_STAYMD", setParam[16]);
		setMap.setValue("PLAN_ENDYMD", setParam[17]);
		setMap.setValue("PLAN_CHRG_STAYMD", setParam[18]);
		setMap.setValue("PLAN_CHRG_ENDYMD", setParam[19]);
		setMap.setValue("PLAN_END_SBT_CD", setParam[20]);
		setMap.setValue("SVC_CANCEL_YMD", setParam[21]);
		setMap.setValue("SVC_CANCEL_RSN_CD", setParam[22]);
		setMap.setValue("SVC_STA_YMD", setParam[23]);
		setMap.setValue("SVC_CHRG_STAYMD", setParam[24]);
		setMap.setValue("SVC_ENDYMD", setParam[25]);
		setMap.setValue("SVC_CHRG_ENDYMD", setParam[26]);
		setMap.setValue("SVC_DSL_YMD", setParam[27]);
		setMap.setValue("SVC_DLRE_CD", setParam[28]);
		setMap.setValue("SVC_DLRE_MEMO", setParam[29]);
		setMap.setValue("SVC_DSL_TTDKI_FIN_FLG", setParam[30]);
		setMap.setValue("KAIHK_YMD", setParam[31]);
		setMap.setValue("SVC_CANCEL_CL_YMD", setParam[32]);
		setMap.setValue("SVC_DSL_CL_YMD", setParam[33]);
		setMap.setValue("CHRG_STA_YMD_HOSEI_UM", setParam[34]);
		setMap.setValue("SKEKKA_SEND_CD", setParam[35]);
		setMap.setValue("PNLTY_HASSEI_CD", setParam[36]);
		setMap.setValue("IDO_DIV", setParam[37]);
		setMap.setValue("SHOSA_DSL_FIN_CD", setParam[38]);
		setMap.setValue("KEI_CNC_YMD", setParam[39]);
		setMap.setValue("GRP_CD", setParam[40]);
		setMap.setValue("INTR_CD", setParam[41]);
		setMap.setValue("MSKM_KISAN_YMD", setParam[42]);
		setMap.setValue("WRIB_ADD_OPTY_CD", setParam[43]);
		setMap.setValue("WRIB_DSL_CNCL_OPTY_CD", setParam[44]);
		setMap.setValue("WRIB_SVC_KEI_AT_KEIZK_SKCD", setParam[45]);
		setMap.setValue("WRIB_AMNT_SNST_STDARDYMD", setParam[46]);
		setMap.setValue("WRIB_CHRG_STA_MON_STI_CD", setParam[47]);
		setMap.setValue("WRIB_ADD_YMD", setParam[48]);
		setMap.setValue("WRTGKEI_SVC_PAUSE_YMD", setParam[49]);
		setMap.setValue("WRTGKEI_SVC_PAUSE_RLS_YMD", setParam[50]);
		setMap.setValue("ADD_DTM", setParam[51]);
		setMap.setValue("ADD_OPEACNT", setParam[52]);
		setMap.setValue("UPD_DTM", setParam[53]);
		setMap.setValue("UPD_OPEACNT", setParam[54]);
		setMap.setValue("DEL_DTM", setParam[55]);
		setMap.setValue("DEL_OPEACNT", setParam[56]);
		setMap.setValue("MK_FLG", setParam[57]);
		setMap.setValue("ADD_UNYO_YMD", setParam[58]);
		setMap.setValue("ADD_TRN_ID", setParam[59]);
		setMap.setValue("UPD_UNYO_YMD", setParam[60]);
		setMap.setValue("UPD_TRN_ID", setParam[61]);
		setMap.setValue("DEL_UNYO_YMD", setParam[62]);
		setMap.setValue("DEL_TRN_ID", setParam[63]);
	
		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.insertByPrimaryKeys(setMap);
	}

	/**
	 * SQLKEY(KK_SELECT_024)で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_KEI_UCWK_KK_SELECT_024(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_WRISVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_WRISVC_KEI_UCWK_KK_SELECT_024);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	WRIB_SVC_KEI_NO
	 *		 	WRIB_SVC_KEI_UCWK_NO
	 *		 	GENE_ADD_DTM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_WRISVC_KEI_UCWK_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("WRIB_SVC_KEI_NO", whereParam[0]);
		whereMap.setValue("WRIB_SVC_KEI_UCWK_NO", whereParam[1]);
		whereMap.setValue("GENE_ADD_DTM", whereParam[2]);

		// DBアクセスを実行します
		return db_KK_T_WRISVC_KEI_UCWK.selectByPrimaryKeysForUpdateWait(whereMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	割引サービス契約内訳番号				WRIB_SVC_KEI_UCWK_NO
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	割引サービス契約内訳ステータス				WRIB_SVC_KEI_UCWK_STAT
	 *		 	割引サービス詳細コード				WRIB_SVC_DTL_CD
	 *		 	割引適用回数				WRIB_APLY_CNT
	 *		 	サービス課金開始年月日				SVC_CHRG_STAYMD
	 *		 	サービス課金終了年月日				SVC_CHRG_ENDYMD
	 *		 	課金開始年月日補正有無				CHRG_STA_YMD_HOSEI_UM
	 *		 	初回割引適用年月日				FIRST_WRIB_APLY_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRISVC_KEI_UCWK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[0]);
		setMap.setValue("WRIB_SVC_KEI_UCWK_NO", setParam[1]);
		setMap.setValue("GENE_ADD_DTM", setParam[2]);
		setMap.setValue("WRIB_SVC_KEI_UCWK_STAT", setParam[3]);
		setMap.setValue("WRIB_SVC_DTL_CD", setParam[4]);
		setMap.setValue("WRIB_APLY_CNT", setParam[5]);
		setMap.setValue("SVC_CHRG_STAYMD", setParam[6]);
		setMap.setValue("SVC_CHRG_ENDYMD", setParam[7]);
		setMap.setValue("CHRG_STA_YMD_HOSEI_UM", setParam[8]);
		setMap.setValue("FIRST_WRIB_APLY_YMD", setParam[9]);
		setMap.setValue("ADD_DTM", setParam[10]);
		setMap.setValue("ADD_OPEACNT", setParam[11]);
		setMap.setValue("UPD_DTM", setParam[12]);
		setMap.setValue("UPD_OPEACNT", setParam[13]);
		setMap.setValue("DEL_DTM", setParam[14]);
		setMap.setValue("DEL_OPEACNT", setParam[15]);
		setMap.setValue("MK_FLG", setParam[16]);
		setMap.setValue("ADD_UNYO_YMD", setParam[17]);
		setMap.setValue("ADD_TRN_ID", setParam[18]);
		setMap.setValue("UPD_UNYO_YMD", setParam[19]);
		setMap.setValue("UPD_TRN_ID", setParam[20]);
		setMap.setValue("DEL_UNYO_YMD", setParam[21]);
		setMap.setValue("DEL_TRN_ID", setParam[22]);
	
		// DBアクセスを実行します
		db_KK_T_WRISVC_KEI_UCWK.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	進捗番号				PRG_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	請求方法番号（口座）				SEIKY_WAY_NO_KOZA
	 *		 	請求方法番号（クレジットカード）				SEIKY_WAY_NO_CRECARD
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約内訳番号				SVC_KEI_UCWK_NO
	 *		 	サービス契約回線内訳番号				SVC_KEI_KAISEN_UCWK_NO
	 *		 	機器提供サービス契約番号				KKTK_SVC_KEI_NO
	 *		 	オプションサービス契約番号				OP_SVC_KEI_NO
	 *		 	請求オプションサービス契約番号				SEIOPSVC_KEI_NO
	 *		 	サブオプションサービス契約番号				SBOP_SVC_KEI_NO
	 *		 	割引サービス契約番号				WRIB_SVC_KEI_NO
	 *		 	異動区分				IDO_DIV
	 *		 	異動年月日時分秒				IDO_DTM
	 *		 	進捗ステータス				PRG_STAT
	 *		 	進捗年月日時分秒				PRG_DTM
	 *		 	進捗メモ				PRG_MEMO
	 *		 	進捗特記事項１				PRG_TKJK_1
	 *		 	進捗特記事項２				PRG_TKJK_2
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_PRG_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRG_NO", setParam[0]);
		setMap.setValue("MSKM_DTL_NO", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("SEIKY_WAY_NO_KOZA", setParam[3]);
		setMap.setValue("SEIKY_WAY_NO_CRECARD", setParam[4]);
		setMap.setValue("SVC_KEI_NO", setParam[5]);
		setMap.setValue("SVC_KEI_UCWK_NO", setParam[6]);
		setMap.setValue("SVC_KEI_KAISEN_UCWK_NO", setParam[7]);
		setMap.setValue("KKTK_SVC_KEI_NO", setParam[8]);
		setMap.setValue("OP_SVC_KEI_NO", setParam[9]);
		setMap.setValue("SEIOPSVC_KEI_NO", setParam[10]);
		setMap.setValue("SBOP_SVC_KEI_NO", setParam[11]);
		setMap.setValue("WRIB_SVC_KEI_NO", setParam[12]);
		setMap.setValue("IDO_DIV", setParam[13]);
		setMap.setValue("IDO_DTM", setParam[14]);
		setMap.setValue("PRG_STAT", setParam[15]);
		setMap.setValue("PRG_DTM", setParam[16]);
		setMap.setValue("PRG_MEMO", setParam[17]);
		setMap.setValue("PRG_TKJK_1", setParam[18]);
		setMap.setValue("PRG_TKJK_2", setParam[19]);
		setMap.setValue("ADD_DTM", setParam[20]);
		setMap.setValue("ADD_OPEACNT", setParam[21]);
		setMap.setValue("UPD_DTM", setParam[22]);
		setMap.setValue("UPD_OPEACNT", setParam[23]);
		setMap.setValue("DEL_DTM", setParam[24]);
		setMap.setValue("DEL_OPEACNT", setParam[25]);
		setMap.setValue("MK_FLG", setParam[26]);
		setMap.setValue("ADD_UNYO_YMD", setParam[27]);
		setMap.setValue("ADD_TRN_ID", setParam[28]);
		setMap.setValue("UPD_UNYO_YMD", setParam[29]);
		setMap.setValue("UPD_TRN_ID", setParam[30]);
		setMap.setValue("DEL_UNYO_YMD", setParam[31]);
		setMap.setValue("DEL_TRN_ID", setParam[32]);
	
		// DBアクセスを実行します
		db_KK_T_PRG.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * SQL文の加工を実施します。
	 * IN句の検索対象をリストのサイズ分、カンマ区切りの()閉じに加工します。 <br>
	 * <p>
	 * @param strSql 元のSQL
	 * @param selectList 検索対象リスト
	 * @param editBfSql 置換対象文字列
	 * @param editAfSql 置換後ベース文字列
	 * @return editSql 加工後のSQL
	 */
	private String getEditSQL(String strSql, List<String> selectList, String editBfSql, String editAfSql)
	{
		StringBuilder sb = new StringBuilder();
		
		sb.append(JBSbatKKConst.STR_STA_KAKKO);
		for(int i = 0; i < selectList.size(); i++)
		{
			if(i != 0)
			{
				sb.append(JBSbatKKConst.STR_COMMA);
			}
			sb.append(JBSbatKKConst.STR_BIND);
		}
		sb.append(JBSbatKKConst.STR_END_KAKKO);
		
		String editSql = strSql.replace(editBfSql, editAfSql + sb.toString());
		return editSql;
	}
	
	/**
	 * 割引サービス契約のキャンセルを行います。 <br>
	 * <p>
	 * @param wribSvcKeiMapCrnt 割引サービス契約情報
	 * @param mskmDtlNo 申込明細番号
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void insertWribSvcKeiCncl(JBSbatCommonDBInterface wribSvcKeiMapCrnt, String mskmDtlNo) throws Exception 
	{
		String[] setParam = new String[64];
		
		// システム日時を取得する
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
		
		// 割引サービス契約番号
		setParam[0] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
		// 世代登録年月日時分秒
		setParam[1] = sysDateTimeStamp;
		// 割引サービス契約ステータス
		setParam[2] = JBSbatKKConst.WRIB_SVC_KEI_STAT_CNCL_ZM;
		// SYSID
		setParam[3] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SYSID);
		// 割引サービスコード
		setParam[4] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD);
		// 料金コースコード
		setParam[5] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD);
		// 料金プランコード
		setParam[6] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD);
		// サービス利用開始希望年月日
		setParam[7] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD);
		// 予約適用開始希望年月日
		setParam[8] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD);
		// 申込明細番号
		if (!JKKStringUtil.isNullBlank(mskmDtlNo))
		{
			setParam[9] = mskmDtlNo;
		}
		else
		{
			setParam[9] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO);
		}
		// 照査年月日
		setParam[10] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD);
		// 照査取消年月日
		setParam[11] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD);
		// 予約適用年月日
		setParam[12] = super.opeDate;
		// 予約取消年月日
		setParam[13] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD);
		// 予約適用コード
		setParam[14] = JBSbatKKConst.RSV_APLY_CD_FIX;
		// 即時適用フラグ
		setParam[15] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN);
		// プラン開始年月日
		setParam[16] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD);
		// プラン終了年月日
		setParam[17] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD);
		// プラン課金開始年月日
		setParam[18] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD);
		// プラン課金終了年月日
		setParam[19] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_ENDYMD);
		// プラン終了種別コード
		setParam[20] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD);
		// サービスキャンセル年月日
		setParam[21] = super.opeDate;
		// サービスキャンセル理由コード
		setParam[22] = JKKStrConst.CD01390_CL_OTHER;
		// サービス開始年月日
		setParam[23] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD);
		// サービス課金開始年月日
		setParam[24] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD);
		// サービス終了年月日
		setParam[25] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD);
		// サービス課金終了年月日
		setParam[26] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_ENDYMD);
		// サービス解約年月日
		setParam[27] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD);
		// サービス解約理由コード
		setParam[28] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD);
		// サービス解約理由メモ
		setParam[29] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO);
		// サービス解約手続完了フラグ
		setParam[30] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG);
		// 回復年月日
		setParam[31] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD);
		// サービスキャンセル取消年月日
		setParam[32] = "";
		// サービス解約取消年月日
		setParam[33] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD);
		// 課金開始年月日補正有無
		setParam[34] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM);
		// 審査結果送信コード
		setParam[35] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD);
		// 違約金発生コード
		setParam[36] = JKKStrConst.CD01375_PNLTY_NASHI;
		// 異動区分
		setParam[37] = JKKStrConst.CD00576_ADCHG_FIX;
		// 照査解約完了コード
		setParam[38] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD);
		// 契約締結年月日
		setParam[39] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD);
		// グループコード
		setParam[40] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD);
		// 紹介コード
		setParam[41] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD);
		// 申込起算年月日
		setParam[42] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD);
		// 割引登録契機コード
		setParam[43] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD);
		// 割引解約キャンセル契機コード
		setParam[44] = JBSbatKKConst.CD00874_DCHSKMST_ADD_OPTY_CD_1;
		// 割引サービス契約自動継続識別コード
		setParam[45] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD);
		// 割引額算出基準年月日
		setParam[46] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD);
		// 割引課金開始月指定コード
		setParam[47] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD);
		// 割引登録年月日
		setParam[48] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD);
		// 割引対象契約サービス休止年月日
		setParam[49] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD);
		// 割引対象契約サービス休止解除年月日
		setParam[50] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD);
		// 登録年月日時分秒
		setParam[51] = "";
		// 登録オペレータアカウント
		setParam[52] = "";
		// 更新年月日時分秒
		setParam[53] = "";
		// 更新オペレータアカウント
		setParam[54] = "";
		// 削除年月日時分秒
		setParam[55] = "";
		// 削除オペレータアカウント
		setParam[56] = "";
		// 無効フラグ
		setParam[57] = "";
		// 登録運用年月日
		setParam[58] = "";
		// 登録処理ID
		setParam[59] = "";
		// 更新運用年月日
		setParam[60] = "";
		// 更新処理ID
		setParam[61] = "";
		// 削除運用年月日
		setParam[62] = "";
		// 削除処理ID
		setParam[63] = "";
		
		executeKK_T_WRIB_SVC_KEI_PKINSERT(setParam);
	}
	
	/**
	 * 割引サービス契約の解約を行います。 <br>
	 * <p>
	 * @param wribSvcKeiMapCrnt 割引サービス契約情報
	 * @param adchgFixYmd 住所変更確定日
	 * @param mskmDtlNo 申込明細番号
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void insertWribSvcKeiDsl(JBSbatCommonDBInterface wribSvcKeiMapCrnt, String adchgFixYmd, String mskmDtlNo) throws Exception 
	{
		String[] setParam = new String[64];
		
		// システム日時を取得する
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
		
		// 住所変更確定日の前日を取得する
		String adchgFixYmdPre = JBSbatDateUtil.adjustDate(adchgFixYmd, -1);
		// 住所変更確定日の月末日を取得する
		String adchgFixYm = adchgFixYmd.substring(0, 6);
		String adchgFixYmdEnd = adchgFixYm + JBSbatDateUtil.getEndOfMonth(adchgFixYm);
		
		// 割引サービス契約番号
		setParam[0] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
		// 世代登録年月日時分秒
		setParam[1] = sysDateTimeStamp;
		// 割引サービス契約ステータス
		setParam[2] = JBSbatKKConst.WRIB_SVC_KEI_STAT_DSL_ZUMI;
		// SYSID
		setParam[3] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SYSID);
		// 割引サービスコード
		setParam[4] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD);
		// 料金コースコード
		setParam[5] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD);
		// 料金プランコード
		setParam[6] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD);
		// サービス利用開始希望年月日
		setParam[7] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD);
		// 予約適用開始希望年月日
		setParam[8] = "";
		// 申込明細番号
		if (!JKKStringUtil.isNullBlank(mskmDtlNo))
		{
			setParam[9] = mskmDtlNo;
		}
		else
		{
			setParam[9] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO);
		}
		// 照査年月日
		setParam[10] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD);
		// 照査取消年月日
		setParam[11] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD);
		// 予約適用年月日
		setParam[12] = super.opeDate;
		// 予約取消年月日
		setParam[13] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD);
		// 予約適用コード
		setParam[14] = JBSbatKKConst.RSV_APLY_CD_FIX;
		// 即時適用フラグ
		setParam[15] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN);
		// プラン開始年月日
		setParam[16] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD);
		// プラン終了年月日
		setParam[17] = adchgFixYmdPre;
		// プラン課金開始年月日
		setParam[18] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD);
		// プラン課金終了年月日
		setParam[19] = adchgFixYmdEnd;
		// プラン終了種別コード
		setParam[20] = JBSbatKKConst.PLAN_END_SBT_CD_MSDDSL;
		// サービスキャンセル年月日
		setParam[21] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD);
		// サービスキャンセル理由コード
		setParam[22] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD);
		// サービス開始年月日
		setParam[23] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD);
		// サービス課金開始年月日
		setParam[24] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD);
		// サービス終了年月日
		setParam[25] = adchgFixYmdPre;
		// サービス課金終了年月日
		setParam[26] = adchgFixYmdEnd;
		// サービス解約年月日
		setParam[27] = super.opeDate;
		// サービス解約理由コード
		setParam[28] = JBSbatKKConst.SVC_DLRE_CD_NORMAL;
		// サービス解約理由メモ
		setParam[29] = "";
		// サービス解約手続完了フラグ
		setParam[30] = "";
		// 回復年月日
		setParam[31] = "";
		// サービスキャンセル取消年月日
		setParam[32] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD);
		// サービス解約取消年月日
		setParam[33] = "";
		// 課金開始年月日補正有無
		setParam[34] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM);
		// 審査結果送信コード
		setParam[35] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD);
		// 違約金発生コード
		setParam[36] = JKKStrConst.CD01375_PNLTY_NASHI;
		// 異動区分
		setParam[37] = JKKStrConst.CD00576_ADCHG_FIX;
		// 照査解約完了コード
		setParam[38] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD);
		// 契約締結年月日
		setParam[39] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD);
		// グループコード
		setParam[40] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD);
		// 紹介コード
		setParam[41] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD);
		// 申込起算年月日
		setParam[42] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD);
		// 割引登録契機コード
		setParam[43] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD);
		// 割引解約キャンセル契機コード
		setParam[44] = JBSbatKKConst.CD00874_DCHSKMST_ADD_OPTY_CD_1;
		// 割引サービス契約自動継続識別コード
		setParam[45] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD);
		// 割引額算出基準年月日
		setParam[46] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD);
		// 割引課金開始月指定コード
		setParam[47] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD);
		// 割引登録年月日
		setParam[48] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD);
		// 割引対象契約サービス休止年月日
		setParam[49] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD);
		// 割引対象契約サービス休止解除年月日
		setParam[50] = wribSvcKeiMapCrnt.getString(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD);
		// 登録年月日時分秒
		setParam[51] = "";
		// 登録オペレータアカウント
		setParam[52] = "";
		// 更新年月日時分秒
		setParam[53] = "";
		// 更新オペレータアカウント
		setParam[54] = "";
		// 削除年月日時分秒
		setParam[55] = "";
		// 削除オペレータアカウント
		setParam[56] = "";
		// 無効フラグ
		setParam[57] = "";
		// 登録運用年月日
		setParam[58] = "";
		// 登録処理ID
		setParam[59] = "";
		// 更新運用年月日
		setParam[60] = "";
		// 更新処理ID
		setParam[61] = "";
		// 削除運用年月日
		setParam[62] = "";
		// 削除処理ID
		setParam[63] = "";
		
		executeKK_T_WRIB_SVC_KEI_PKINSERT(setParam);
	}
	
	/**
	 * 割引サービス契約内訳の解約を行います。 <br>
	 * <p>
	 * @param wrisvcKeiUcwkMapCrnt 割引サービス契約内訳情報
	 * @param adchgFixYmd 住所変更確定日
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void insertWrisvcKeiUcwkDsl(JBSbatCommonDBInterface wrisvcKeiUcwkMapCrnt, String adchgFixYmd) throws Exception 
	{
		String[] setParam = new String[23];
		
		// システム日時を取得する
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
		
		// 住所変更確定日の月末日を取得する
		String adchgFixYm = adchgFixYmd.substring(0, 6);
		String adchgFixYmdEnd = adchgFixYm + JBSbatDateUtil.getEndOfMonth(adchgFixYm);
		
		// 割引サービス契約番号
		setParam[0] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO);
		// 割引サービス契約内訳番号
		setParam[1] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO);
		// 世代登録年月日時分秒
		setParam[2] = sysDateTimeStamp;
		// 割引サービス契約内訳ステータス
		setParam[3] = JBSbatKKConst.CD01389_WRIB_SVC_KEI_UCWK_DSL;
		// 割引サービス詳細コード
		setParam[4] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD);
		// 割引適用回数
		setParam[5] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT);
		// サービス課金開始年月日
		setParam[6] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD);
		// サービス課金終了年月日
		setParam[7] = adchgFixYmdEnd;
		// 課金開始年月日補正有無
		setParam[8] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM);
		// 初回割引適用年月日
		setParam[9] = wrisvcKeiUcwkMapCrnt.getString(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD);
		// 登録年月日時分秒
		setParam[10] = "";
		// 登録オペレータアカウント
		setParam[11] = "";
		// 更新年月日時分秒
		setParam[12] = "";
		// 更新オペレータアカウント
		setParam[13] = "";
		// 削除年月日時分秒
		setParam[14] = "";
		// 削除オペレータアカウント
		setParam[15] = "";
		// 無効フラグ
		setParam[16] = "";
		// 登録運用年月日
		setParam[17] = "";
		// 登録処理ID
		setParam[18] = "";
		// 更新運用年月日
		setParam[19] = "";
		// 更新処理ID
		setParam[20] = "";
		// 削除運用年月日
		setParam[21] = "";
		// 削除処理ID
		setParam[22] = "";
		
		executeKK_T_WRISVC_KEI_UCWK_PKINSERT(setParam);
	}
	
	/**
	 * 進捗の登録を行います。 <br>
	 * <p>
	 * @param svcKeiNo サービス契約番号
	 * @param mskmDtlNo 申込明細番号
	 * @param prgTkjk1 進捗特記事項1
	 * @throws Exception メソッド内で発生した例外全般。
	 */
	private void insertPrg(String svcKeiNo, String mskmDtlNo, String prgTkjk1) throws Exception 
	{
		String[] setParam = new String[33];
		
		// システム日時を取得する
		String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
		
		// 進捗番号
		setParam[0] = JCCBatCommon.getFormatedNextSeq(commonItem, JKKBatConst.SEQ_PRG_NO, "", 12);
		// 申込明細番号
		setParam[1] = mskmDtlNo;
		// 請求契約番号
		setParam[2] = "";
		// 請求方法番号（口座）
		setParam[3] = "";
		// 請求方法番号（クレジットカード）
		setParam[4] = "";
		// サービス契約番号
		setParam[5] = svcKeiNo;
		// サービス契約内訳番号
		setParam[6] = "";
		// サービス契約回線内訳番号
		setParam[7] = "";
		// 機器提供サービス契約番号
		setParam[8] = "";
		// オプションサービス契約番号
		setParam[9] = "";
		// 請求オプションサービス契約番号
		setParam[10] = "";
		// サブオプションサービス契約番号
		setParam[11] = "";
		// 割引サービス契約番号
		setParam[12] = "";
		// 異動区分
		setParam[13] = JKKStrConst.CD00576_ADCHG_FIX;
		// 異動年月日時分秒
		setParam[14] = JKKBatCommon. getIdoDtmMax(commonItem, svcKeiNo, JKKStrConst.CD00576_ADCHG_FIX, stmt);
		// 進捗ステータス
		setParam[15] = JBSbatKKConst.CD00647_PRG_STAT_F051;
		// 進捗年月日時分秒
		setParam[16] = super.opeDate + sysDateTimeStamp.substring(8);
		// 進捗メモ
		setParam[17] = "";
		// 進捗特記事項１
		setParam[18] = prgTkjk1;
		// 進捗特記事項２
		setParam[19] = "";
		// 登録年月日時分秒
		setParam[20] = "";
		// 登録オペレータアカウント
		setParam[21] = "";
		// 更新年月日時分秒
		setParam[22] = "";
		// 更新オペレータアカウント
		setParam[23] = "";
		// 削除年月日時分秒
		setParam[24] = "";
		// 削除オペレータアカウント
		setParam[25] = "";
		// 無効フラグ
		setParam[26] = "";
		// 登録運用年月日
		setParam[27] = "";
		// 登録処理ID
		setParam[28] = "";
		// 更新運用年月日
		setParam[29] = "";
		// 更新処理ID
		setParam[30] = "";
		// 削除運用年月日
		setParam[31] = "";
		// 削除処理ID
		setParam[32] = "";
		
		executeKK_T_PRG_PKINSERT(setParam);
	}
}
