/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKCmpWribAplyIfHanei
*	ソースファイル名	：JBSbatKKCmpWribAplyIfHanei.java
*	作成者				：富士通　
*	作成日				：2011年09月07日
*＜機能概要＞
*　キャンペーン割引適用情報反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/07   富士通		新規作成
*	v4.00.00	2012/08/08   富士通		「課題番号：KAD-2012-0000204」の対応
*	v4.00.01	2012/09/18   富士通		「課題番号：KAD-2012-0000205」の対応
*	v4.00.02	2013/01/31   富士通		「障害番号：ST2-2013-0000352」の対応
*	v4.00.03	2013/02/07   富士通		「障害番号：ST4-2013-0000121」の対応
*	v4.00.04	2013/02/08   富士通		「障害番号：ST2-2013-0000631」の対応
*	v4.00.05	2013/03/05   富士通		「障害番号：ST2-2013-0001190」の対応
*	v4.00.06	2013/03/12   富士通		「障害番号：IT1-2013-0000438」の対応
*	v4.00.07	2013/03/21   富士通		「障害番号：ST3-2013-0000760」の対応
*	v4.00.08	2013/07/23   富士通		 割引登録年月日引継ぎ対応
*	v6.00.00	2013/12/26   富士通		【ST4-2013-0000552】性能改善対応
*	v27.00.00	2016/11/29   富士通		【OM-2016-0002348】
*	v32.00.00	2017/07/07   FJ)江藤	【OM-2017-0000501】プレクラ2ヶ月連続適用
*	v54.00.00	2021/08/27   FJ)森脇	【ANK-4145-00-00】夜間バッチ性能改善対応
*********************************************************************/
package eo.business.service;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.NoSuchElementException;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.common.JPCBatCommon;
import eo.business.util.file.JBSbatKKIFM104;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC_DTL;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC_TANKA;
import eo.business.util.table.JBSbatKK_T_PRG;
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.JBSbatKK_T_WRISVC_TG_KEI;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCCOracleSeqUtil;
import eo.common.util.JKKStringUtil;
import eo.common.util.JPCDateUtil;
import eo.framework.application.JBSbatBatchInvoker;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.log.JBSbatLogUtil;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatDateUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
*料金管理システムが作成したキャンペーン割引適用情報を元に<BR>
*割引サービス契約、割引サービス契約内訳の更新処理を行なう。
* @author 富士通
*/

public class JBSbatKKCmpWribAplyIfHanei extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(割引サービス契約)*/
	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_M_WRIB_SVC_TANKA = "KK_M_WRIB_SVC_TANKA";

	/** テーブル(割引サービス詳細)*/
	private static final String D_TBL_NAME_KK_M_WRIB_SVC_DTL = "KK_M_WRIB_SVC_DTL";

	/** テーブル(割引サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_KEI_UCWK = "KK_T_WRISVC_KEI_UCWK";
	// OM-2017-0000501 2017/07/07 ADD START
	/** テーブル(割引サービス対象契約)*/
	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_PRG = "KK_T_PRG";
	// OM-2017-0000501 2017/07/07 ADD END
	// ANK-4145-00-00 ADD START
	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";
	// ANK-4145-00-00 ADD END
	/** SQL定義キー(KK_SELECT_012)*/
	private static final String KK_T_WRIB_SVC_KEI_KK_SELECT_012 = "KK_SELECT_012";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_M_WRIB_SVC_TANKA_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_M_WRIB_SVC_DTL_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_WRISVC_KEI_UCWK_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_WRISVC_KEI_UCWK_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_004)*/
	private static final String KK_T_WRISVC_KEI_UCWK_KK_SELECT_004 = "KK_SELECT_004";

/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_M_WRIB_SVC_TANKA_KK_SELECT_002  = "KK_SELECT_002";
	
	/** SQL定義キー(KK_SELECT_014)*/
	private static final String KK_T_WRISVC_KEI_UCWK_KK_SELECT_014 = "KK_SELECT_014";
	
/* v4.00.03 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
/* v4.00.07 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_M_WRIB_SVC_TANKA_KK_SELECT_003  = "KK_SELECT_003";
/* v4.00.07 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	// OM-2017-0000501 2017/07/07 ADD START
	/** SQL定義キー(KK_SELECT_057)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_057  = "KK_SELECT_057";
	// OM-2017-0000501 2017/07/07 ADD END
	
	// ANK-4145-00-00 ADD START
	/** SQL定義キー(KK_SELECT_024)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_KK_SELECT_024 = "KK_SELECT_024";
	// ANK-4145-00-00 ADD END
	/** テーブルアクセスクラス(割引サービス契約)*/
	private JBSbatSQLAccess db_KK_T_WRIB_SVC_KEI = null;

	/** テーブルアクセスクラス(割引サービス単価)*/
	private JBSbatSQLAccess db_KK_M_WRIB_SVC_TANKA = null;

	/** テーブルアクセスクラス(割引サービス詳細)*/
	private JBSbatSQLAccess db_KK_M_WRIB_SVC_DTL = null;

	/** テーブルアクセスクラス(割引サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_KEI_UCWK = null;
	// OM-2017-0000501 2017/07/07 ADD START
	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;
	
	/** テーブルアクセスクラス(進捗)*/
	private JBSbatSQLAccess db_KK_T_PRG = null;
	// OM-2017-0000501 2017/07/07 ADD END
	// ANK-4145-00-00 ADD START
	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;
	// ANK-4145-00-00 ADD END
	
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 退避用 割引サービス契約番号 */
	private String keepWribSvcKeiNo = null;
	
	/** 退避用 割引サービス契約情報 */
	private JBSbatCommonDBInterface keepWribSvcKeiMap = null;
	
	/** 退避用 割引サービス契約内訳番号 */
	private String keepWribSvcKeiUcwkNo = null;

// 2013.03.11 Start IT1-2013-0000438
	/** 初回適用フラグ */
	private boolean syokaiTekiyouFlg = false;

	/** 初回適用時終了年月日 */
	private String syokaiTekiyouEndYmd = null;
// 2013.03.11 End   IT1-2013-0000438
	
	// v27.00.00 ADD START
	/** 割引サービス契約 「プラン課金終了年月日」「サービス課金終了年月日」 */
	private String KK0451_ChrgEndYmd = null;
	// v27.00.00 ADD END
	
/*  add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	/** 退避用 割引サービス単価情報（全体） */
	private HashMap<String,HashMap<String, String>> wriTankAll = new HashMap<String,HashMap<String,String>>();
	
/* v4.00.03 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
/* v4.00.07 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/** 退避用 キャンペーン以外の割引サービス単価情報 */
	private HashMap<String, String> wriNotCpTank = new HashMap<String,String>();
/* v4.00.07 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	/** 退避用 割引サービス内訳情報 */
	private HashMap<String,JBSbatCommonDBInterface> keepWriSvcUcwkMap = new HashMap<String,JBSbatCommonDBInterface>();
	
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	// 2013/12/26 ST4-2013-0000552 Add Start
	/** CSV囲い文字(ダブルクォーテーション) */
	private static final String KAKOIMOJI = "\"";

	/** 対象データ項目マップ */
	// 割引サービス契約情報
	private static final HashMap<String, String> WRI_SVC_KEI_INFO_ITEM = new HashMap<String, String>()
	{
		{
			put(String.valueOf(0),JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
			put(String.valueOf(1),JBSbatKK_T_WRIB_SVC_KEI.GENE_ADD_DTM);
			put(String.valueOf(2),JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT);
			put(String.valueOf(3),JBSbatKK_T_WRIB_SVC_KEI.SYSID);
			put(String.valueOf(4),JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD);
			put(String.valueOf(5),JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD);
			put(String.valueOf(6),JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD);
			put(String.valueOf(7),JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD);
			put(String.valueOf(8),JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD);
			put(String.valueOf(9),JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO);
			put(String.valueOf(10),JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD);
			put(String.valueOf(11),JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD);
			put(String.valueOf(12),JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_YMD);
			put(String.valueOf(13),JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD);
			put(String.valueOf(14),JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_CD);
			put(String.valueOf(15),JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN);
			put(String.valueOf(16),JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD);
			put(String.valueOf(17),JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD);
			put(String.valueOf(18),JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD);
			put(String.valueOf(19),JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_ENDYMD);
			put(String.valueOf(20),JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD);
			put(String.valueOf(21),JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD);
			put(String.valueOf(22),JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD);
			put(String.valueOf(23),JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD);
			put(String.valueOf(24),JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD);
			put(String.valueOf(25),JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD);
			put(String.valueOf(26),JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_ENDYMD);
			put(String.valueOf(27),JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD);
			put(String.valueOf(28),JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD);
			put(String.valueOf(29),JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO);
			put(String.valueOf(30),JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG);
			put(String.valueOf(31),JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD);
			put(String.valueOf(32),JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD);
			put(String.valueOf(33),JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD);
			put(String.valueOf(34),JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM);
			put(String.valueOf(35),JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD);
			put(String.valueOf(36),JBSbatKK_T_WRIB_SVC_KEI.PNLTY_HASSEI_CD);
			put(String.valueOf(37),JBSbatKK_T_WRIB_SVC_KEI.IDO_DIV);
			put(String.valueOf(38),JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD);
			put(String.valueOf(39),JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD);
			put(String.valueOf(40),JBSbatKK_T_WRIB_SVC_KEI.GRP_CD);
			put(String.valueOf(41),JBSbatKK_T_WRIB_SVC_KEI.INTR_CD);
			put(String.valueOf(42),JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD);
			put(String.valueOf(43),JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD);
			put(String.valueOf(44),JBSbatKK_T_WRIB_SVC_KEI.WRIB_DSL_CNCL_OPTY_CD);
			put(String.valueOf(45),JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD);
			put(String.valueOf(46),JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD);
			put(String.valueOf(47),JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD);
			put(String.valueOf(48),JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD);
			put(String.valueOf(49),JBSbatKK_T_WRIB_SVC_KEI.ADD_DTM);
			put(String.valueOf(50),JBSbatKK_T_WRIB_SVC_KEI.ADD_OPEACNT);
			put(String.valueOf(51),JBSbatKK_T_WRIB_SVC_KEI.UPD_DTM);
			put(String.valueOf(52),JBSbatKK_T_WRIB_SVC_KEI.UPD_OPEACNT);
			put(String.valueOf(53),JBSbatKK_T_WRIB_SVC_KEI.DEL_DTM);
			put(String.valueOf(54),JBSbatKK_T_WRIB_SVC_KEI.DEL_OPEACNT);
			put(String.valueOf(55),JBSbatKK_T_WRIB_SVC_KEI.MK_FLG);
			put(String.valueOf(56),JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD);
			put(String.valueOf(57),JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD);
			put(String.valueOf(58),JBSbatKK_M_WRIB_SVC.WRIB_SVC_SBT_CD);
		}
	};

	// 割引サービス詳細情報
	private static final HashMap<String, String> WRI_SVC_DTL_INFO_ITEM = new HashMap<String, String>()
	{
		{
			put(String.valueOf(0),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD);
			put(String.valueOf(1),JBSbatKK_M_WRIB_SVC_DTL.GENE_ADD_DTM);
			put(String.valueOf(2),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_CD);
			put(String.valueOf(3),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SBT_CD);
			put(String.valueOf(4),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_SBT_CD);
			put(String.valueOf(5),JBSbatKK_M_WRIB_SVC_DTL.SETTE_LV_SKCD);
			put(String.valueOf(6),JBSbatKK_M_WRIB_SVC_DTL.SVC_CD);
			put(String.valueOf(7),JBSbatKK_M_WRIB_SVC_DTL.EO_BRAND_CD);
			put(String.valueOf(8),JBSbatKK_M_WRIB_SVC_DTL.PRC_GRP_CD);
			put(String.valueOf(9),JBSbatKK_M_WRIB_SVC_DTL.PCRS_CD);
			put(String.valueOf(10),JBSbatKK_M_WRIB_SVC_DTL.PPLAN_CD);
			put(String.valueOf(11),JBSbatKK_M_WRIB_SVC_DTL.KKTK_SVC_CD);
			put(String.valueOf(12),JBSbatKK_M_WRIB_SVC_DTL.OP_SVC_CD);
			put(String.valueOf(13),JBSbatKK_M_WRIB_SVC_DTL.SBOP_SVC_CD);
			put(String.valueOf(14),JBSbatKK_M_WRIB_SVC_DTL.SEIOPSVC_CD);
			put(String.valueOf(15),JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_STA_CD);
			put(String.valueOf(16),JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_CD);
			put(String.valueOf(17),JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_PRD);
			put(String.valueOf(18),JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_END_CD);
			put(String.valueOf(19),JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD);
			put(String.valueOf(20),JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT);
			put(String.valueOf(21),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_NM);
			put(String.valueOf(22),JBSbatKK_M_WRIB_SVC_DTL.RSV_APLY_YMD);
			put(String.valueOf(23),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TSTAYMD);
			put(String.valueOf(24),JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TENDYMD);
		}
	};

	// 割引サービス契約内訳情報
	private static final HashMap<String, String> WRI_SVC_KEI_UCWK_ITEM = new HashMap<String, String>()
	{
		{
			put(String.valueOf(0),JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO);
			put(String.valueOf(1),JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO);
			put(String.valueOf(2),JBSbatKK_T_WRISVC_KEI_UCWK.GENE_ADD_DTM);
			put(String.valueOf(3),JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT);
			put(String.valueOf(4),JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD);
			put(String.valueOf(5),JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT);
			put(String.valueOf(6),JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD);
			put(String.valueOf(7),JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD);
			put(String.valueOf(8),JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM);
			put(String.valueOf(9),JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD);
			put(String.valueOf(10),JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM);
			put(String.valueOf(11),JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT);
			put(String.valueOf(12),JBSbatKK_T_WRISVC_KEI_UCWK.UPD_DTM);
			put(String.valueOf(13),JBSbatKK_T_WRISVC_KEI_UCWK.UPD_OPEACNT);
			put(String.valueOf(14),JBSbatKK_T_WRISVC_KEI_UCWK.DEL_DTM);
			put(String.valueOf(15),JBSbatKK_T_WRISVC_KEI_UCWK.DEL_OPEACNT);
			put(String.valueOf(16),JBSbatKK_T_WRISVC_KEI_UCWK.MK_FLG);
		}
	};

	/** 割引サービス契約情報（KK_T_WRIB_SVC_KEI_KK_SELECT_012）の代用 */
	private HashMap<String, HashMap<String, String>> wriSvcKeiInfo = new HashMap<String,HashMap<String, String>>();

	/** 割引サービス詳細情報（KK_M_WRIB_SVC_DTL_KK_SELECT_001）の代用 */
	private HashMap<String, HashMap<String, String>> wriSvcDtlInfo = new HashMap<String,HashMap<String, String>>();
	
	/** 割引サービス契約内訳情報（KK_T_WRISVC_KEI_UCWK_KK_SELECT_002）の代用 */
	private HashMap<String, HashMap<String, String>> wriSvcKeiUcwkInfo = new HashMap<String,HashMap<String, String>>();
	// 2013/12/26 ST4-2013-0000552 Add Start
	// OM-2017-0000501 2017/07/07 ADD START
	/** シーケンス定義名(SEQ_PRG_NO)*/
	private static final String SEQ_PRG_NO = "SEQ_PRG_NO";
	// OM-2017-0000501 2017/07/07 ADD END
	
	// ANK-4145-00-00 ADD START
	/** 進捗登録用 割引サービス契約番号 */
	private String addPrgWribSvcKeiNo = null;

	/** 進捗年月日加算日数 */
	private int addNum = 1;

	/** 料金計算日フラグ */
	private boolean prcCalDayFlg = false;
	// ANK-4145-00-00 ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_WRIB_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRIB_SVC_KEI);
		db_KK_M_WRIB_SVC_TANKA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_WRIB_SVC_TANKA);
		db_KK_M_WRIB_SVC_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_M_WRIB_SVC_DTL);
		db_KK_T_WRISVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_KEI_UCWK);
		// OM-2017-0000501 2017/07/07 ADD START
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		db_KK_T_PRG = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_PRG);
		// OM-2017-0000501 2017/07/07 ADD END
		// ANK-4145-00-00 ADD START
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		// ANK-4145-00-00 ADD END
		
		// 2013/12/26 ST4-2013-0000552 Add Start
		// フリー項目取得
		String[] freeItem = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
		String KK0451Pass = freeItem[0];
		String KK2371Pass = freeItem[1];
		String KK2361_001Pass = freeItem[2];
		
		// 割引サービス契約情報を作成する
		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(KK0451Pass)));
		String lineData = br.readLine();
		while(lineData != null)
		{
			// リストに格納された一行分のファイルデータを格納
			HashMap<String, String> recordMap = convNonQuateStringToList_002(commonItem, lineData);
			
			// リストに追加
			wriSvcKeiInfo.put(recordMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO),recordMap);

			// CSVファイル一行読込み
			lineData = br.readLine();
		}
		
		// 割引サービス詳細情報を作成する
		br = new BufferedReader(new InputStreamReader(new FileInputStream(KK2371Pass)));
		lineData = br.readLine();
		while(lineData != null)
		{
			// リストに格納された一行分のファイルデータを格納
			HashMap<String, String> recordMap = convNonQuateStringToList_003(commonItem, lineData);
			
			// リストに追加
			wriSvcDtlInfo.put(recordMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD),recordMap);

			// CSVファイル一行読込み
			lineData = br.readLine();
		}
		
		// 割引サービス契約内訳情報を作成する
		br = new BufferedReader(new InputStreamReader(new FileInputStream(KK2361_001Pass)));
		lineData = br.readLine();
		while(lineData != null)
		{
			// リストに格納された一行分のファイルデータを格納
			HashMap<String, String> recordMap = convNonQuateStringToList_004(commonItem, lineData);
			
			// リストに追加
			wriSvcKeiUcwkInfo.put(recordMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO) + recordMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD),recordMap);

			// CSVファイル一行読込み
			lineData = br.readLine();
		}
		// 2013/12/26 ST4-2013-0000552 Add End

/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス単価マスタの取得(全体)
		wriTankAll = getWribSvcTankaAll();
		
/* v4.00.03 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
/* v4.00.07 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		//  キャンペーン以外の割引サービス単価情報
		wriNotCpTank = getWribSvcTankaNotCp();
/* v4.00.07 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// ANK-4145-00-00 ADD START
		executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_024(new Object[]{"03", opeDate});
		
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		if(null != dbMap)
		{
			// イベント年月日
			String eventYmd = JBSbatStringUtil.Rtrim(dbMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD));
			
			// 運用日が料金計算日当日の場合フラグをONする
			if(opeDate.equals(eventYmd)){
				this.prcCalDayFlg = true;
			}
		}
		// ANK-4145-00-00 ADD END

		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 入力値チェック
		if (!isSingleCheckKKIFM104_INF1(inMap.getMap(), null))
		{
			// エラーフラグ設定
			super.commonItem.setErrFlg(true);
			return null;
		}
		
/* v4.00.07 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		//  キャンペーン以外は処理しない
		if (!JKKStringUtil.isNullBlank(wriNotCpTank.get(inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO)))) 
			return null;
/* v4.00.07 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス契約の更新判定
		if (!inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO).equals(this.keepWribSvcKeiNo))
		{
			if (this.keepWribSvcKeiNo != null)
			{
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				// 割引サービス内訳の更新
				updateWriSvcKeiUcwkLoop();
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				
// 2013.03.11 Start IT1-2013-0000438
//				// 割引サービス契約の更新
//				updateWribSvcKei(this.keepWribSvcKeiMap);
				
				String wribSvcKeiNo = this.keepWribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
				if (isAllWrSvUcwkTekiyozumi(wribSvcKeiNo))
				{
					// 割引サービス契約内訳のステータスが全て"適用済"の場合に、割引サービス契約の更新を行う
					updateWribSvcKei(this.keepWribSvcKeiMap);
				}
				else if(syokaiTekiyouFlg)
				{
					// 初回適用フラグがtrueの場合に更新を行う
					updateWribSvcKeiSyokaiTekiyou(this.keepWribSvcKeiMap);
				}
				// 初回適用フラグ・初回適用終了年月日を初期化
				syokaiTekiyouFlg    = false;
				syokaiTekiyouEndYmd = null;
// 2013.03.11 End   IT1-2013-0000438
				
			}
			else 
			{
				// 割引サービス契約の取得
				JBSbatCommonDBInterface wribSvcKeiMap =  getWribSvcKei(inMap);

				// 割引サービス契約ステータスの確認
				String wribSvcKeiStat = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT);
				// サービス提供中以外はエラーログ出力
				if (!JKKBatConst.WRIB_SVC_KEI_STAT_SVC_TEIKYOTYU.equals(wribSvcKeiStat))
				{
					
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
					
					// 解約済以外はエラー
					if (!JKKBatConst.WRIB_SVC_KEI_STAT_KAIYAKU_ZUMI.equals(wribSvcKeiStat)) {
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.05 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
//					String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
//					+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
//					+ " [契約ステータスエラー：" + wribSvcKeiStat + "]" ;
//						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//						throw new JBSbatBusinessError();
/* v4.00.05 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
					}
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				}
			}
		}

/* v4.00.03 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 割引サービス単価の取得
//		JBSbatCommonDBInterface wribSvcTankaMap = getWribSvcTanka(inMap);
		
		// 割引サービス単価適用終了年月日の確認
//		String wribSvcTankaTstaymd = wribSvcTankaMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD);
/* v4.00.03 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス単価の保持
		HashMap<String, String> wriTankMap = null;
		
		// 割引サービス単価の取得
		wriTankMap = wriTankAll.get(inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO));
		
		// 割引サービス明細用のMap
		JBSbatCommonDBInterface wribSvcTankaMap = new JBSbatCommonDBInterface();
		
		// 空の場合はエラー
		if (wriTankMap == null) {
			// エラー出力
			String umekomiStr = "割引サービス契約番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) 
							+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
							+ " [割引サービス単価の取得結果なし]" ;
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
			
			throw new JBSbatBusinessError();
		} else {
			// 割引サービス明細用のMap作成
			wribSvcTankaMap.setValue(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO, wriTankMap.get(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO));
			wribSvcTankaMap.setValue(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD, wriTankMap.get(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD));
			wribSvcTankaMap.setValue(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD, wriTankMap.get(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD));
		}
		
		String wribSvcTankaTstaymd = wriTankMap.get(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD);
		
/* v4.00.03 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス単価適用終了年月日＜バッチ運用年月日の場合はエラーログ出力
		if (Integer.parseInt(wribSvcTankaTstaymd) < Integer.parseInt(commonItem.getOpeDate()))
		{
			String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
				+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
				+ " [割引サービス単価適用終了年月日が適用範囲外：" + wribSvcTankaTstaymd + "]" ;
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});

				throw new JBSbatBusinessError();
		}
		
		// 割引サービス詳細の取得
		JBSbatCommonDBInterface wribSvcDtlMap = getWribSvcDtl(inMap, wribSvcTankaMap);
		
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス契約内訳
		JBSbatCommonDBInterface wriSvcKeiUcwkMap = null;
		
		String wriSvckeiUcwkKey =
			inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) + wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD);
		
		wriSvcKeiUcwkMap = keepWriSvcUcwkMap.get(wriSvckeiUcwkKey);
		
		if(wriSvcKeiUcwkMap == null){
			// 割引サービス契約内訳の取得
			wriSvcKeiUcwkMap = getWriSvcKeiUcwk(inMap , wribSvcDtlMap);
			
			// 割引サービス契約内訳の更新に必要な情報を保持
			this.keepWriSvcUcwkMap.put(wriSvckeiUcwkKey,wriSvcKeiUcwkMap);
		}
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 割引サービス契約内訳の取得
//		JBSbatCommonDBInterface wriSvcKeiUcwkMap = getWriSvcKeiUcwk(inMap , wribSvcDtlMap);
/* v4.00.04 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 割引サービス契約番号の退避
		this.keepWribSvcKeiNo = inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO);
		this.keepWribSvcKeiMap = getWribSvcKei(inMap);
		
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス契約内訳ステータスが[解約済]の場合
		if (JKKBatConst.WRISVC_KEI_UCWK_STAT_KAIYAKU_ZUMI.equals(wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT))) {
			
			// 解約済用：割引サービス契約内訳の更新を行う.
			updateWriSvcKeiUcwkToStatKaiyakuZumi(inMap, wriSvcKeiUcwkMap);
			
		// 割引サービス契約内訳ステータスが[解約済]以外の場合
		} else {
			
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
			// 割引サービス契約内訳の更新を行う。
			updateWriSvcKeiUcwk(inMap, wriSvcKeiUcwkMap , wribSvcDtlMap);
		
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		}
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 変更後の割引サービス内訳情報の更新
		this.keepWriSvcUcwkMap.put(wriSvckeiUcwkKey,wriSvcKeiUcwkMap);
		
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		return null;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		// 割引サービス契約の更新
		if (keepWribSvcKeiNo != null)
		{
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
			// 割引サービス契約内訳の更新
			updateWriSvcKeiUcwkLoop();
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
			
// 2013.03.11 Start IT1-2013-0000438
//			// 割引サービス契約の更新
//			updateWribSvcKei(this.keepWribSvcKeiMap);
			
			String wribSvcKeiNo = this.keepWribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
			if (isAllWrSvUcwkTekiyozumi(wribSvcKeiNo))
			{
				// 割引サービス契約内訳のステータスが全て"適用済"の場合に、割引サービス契約の更新を行う
				updateWribSvcKei(this.keepWribSvcKeiMap);
			}
			else if(syokaiTekiyouFlg)
			{
				// 初回適用フラグがtrueの場合に更新を行う
				updateWribSvcKeiSyokaiTekiyou(this.keepWribSvcKeiMap);
			}
//2013.03.11 End   IT1-2013-0000438
		}
		
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_WRIB_SVC_KEI.close();
		db_KK_M_WRIB_SVC_TANKA.close();
		db_KK_M_WRIB_SVC_DTL.close();
		db_KK_T_WRISVC_KEI_UCWK.close();
		// OM-2017-0000501 2017/07/07 ADD START
		db_KK_T_WRISVC_TG_KEI.close();
		db_KK_T_PRG.close();
		// OM-2017-0000501 2017/07/07 ADD END
		// ANK-4145-00-00 ADD START
		db_CH_M_PRC_SCHDL_TEIGI.close();
		// ANK-4145-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 割引サービス契約のデータを取得する。
	 * <br>
	 * 割引サービス契約のKK_SELECT_012の定義を使用
	 * @param inMap 入力ファイルデータ
	 * @return 該当の割引サービス契約を含むJBSbatCommonDBInterfaceオブジェクト
	 * @throws Exception
	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
	 */
	private JBSbatCommonDBInterface getWribSvcKei(JBSbatServiceInterfaceMap inMap)
			throws Exception, JBSbatBusinessError
	{
		// 2013/12/26 ST4-2013-0000552 Mod Start
//		String[] param = {commonItem.getOpeDate(), inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO), commonItem.getOpeDate()};
//		executeKK_T_WRIB_SVC_KEI_KK_SELECT_012(param);
//		// KK_SELECT_012の実行結果取得
//		JBSbatCommonDBInterface dataMap = db_KK_T_WRIB_SVC_KEI.selectNext();
//		if (null == dataMap)
//		{
//			String umekomiStr = "割引サービス契約番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) 
//								+ " [割引サービス契約の取得結果なし]" ;
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//			throw new JBSbatBusinessError();
//		}
//		
//		return dataMap;
		// 割引サービス契約データ取得
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		HashMap<String,String> resultMap = new HashMap<String, String>();
		resultMap = wriSvcKeiInfo.get(inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO));

		if (resultMap == null)
		{
			String umekomiStr = "割引サービス契約番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) 
								+ " [割引サービス契約の取得結果なし]" ;
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});

			throw new JBSbatBusinessError();
		}
		
		// 取得したデータをDBインターフェースに変換
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.GENE_ADD_DTM, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.GENE_ADD_DTM));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SYSID, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SYSID));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_ENDYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_ENDYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_ENDYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_ENDYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.PNLTY_HASSEI_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.PNLTY_HASSEI_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.IDO_DIV, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.IDO_DIV));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_DSL_CNCL_OPTY_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_DSL_CNCL_OPTY_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_DTM, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.ADD_DTM));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_OPEACNT, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.ADD_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.UPD_DTM, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.UPD_DTM));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.UPD_OPEACNT, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.UPD_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.DEL_DTM, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.DEL_DTM));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.DEL_OPEACNT, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.DEL_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.MK_FLG, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.MK_FLG));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD));
		dataMap.setValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD, resultMap.get(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC.WRIB_SVC_SBT_CD, resultMap.get(JBSbatKK_M_WRIB_SVC.WRIB_SVC_SBT_CD));
		
		return dataMap;
		// 2013/12/26 ST4-2013-0000552 Mod End
	}
	
/* v4.00.03 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
//	/**
//	 * 割引サービス単価のデータを取得する。
//	 * <br>
//	 * 割引サービス単価のKK_SELECT_001の定義を使用
//	 * @param inMap 入力ファイルデータ
//	 * @return 該当の割引サービス単価を含むJBSbatCommonDBInterfaceオブジェクト
//	 * @throws Exception
//	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
//	 */
//	private JBSbatCommonDBInterface getWribSvcTanka(JBSbatServiceInterfaceMap inMap)
//			throws Exception, JBSbatBusinessError
//	{
//		String[] param = {inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO)};
//		executeKK_M_WRIB_SVC_TANKA_KK_SELECT_001(param);
//		// KK_SELECT_001の実行結果取得
//		JBSbatCommonDBInterface dataMap = db_KK_M_WRIB_SVC_TANKA.selectNext();
//		if (null == dataMap)
//		{
//			String umekomiStr = "割引サービス契約番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) 
//								+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
//								+ " [割引サービス単価の取得結果なし]" ;
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//			throw new JBSbatBusinessError();
//		}
//		
//		return dataMap;
//	}
/* v4.00.03 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * 割引サービス単価のデータを取得する。(全件)
	 * <br>
	 * 割引サービス単価のKK_SELECT_002の定義を使用
	 * @param  
	 * @return ArrayList<HashMap<String, String>> 割引サービス単価データ(全件)
	 * @throws Exception
	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
	 */
	private HashMap<String, HashMap<String, String>> getWribSvcTankaAll() throws Exception, JBSbatBusinessError
	{
		executeKK_M_WRIB_SVC_TANKA_KK_SELECT_002();
		
		HashMap<String, HashMap<String, String>> ret = new HashMap<String, HashMap<String, String>>();
		
		// KK_SELECT_002の実行結果取得
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		
		while(null != (dataMap = db_KK_M_WRIB_SVC_TANKA.selectNext()))
		{
			// 値保持用のHashMap
			HashMap<String,String> map = new HashMap<String, String>();
			// 取得した値をHashMapに設定
			map.put(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO, dataMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO));
			map.put(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD, dataMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD));
			map.put(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD, dataMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_TENDYMD));
			
			// 格納
			ret.put(dataMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO),map);
		}
		
		if (ret.size() == 0)
		{
			// エラーの出力
			String umekomiStr = "割引サービス単価情報が取得に失敗しました。";
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
			throw new JBSbatBusinessError();
		}
		
		return ret;
	}
/* v4.00.03 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.07 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * キャンペーン以外の割引サービス単価のデータを取得する。
	 * <br>
	 * 割引サービス単価のKK_SELECT_003の定義を使用
	 * @param  
	 * @return ArrayList<HashMap<String, String>> 割引サービス単価データ
	 * @throws Exception
	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
	 */
	private HashMap<String, String> getWribSvcTankaNotCp() throws Exception, JBSbatBusinessError {
		
		String[] param = {commonItem.getOpeDate()
							, commonItem.getOpeDate()
							, commonItem.getOpeDate()
							, commonItem.getOpeDate()
							, commonItem.getOpeDate()};
		
		executeKK_M_WRIB_SVC_TANKA_KK_SELECT_003(param);
		
		HashMap<String, String> ret = new HashMap<String, String>();
		
		// KK_SELECT_003の実行結果取得
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		
		while(null != (dataMap = db_KK_M_WRIB_SVC_TANKA.selectNext())) {
			String tank = dataMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_TANKA_NO);
			ret.put(tank, tank);
		}
		
		if (ret.size() == 0) {
			// エラーの出力
			String umekomiStr = "割引サービス単価情報が取得に失敗しました。";
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
			throw new JBSbatBusinessError();
		}
		
		return ret;
	}
/* v4.00.07 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * 割引サービス詳細のデータを取得する。
	 * <br>
	 * 割引サービス詳細のKK_SELECT_001の定義を使用
	 * @param inMap 入力ファイルデータ
	 * @param wribSvcTankaMap　割引サービス単価情報
	 * @return 該当の割引サービス詳細を含むJBSbatCommonDBInterfaceオブジェクト
	 * @throws Exception
	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
	 */
	private JBSbatCommonDBInterface getWribSvcDtl(JBSbatServiceInterfaceMap inMap ,JBSbatCommonDBInterface wribSvcTankaMap)
			throws Exception, JBSbatBusinessError
	{
		// 2013/12/26 ST4-2013-0000552 Mod Start
//		String[] param = {wribSvcTankaMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD)
//							, commonItem.getOpeDate()
//							, commonItem.getOpeDate()
//							, commonItem.getOpeDate()};
//		executeKK_M_WRIB_SVC_DTL_KK_SELECT_001(param);
//		// KK_SELECT_001の実行結果取得
//		JBSbatCommonDBInterface dataMap = db_KK_M_WRIB_SVC_DTL.selectNext();
//		if (null == dataMap)
//		{
//			String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
//								+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO)
//								+ ",割引サービス詳細コード:" + wribSvcTankaMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD) 
//								+ " [割引サービス詳細の取得結果なし]" ;
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//			throw new JBSbatBusinessError();
//		}
//		return dataMap;
		
		// 割引サービス詳細データ取得
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		HashMap<String,String> resultMap = new HashMap<String, String>();
		resultMap = wriSvcDtlInfo.get(wribSvcTankaMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD));

		if (resultMap == null)
		{
			String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
			+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO)
			+ ",割引サービス詳細コード:" + wribSvcTankaMap.getString(JBSbatKK_M_WRIB_SVC_TANKA.WRIB_SVC_DTL_CD) 
			+ " [割引サービス詳細の取得結果なし]" ;
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});

			throw new JBSbatBusinessError();
		}
		
		// 取得したデータをDBインターフェースに変換
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.GENE_ADD_DTM, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.GENE_ADD_DTM));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SBT_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SBT_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_SBT_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_SBT_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.SETTE_LV_SKCD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.SETTE_LV_SKCD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.SVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.SVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.EO_BRAND_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.EO_BRAND_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.PRC_GRP_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.PRC_GRP_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.PCRS_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.PCRS_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.PPLAN_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.PPLAN_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.KKTK_SVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.KKTK_SVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.OP_SVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.OP_SVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.SBOP_SVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.SBOP_SVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.SEIOPSVC_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.SEIOPSVC_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_STA_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_STA_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_PRD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.STA_ADJ_PRD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_END_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_END_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_NM, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_NM));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.RSV_APLY_YMD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.RSV_APLY_YMD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TSTAYMD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TSTAYMD));
		dataMap.setValue(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TENDYMD, resultMap.get(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_TENDYMD));
		
		return dataMap;
// 2013/12/26 ST4-2013-0000552 Mod End
	}

	/**
	 * 割引サービス契約内訳のデータを取得する。
	 * <br>
	 * 割引サービス契約内訳のKK_SELECT_002の定義を使用
	 * @param inMap 入力ファイルデータ
	 * @param wribSvcDtlMap		 割引サービス詳細情報
	 * @return 該当の割引サービス契約内訳を含むJBSbatCommonDBInterfaceオブジェクト
	 * @throws Exception
	 * @throws JBSbatBusinessError データが1件も取得できないときに、この例外が発生。
	 */
	private JBSbatCommonDBInterface getWriSvcKeiUcwk(JBSbatServiceInterfaceMap inMap , JBSbatCommonDBInterface wribSvcDtlMap)
			throws Exception, JBSbatBusinessError
	{
		// 2013/12/26 ST4-2013-0000552 Mod Start
//		// 割引サービス契約番号、割引サービス詳細コードから、割引サービス契約内訳を取得する。
//		String[] param001 = {inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO),
//							wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD)};
//		
//		// KK_SELECT_001の実行結果取得
//		executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_002(param001);
//		JBSbatCommonDBInterface dataMap = db_KK_T_WRISVC_KEI_UCWK.selectNext();
//		
//		if (null == dataMap)
//		{
//			String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
//								+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
//								+ ",割引サービス詳細コード:" +wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD) 
//								+ " [割引サービス契約内訳の取得結果なし]" ;
//			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//			throw new JBSbatBusinessError();
//		}
		
		// 割引サービス契約内訳データ取得
		JBSbatCommonDBInterface dataMap = new JBSbatCommonDBInterface();
		HashMap<String,String> resultMap = new HashMap<String, String>();
		resultMap = wriSvcKeiUcwkInfo.get(inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) + wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD));

		if (resultMap == null)
		{
			String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
			+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
			+ ",割引サービス詳細コード:" +wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD) 
			+ " [割引サービス契約内訳の取得結果なし]" ;
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});

		}
		
		// 取得したデータをDBインターフェースに変換
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.GENE_ADD_DTM, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.GENE_ADD_DTM));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.UPD_DTM, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.UPD_DTM));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.UPD_OPEACNT, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.UPD_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.DEL_DTM, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.DEL_DTM));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.DEL_OPEACNT, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.DEL_OPEACNT));
		dataMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.MK_FLG, resultMap.get(JBSbatKK_T_WRISVC_KEI_UCWK.MK_FLG));
		// 2013/12/26 ST4-2013-0000552 Mod End
		
		// 割引サービス契約内訳ステータスの確認
		String wriSvcKeiUcwkStat = dataMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT);
		if (!JKKBatConst.WRISVC_KEI_UCWK_STAT_TOUROKU_ZUMI.equals(wriSvcKeiUcwkStat))
		{
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
			
			// 割引サービス契約内訳ステータスが[解約済]以外
			if (!JKKBatConst.WRISVC_KEI_UCWK_STAT_KAIYAKU_ZUMI.equals(wriSvcKeiUcwkStat)) {
				
				// 以下,該当ログは割引サービス契約内訳ステータスが[適用済]の場合のみ出力される.
				
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.05 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				// 適用数判別コードが「月数(3)」または「日数(4)」の場合エラーを出力しない
				String aplyCntHanbetCd = wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD);
				if (!JKKBatConst.APLY_CNT_HAMBET_CD_MON_CNT.equals(aplyCntHanbetCd) && !JKKBatConst.APLY_CNT_HAMBET_CD_DAY_CNT.equals(aplyCntHanbetCd)){
/* v4.00.05 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				
					String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
										+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
										+ ",割引サービス詳細コード:" + wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD) 
										+ " [契約内訳ステータスエラー：" + wriSvcKeiUcwkStat + "]" ;
					super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
		
					throw new JBSbatBusinessError();
/* v4.00.05 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				}
/* v4.00.05 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
			}
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		}
		
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 同一の割引サービス契約内訳を複数回読み込み時はエラーログを出力する（処理は続行）
//		String dbWribSvcKeiNo = dataMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO);
/* v4.00.04 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		String dbWribSvcKeiUcwkNo = dataMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO);
		
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
//		if (this.keepWribSvcKeiUcwkNo != null)
//		{
//			// 同一の割引サービス契約番号、割引サービス契約内訳番号であった場合は、エラーログの出力を行う
//			if ((this.keepWribSvcKeiNo + this.keepWribSvcKeiUcwkNo).equals(dbWribSvcKeiNo + dbWribSvcKeiUcwkNo))
//			{
//				String umekomiStr = "割引サービス契約番号:" +  inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO)
//									+ ",割引サービス単価番号:" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_TANKA_NO) 
//									+ ",割引サービス詳細コード:" + wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD) 
//									+ " [同一割引契約内訳複数回処理エラー]" ;
//				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
//
//				throw new JBSbatBusinessError();
//			}
//		}
/* v4.00.04 del end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス契約内訳番号を退避
		this.keepWribSvcKeiUcwkNo = dbWribSvcKeiUcwkNo;
		
		return dataMap;
	}
	
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * 
	 * 割引サービス契約内訳の更新処理を行う.(実際は、前のデータを引継いでの追加処理)
	 * 当処理は,対象となる割引サービス契約内訳ステータスが[解約済]の場合のみ使用すること.
	 * 
	 * @param  inMap             入力ファイルデータ
	 * @param  wriSvcKeiUcwkMap  割引サービス契約内訳情報
	 * @throws Exception
	 * 
	 */
	private void updateWriSvcKeiUcwkToStatKaiyakuZumi(JBSbatServiceInterfaceMap inMap,
														JBSbatCommonDBInterface wriSvcKeiUcwkMap) throws Exception {
		
			
		// 
		// 割引適用回数算出
		// 
		BigDecimal wriAplycnt = wriSvcKeiUcwkMap.getBigDecimal(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT);
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT, (wriAplycnt == null ? 0 : wriAplycnt.intValue()) + 1);
		
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 
		// SQLパラメータ生成
		// 
		// 以下項目以外はカレント値引継ぎ(共通更新項目除く)
		// 
		// ・割引適用回数
		// ・更新年月日時分秒
		// ・更新オペレータアカウント
		// 
//		Object[] sqlParam = {
//				
//				inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO),									// 0.割引サービス契約番号
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO), 		// 1.割引サービス契約内訳番号
//				JCCBatCommon.getSysDateTimeStamp(),													// 2.世代登録年月日時分秒	
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT),		// 3.割引サービス契約内訳ステータス
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD), 				// 4.割引サービス詳細コード
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT), 				// 5.割引適用回数
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD),				// 6.サービス課金開始年月日
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD), 				// 7.サービス課金終了年月日
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM), 		// 8.課金開始年月日補正有無
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD), 			// 9.初回割引適用年月日
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM), 						// 10.登録年月日時分秒
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT), 					// 11.登録オペレータアカウント
//				JCCBatCommon.getSysDateTimeStamp(),													// 12.更新年月日時分秒
//				commonItem.getJobid(),																// 13.更新オペレータアカウント
//				null,																				// 14.削除年月日時分秒
//				null,																				// 15削除オペレータアカウント
//				"0"																					// 16.無効フラグ
//		};
//		
//		executeKK_T_WRISVC_KEI_UCWK_PKINSERT(sqlParam);
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	}
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	/**
	 * 割引サービス契約内訳の更新処理を行う。
	 * 当処理は,対象となる割引サービス契約内訳ステータスが[解約済]以外の場合のみ使用すること。
	 * <br>
	 * 実際は、前のデータを引継いでの追加処理
	 * @param inMap 入力ファイルデータ
	 * @param wriSvcKeiUcwkMap	 割引サービス契約内訳情報
	 * @param wribSvcDtlMap 割引サービス詳細情報
	 * @throws Exception
	 */
	private void updateWriSvcKeiUcwk(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface wriSvcKeiUcwkMap, 
										JBSbatCommonDBInterface wribSvcDtlMap)
		throws Exception
	{
		// 割引適用回数に１加算
		int count = 0;
		BigDecimal cnt = wriSvcKeiUcwkMap.getBigDecimal(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT);
		if (null != cnt) 
		{
			count = cnt.intValue();
		}
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT, new BigDecimal(++count));
				
		// 割引サービス契約内訳ステータスの編集
		String wriSvcUcwkStat = "";
			// 更新前の割引サービス契約内訳ステータスの取得
			String thisWriSvcUcwkStat = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT); 
			// 割引サービス詳細の適用数判別コードの取得
			String aplyCntHanbetCd = wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD);
			// 割引サービス契約内訳のサービス課金終了年月日の取得
			String keepSvcChrgEndYmd = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD);
			
			// 割引サービス詳細の適用数判別コードが回数の場合
			if (JKKBatConst.APLY_CNT_HAMBET_CD_CNT.equals(aplyCntHanbetCd))
			{
				// 現在の回数
				int countNow = wriSvcKeiUcwkMap.getBigDecimal(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT).intValue();
				// 割引サービス詳細に設定されている回数
				int wribSvcCnt = wribSvcDtlMap.getBigDecimal(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT).intValue();
				// 割引サービス契約内訳の割引適用回数＝割引サービス詳細の適用回数の場合に適用済とする
				if (countNow == wribSvcCnt)
				{
					wriSvcUcwkStat = JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI;
				}
			}
// KAD-2012-0000205 DEL Start
//			// 割引サービス詳細の適用数判別コードが月数の場合
//			else if (JKKBatConst.APLY_CNT_HAMBET_CD_MON_CNT.equals(aplyCntHanbetCd))
//			{
//				// 当月1日が割引サービス契約内訳のサービス課金終了年月日を超えている場合に適用済とする
//				if (isMon1dayOverSvcChrgEndYmd(keepSvcChrgEndYmd))
//				{
//					wriSvcUcwkStat = JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI;
//				}
//			}
//			// 割引サービス詳細の適用数判別コードが日数の場合
//			else if (JKKBatConst.APLY_CNT_HAMBET_CD_DAY_CNT.equals(aplyCntHanbetCd))
//			{
//				// バッチ運用年月日が割引サービス契約内訳のサービス課金終了年月日を超えている場合に適用済とする
//				if (isTodayOverSvcChrgEndYmd(keepSvcChrgEndYmd))
//				{
//					wriSvcUcwkStat = JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI;
//				}
//			}
// KAD-2012-0000205 DEL End
		// 適用済以外の場合は元の値を設定
		if ("".equals(wriSvcUcwkStat))
		{
			wriSvcUcwkStat = thisWriSvcUcwkStat;
		}

// KAD-2012-0000204 ADD Start
		// 割引サービス詳細．キャンペーン終了コード
		String campaignEndCd = JBSbatStringUtil.Rtrim(wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.CAMPAIGN_END_CD));
		//現在（更新前）の初回割引適用年月日
		String thisFirstWribAplyYmd = JBSbatStringUtil.Rtrim(wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD));
		
		// 割引サービス詳細のキャンペーン終了コードが"02:初回適用月"、且つ、初回適用年月日が未設定時、true
		// 初回適用年月日は、このバッチのみ更新するので「20991231」が設定されることはない
		boolean firstTekiyoFlg = ("02".equals(campaignEndCd) && "".equals(thisFirstWribAplyYmd));

		// 債権確定年月＋01＝初回適用年月日
		String firstTekiyoYmd = inMap.getString(JBSbatKKIFM104.SAIKEN_FIX_YM) + "01";

		if (super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			super.logPrint.printDebugLog("割引サービス詳細．キャンペーン終了コード=[" + campaignEndCd + "]");
			super.logPrint.printDebugLog("割引サービス契約内訳．初回割引適用年月日=[" + thisFirstWribAplyYmd + "]");
			super.logPrint.printDebugLog("割引サービス契約番号=[" + inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO) + "]");
			super.logPrint.printDebugLog("割引サービス詳細コード=[" + wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.WRIB_SVC_DTL_CD) + "]");
			super.logPrint.printDebugLog("割引サービス契約内訳．サービス課金終了年月日=[" + 
					wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD) + "]");
			super.logPrint.printDebugLog("キャンペーン終了コードが\"02:初回適用月\"、且つ、初回適用年月が未設定=[" + firstTekiyoFlg + "]");
		}
		
		// サービス課金開始年月日
		String svcChrgStaYmd = "";
		//現在（更新前）のサービス課金開始年月日
		String thisSvcChrgStaymd = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD); 
// 2013.03.11 Start IT1-2013-0000438
//		if (firstTekiyoFlg)
//		{
//			svcChrgStaYmd = firstTekiyoYmd;
//		}
//		else
//		{
//			// 現在値の再設定
//			svcChrgStaYmd = thisSvcChrgStaymd;
//		}
		// 現在値の再設定
		svcChrgStaYmd = thisSvcChrgStaymd;
// 2013.03.11 End   IT1-2013-0000438
// KAD-2012-0000204 ADD End
		
		// サービス課金終了年月日の設定
		String svcChrgEndYmd = "";
		//現在（更新前）のサービス課金終了年月日
		String thisSvcChrgEndYmd = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD);
// KAD-2012-0000204 MOD Start
//		// 割引サービス契約内訳ステータスが適用済で
//		// 割引サービス契約内訳のサービス課金終了年月日が未設定または"20991231"のとき、バッチ運用年月日を設定
//		if (JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI.equals(wriSvcUcwkStat) &&
//			(null == thisSvcChrgEndYmd || "".equals(thisSvcChrgEndYmd) || JKKBatConst.S_MAX_DATE.equals(thisSvcChrgEndYmd)))
//		{
//			svcChrgEndYmd = commonItem.getOpeDate();
//		}
//		else
//		{
//			svcChrgEndYmd = thisSvcChrgEndYmd;
//		}
		if (firstTekiyoFlg)
		{
			// 割引サービス詳細．適用数判別コード
			String aplyCntHambetCd = wribSvcDtlMap.getString(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT_HAMBET_CD);
			// 割引サービス詳細．適用数
			BigDecimal aplyCnt = wribSvcDtlMap.getBigDecimal(JBSbatKK_M_WRIB_SVC_DTL.APLY_CNT);
			
			if (JKKBatConst.APLY_CNT_HAMBET_CD_MON_CNT.equals(aplyCntHambetCd))
			{
				// 適用数判別コードが「3：月数」
				svcChrgEndYmd = JBSbatDateUtil.adjustMonth(firstTekiyoYmd, aplyCnt.intValue());
			}
			else if (JKKBatConst.APLY_CNT_HAMBET_CD_DAY_CNT.equals(aplyCntHambetCd))
			{
				// 適用数判別コードが「4：日数」
				svcChrgEndYmd = JBSbatDateUtil.adjustDate(firstTekiyoYmd, aplyCnt.intValue());
			}
			else
			{
				// 現在値の再設定
				svcChrgEndYmd =  thisSvcChrgEndYmd;
			}
// 2013.03.11 Start IT1-2013-0000438
			syokaiTekiyouFlg = true;
// 2013.03.11 End   IT1-2013-0000438
		}
		else
		{
			// 割引サービス契約内訳ステータスが適用済で
			// 割引サービス契約内訳のサービス課金終了年月日が未設定または"20991231"のとき、バッチ運用年月日を設定
			if (JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI.equals(wriSvcUcwkStat) &&
				("".equals(JBSbatStringUtil.Rtrim(thisSvcChrgEndYmd)) || JKKBatConst.S_MAX_DATE.equals(thisSvcChrgEndYmd)))
			{
				// v27.00.00 MOD START
				// svcChrgEndYmd = commonItem.getOpeDate();
				svcChrgEndYmd = inMap.getString(JBSbatKKIFM104.SAIKEN_FIX_YM)
					+ JPCDateUtil.getEndOfMonth(inMap.getString(JBSbatKKIFM104.SAIKEN_FIX_YM));
				// v27.00.00 MOD END
			}
			else
			{
				svcChrgEndYmd = thisSvcChrgEndYmd;
			}
		}
// KAD-2012-0000204 MOD End
		
		// 初回割引適用年月日の設定
		String firstWribAplyYmd = "";
// KAD-2012-0000204 MOD Start
//		//現在（更新前）の初回割引適用年月日
//		String thisFirstWribAplyYmd = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD); 
//		// 割引サービス契約内訳の初回割引適用年月日が未設定または"20991231"のとき、債権確定年月＋"01"を設定
//		if (null == thisFirstWribAplyYmd || "".equals(thisFirstWribAplyYmd) || JKKBatConst.S_MAX_DATE.equals(thisFirstWribAplyYmd))
//		{
//			firstWribAplyYmd = inMap.getString(JBSbatKKIFM104.SAIKEN_FIX_YM) + "01";
//		}
//		else
//		{
//			firstWribAplyYmd = thisFirstWribAplyYmd;
//		}
		if (firstTekiyoFlg)
		{
			firstWribAplyYmd = firstTekiyoYmd;
		}
		else
		{
			// 現在値の再設定
			firstWribAplyYmd = thisFirstWribAplyYmd;
		}
// KAD-2012-0000204 MOD End
		
/* v4.00.04 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
//		Object[] param = {inMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO),						// 0.割引サービス契約番号
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO), 	// 1.割引サービス契約内訳番号
//				JCCBatCommon.getSysDateTimeStamp(),												// 2.世代登録年月日時分秒	
//				wriSvcUcwkStat,																	// 3.割引サービス契約内訳ステータス
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD), 			// 4.割引サービス詳細コード
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT), 			// 5.割引適用回数
//				// KAD-2012-0000204 MOD Start
//				//wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD),			// サービス課金開始年月日
//				svcChrgStaYmd,																	// 6.サービス課金開始年月日
//				// KAD-2012-0000204 MOD End
//				svcChrgEndYmd, 																	// 7.サービス課金終了年月日
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM), 	// 8.課金開始年月日補正有無
//				firstWribAplyYmd, 																// 9.初回割引適用年月日
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM), 					// 10.登録年月日時分秒
//				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT), 				// 11.登録オペレータアカウント
//				JCCBatCommon.getSysDateTimeStamp(),												// 12.更新年月日時分秒
//				commonItem.getJobid(),															// 13.更新オペレータアカウント
//				null,																			// 14.削除年月日時分秒
//				null,																			// 15削除オペレータアカウント
//				"0"																				// 16.無効フラグ
//		};
//		
//		executeKK_T_WRISVC_KEI_UCWK_PKINSERT(param);
/* v4.00.04 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 最新情報に更新
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT, wriSvcUcwkStat);		// 割引サービス契約内訳ステータス
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD, svcChrgStaYmd);				// サービス課金開始年月日
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD, svcChrgEndYmd);				// サービス課金終了年月日
		wriSvcKeiUcwkMap.setValue(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD, firstWribAplyYmd);		// 初回割引適用年月日
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	}
	
	
/* v4.00.04 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * 割引サービス契約内訳の更新処理を行う。
	 * 
	 * <br>
	 * 割引サービス契約内訳取得分分ループを行う。
	 * @throws Exception
	 */
	private void updateWriSvcKeiUcwkLoop()	throws Exception
	{
		// v27.00.00 ADD START
		// 初期化
		KK0451_ChrgEndYmd = "00000000";
		// v27.00.00 ADD END
		
		// 割引サービス契約内訳分ループする。
		for (String key : keepWriSvcUcwkMap.keySet()) {
			
			JBSbatCommonDBInterface wriSvcUcwk = keepWriSvcUcwkMap.get(key);
			
// 2013.03.11 Start IT1-2013-0000438
			// 初回適用フラグが true の場合、割引サービス契約内訳の中でサービス課金終了年月日の最大日付のものを初回適用時終了年月日に設定する
			String workEndYmd = (String)wriSvcUcwk.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD);
			if(syokaiTekiyouFlg && (syokaiTekiyouEndYmd == null || workEndYmd.compareTo(syokaiTekiyouEndYmd) > 0)) {
				syokaiTekiyouEndYmd = workEndYmd;
			}
// 2013.03.11 End   IT1-2013-0000438
			
			// 割引サービス契約内訳の更新を行う。
			updateWriSvcKeiUcwkInfo(wriSvcUcwk);
			
			// OM-2017-0000501 2017/07/07 ADD START
			// 進捗登録
			addPrg(wriSvcUcwk);
			// OM-2017-0000501 2017/07/07 ADD END
			
			// v27.00.00 ADD START
			if(workEndYmd.compareTo(KK0451_ChrgEndYmd) > 0);
			{
				KK0451_ChrgEndYmd = workEndYmd;
			}
			// v27.00.00 ADD END
		}
		
		// 退避用の割引サービス内訳情報をクリア
		keepWriSvcUcwkMap.clear();
	}
	
	/**
	 * 割引サービス契約内訳の更新処理を行う。
	 * 当処理は,対象となる割引サービス契約内訳ステータスが[解約済]以外の場合のみ使用すること。
	 * <br>
	 * 実際は、前のデータを引継いでの追加処理
	 * @param inMap 入力ファイルデータ
	 * @param wriSvcKeiUcwkMap	 割引サービス契約内訳情報
	 * @param wribSvcDtlMap 割引サービス詳細情報
	 * @throws Exception
	 */
	private void updateWriSvcKeiUcwkInfo(JBSbatCommonDBInterface wriSvcKeiUcwkMap)	throws Exception
	{
		Object[] param = {wriSvcKeiUcwkMap.getString(JBSbatKKIFM104.WRIB_SVC_KEI_NO),			// 0.割引サービス契約番号
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_NO), 	// 1.割引サービス契約内訳番号
				JCCBatCommon.getSysDateTimeStamp(),												// 2.世代登録年月日時分秒	
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT),	// 3.割引サービス契約内訳ステータス
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD), 			// 4.割引サービス詳細コード
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_APLY_CNT), 			// 5.割引適用回数
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_STAYMD),			// 6.サービス課金開始年月日
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.SVC_CHRG_ENDYMD), 			// 7.サービス課金終了年月日
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.CHRG_STA_YMD_HOSEI_UM), 	// 8.課金開始年月日補正有無
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.FIRST_WRIB_APLY_YMD), 		// 9.初回割引適用年月日
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_DTM), 					// 10.登録年月日時分秒
				wriSvcKeiUcwkMap.getValue(JBSbatKK_T_WRISVC_KEI_UCWK.ADD_OPEACNT), 				// 11.登録オペレータアカウント
				JCCBatCommon.getSysDateTimeStamp(),												// 12.更新年月日時分秒
				commonItem.getJobid(),															// 13.更新オペレータアカウント
				null,																			// 14.削除年月日時分秒
				null,																			// 15削除オペレータアカウント
				"0"																				// 16.無効フラグ
		};
		
		executeKK_T_WRISVC_KEI_UCWK_PKINSERT(param);
	}
/* v4.00.04 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	/**
	 * 当月1日がサービス課金終了年月日を超えているかどうかを判定する。
	 * 
	 * @param  keepSvcChrgEndYmd 	サービス課金終了年月日
	 * @return boolean 			trueである場合、超えている。falseである場合、超えていない。
	 * @throws Exception 			業務サービス内で発生した例外全般。
	 */
	private boolean isMon1dayOverSvcChrgEndYmd(String keepSvcChrgEndYmd) throws Exception
	{
		// サービス課金終了年月日が未設定または"20991231"のときは、超えていない
		if (null == keepSvcChrgEndYmd || "".equals(keepSvcChrgEndYmd) || JKKBatConst.S_MAX_DATE.equals(keepSvcChrgEndYmd))
		{
			return false;
		}
		// 当月１日の取得
		String thisMon1day = commonItem.getOpeDate().substring(0, 6) + "01";
		return 0 > keepSvcChrgEndYmd.compareTo(thisMon1day);
	}

	/**
	 * バッチ運用年月日がサービス課金終了年月日を超えているかどうかを判定する。
	 * 
	 * @param  keepSvcChrgEndYmd 	サービス課金終了年月日
	 * @return boolean 			trueである場合、超えている。falseである場合、超えていない。
	 * @throws Exception 			業務サービス内で発生した例外全般。
	 */
	private boolean isTodayOverSvcChrgEndYmd(String keepSvcChrgEndYmd) throws Exception
	{
		// サービス課金終了年月日が未設定または"20991231"のときは、超えていない
		if (null == keepSvcChrgEndYmd || "".equals(keepSvcChrgEndYmd) || JKKBatConst.S_MAX_DATE.equals(keepSvcChrgEndYmd))
		{
			return false;
		}
		// バッチ運用年月日の取得
		String thisToday = commonItem.getOpeDate();
		return 0 > keepSvcChrgEndYmd.compareTo(thisToday);
	}

	/**
	 * 割引サービス契約の更新処理を行う。
	 * <br>
	 * 実際は、前のデータを引継いでの追加処理
	 * @param wribSvcKeiMap 割引サービス契約情報
	 * @throws Exception
	 */
	private void updateWribSvcKei(JBSbatCommonDBInterface wribSvcKeiMap) throws Exception
	{
// 2013.03.11 Start IT1-2013-0000438
//		String wribSvcKeiNo = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO);
//		if (!isAllWrSvUcwkTekiyozumi(wribSvcKeiNo))
//		{
//			return;
//		}
// 2013.03.11 End   IT1-2013-0000438
		
//		// サービス終了年月日の設定
//		String svcEndYmd = "";
//		 //現在（更新前）のサービス終了年月日
//		String thisSvcEndYmd = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD);
//		if (null == thisSvcEndYmd || "".equals(thisSvcEndYmd) || JKKBatConst.S_MAX_DATE.equals(thisSvcEndYmd))
//		{
//			svcEndYmd = commonItem.getOpeDate();
//		}
//		else
//		{
//			svcEndYmd = thisSvcEndYmd;
//		}
		
/* v4.00.02 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// 割引サービス契約が[サービス提供中]以外は更新処理は実施しない.
		String wribStat = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT);
		if (!JKKBatConst.WRIB_SVC_KEI_STAT_SVC_TEIKYOTYU.equals(wribStat)) {
			return;
		}
		
/* v4.00.02 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
		// プラン終了年月日の設定
		String planEndYmd = "";
		 //現在（更新前）のサービス終了年月日
		String thisWribSvcSbtCd = wribSvcKeiMap.getString(JBSbatKK_M_WRIB_SVC.WRIB_SVC_SBT_CD);
		if ("01".equals(thisWribSvcSbtCd))
		{
			// 置換型
			planEndYmd = commonItem.getOpeDate();
		}
		else
		{
			planEndYmd = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD);
		}
		
		Object[] param = {
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO),				// 割引サービス契約番号
				JCCBatCommon.getSysDateTimeStamp(),												// 世代登録年月日時分秒	
				JKKBatConst.WRIB_SVC_KEI_STAT_TEKIYO_ZUMI,										// 割引サービス契約ステータス
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SYSID), 							// SYSID
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD), 					// 割引サービスコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD), 						// 料金コースコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD), 						// 料金プランコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD), 			// サービス利用開始希望年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD), 				// 予約適用開始希望年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO), 					// 申込明細番号
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD), 						// 照査年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD), 					// 照査取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_YMD),					// 予約適用年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD), 					// 予約取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_CD), 					// 予約適用コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN), 						// 即時適用フラグ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD), 					// プラン開始年月日
				//wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD), 					// プラン終了年月日
				planEndYmd, 																	// プラン終了年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD), 				// プラン課金開始年月日
				//wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_ENDYMD),				// プラン課金終了年月日
				// v27.00.00 MOD START
				//commonItem.getOpeDate(), 														// プラン課金終了年月日
				KK0451_ChrgEndYmd,																// プラン課金終了年月日
				// v27.00.00 MOD START
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD), 				// プラン終了種別コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD), 				// サービスキャンセル年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD),				// サービスキャンセル理由コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD), 					// サービス開始年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD), 				// サービス課金開始年月日
				//svcEndYmd, 																	// サービス終了年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD), 					// サービス終了年月日
				//wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_ENDYMD), 				// サービス課金終了年月日
				// v27.00.00 MOD START
				//commonItem.getOpeDate(), 														// サービス課金終了年月日
				KK0451_ChrgEndYmd,																// サービス課金終了年月日
				// v27.00.00 MOD END
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD), 					// サービス解約年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD), 					// サービス解約理由コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO), 					// サービス解約理由メモ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG), 			// サービス解約手続完了フラグ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD),						// 回復年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD), 				// サービスキャンセル取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD), 				// サービス解約取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM), 			// 課金開始年月日補正有無
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD), 				// 審査結果送信コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PNLTY_HASSEI_CD), 				// 違約金発生コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.IDO_DIV), 						// 異動区分
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD), 				// 照査解約完了コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD), 					// 契約締結年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD), 						// グループコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD), 						// 紹介コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD), 				// 申込起算年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD), 				// 割引登録契機コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_DSL_CNCL_OPTY_CD), 			// 割引解約キャンセル契機コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD), 	// 割引サービス契約自動継続識別コード
// 2013.03.11 Start IT1-2013-0000438
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD),		// 割引額算出基準年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD),		// 割引課金開始月指定コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD),					// 割引登録年月日
// 2013.03.11 End   IT1-2013-0000438
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_DTM), 						// 登録年月日時分秒
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_OPEACNT), 					// 登録オペレータアカウント
				JCCBatCommon.getSysDateTimeStamp(),												// 更新年月日時分秒
				commonItem.getJobid(),															// 更新オペレータアカウント
				null,																			// 削除年月日時分秒
				null,																			// 削除オペレータアカウント
				"0"																				// 無効フラグ
/* v4.00.08 add start           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				,wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD), 		// 割引対象契約サービス休止年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD) 		// 割引対象契約サービス休止解除年月日
/* v4.00.08 add end             ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		};
		
		executeKK_T_WRIB_SVC_KEI_PKINSERT(param);
	}

// 2013.03.11 Start IT1-2013-0000438
	/**
	 * 割引サービス契約の更新処理を行う。
	 * <br>
	 * 実際は、前のデータを引継いでの追加処理
	 * @param wribSvcKeiMap 割引サービス契約情報
	 * @throws Exception
	 */
	private void updateWribSvcKeiSyokaiTekiyou(JBSbatCommonDBInterface wribSvcKeiMap) throws Exception
	{
		// 割引サービス契約が[サービス提供中]以外は更新処理は実施しない.
		String wribStat = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT);
		if (!JKKBatConst.WRIB_SVC_KEI_STAT_SVC_TEIKYOTYU.equals(wribStat)) {
			return;
		}
		
		// プラン終了年月日の設定
		String planEndYmd = "";
		//現在（更新前）のサービス終了年月日
		String thisWribSvcSbtCd = wribSvcKeiMap.getString(JBSbatKK_M_WRIB_SVC.WRIB_SVC_SBT_CD);
		if ("01".equals(thisWribSvcSbtCd))
		{
			// 置換型
			planEndYmd = commonItem.getOpeDate();
		}
		else
		{
			planEndYmd = wribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.PLAN_ENDYMD);
		}
		
		Object[] param = {
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_NO),				// 割引サービス契約番号
				JCCBatCommon.getSysDateTimeStamp(),												// 世代登録年月日時分秒	
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_STAT),				// 割引サービス契約ステータス
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SYSID), 							// SYSID
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD), 					// 割引サービスコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PCRS_CD), 						// 料金コースコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PPLAN_CD), 						// 料金プランコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_USE_STA_KIBO_YMD), 			// サービス利用開始希望年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_TSTA_KIBO_YMD), 				// 予約適用開始希望年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_DTL_NO), 					// 申込明細番号
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_YMD), 						// 照査年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_CL_YMD), 					// 照査取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_YMD),					// 予約適用年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_CL_YMD), 					// 予約取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.RSV_APLY_CD), 					// 予約適用コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.APLY_JUN), 						// 即時適用フラグ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_STAYMD), 					// プラン開始年月日
				syokaiTekiyouEndYmd,															// プラン終了年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_CHRG_STAYMD), 				// プラン課金開始年月日
				syokaiTekiyouEndYmd,															// プラン課金終了年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PLAN_END_SBT_CD), 				// プラン終了種別コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_YMD), 				// サービスキャンセル年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_RSN_CD),				// サービスキャンセル理由コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD), 					// サービス開始年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CHRG_STAYMD), 				// サービス課金開始年月日
				syokaiTekiyouEndYmd,															// サービス終了年月日
				syokaiTekiyouEndYmd,															// サービス課金終了年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_YMD), 					// サービス解約年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_CD), 					// サービス解約理由コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DLRE_MEMO), 					// サービス解約理由メモ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_TTDKI_FIN_FLG), 			// サービス解約手続完了フラグ
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.KAIHK_YMD),						// 回復年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_CANCEL_CL_YMD), 				// サービスキャンセル取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SVC_DSL_CL_YMD), 				// サービス解約取消年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.CHRG_STA_YMD_HOSEI_UM), 			// 課金開始年月日補正有無
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SKEKKA_SEND_CD), 				// 審査結果送信コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.PNLTY_HASSEI_CD), 				// 違約金発生コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.IDO_DIV), 						// 異動区分
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.SHOSA_DSL_FIN_CD), 				// 照査解約完了コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.KEI_CNC_YMD), 					// 契約締結年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.GRP_CD), 						// グループコード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.INTR_CD), 						// 紹介コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.MSKM_KISAN_YMD), 				// 申込起算年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_OPTY_CD), 				// 割引登録契機コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_DSL_CNCL_OPTY_CD), 			// 割引解約キャンセル契機コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_KEI_AT_KEIZK_SKCD), 	// 割引サービス契約自動継続識別コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_AMNT_SNST_STDARDYMD),		// 割引額算出基準年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_CHRG_STA_MON_STI_CD),		// 割引課金開始月指定コード
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRIB_ADD_YMD),					// 割引登録年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_DTM), 						// 登録年月日時分秒
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.ADD_OPEACNT), 					// 登録オペレータアカウント
				JCCBatCommon.getSysDateTimeStamp(),												// 更新年月日時分秒
				commonItem.getJobid(),															// 更新オペレータアカウント
				null,																			// 削除年月日時分秒
				null,																			// 削除オペレータアカウント
				"0"																				// 無効フラグ
/* v4.00.08 add start           ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				,wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_YMD), 		// 割引対象契約サービス休止年月日
				wribSvcKeiMap.getValue(JBSbatKK_T_WRIB_SVC_KEI.WRTGKEI_SVC_PAUSE_RLS_YMD) 		// 割引対象契約サービス休止解除年月日
/* v4.00.08 add end             ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
				
		};
		
		executeKK_T_WRIB_SVC_KEI_PKINSERT(param);
	}
// 2013.03.11 End   IT1-2013-0000438

	/**
	 * 同一割引サービス契約番号の割引サービス契約内訳が全て適用済となったかどうかを判定する。
	 * 
	 * @param  wribSvcKeiNo		 	割引サービス契約番号
	 * @return boolean 			trueである場合、全て適用済となった。falseである場合、適用済となっていない。
	 * @throws Exception 			業務サービス内で発生した例外全般。
	 */
	
	private boolean isAllWrSvUcwkTekiyozumi(String wribSvcKeiNo) throws Exception
	{

		List<String> paramList = new ArrayList<String>();

		// 割引サービス契約番号
		paramList.add(wribSvcKeiNo);
		
/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		// 割引サービス契約番号に紐付く割引サービス契約内訳のステータスが"登録済み"のカレントレコード数を取得する。
		executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_014(paramList.toArray());
		
		JBSbatCommonDBInterface dataMap = null;
		
		// 取得分繰り返し
		while(null != (dataMap = db_KK_T_WRISVC_KEI_UCWK.selectNext()))
		{
			// 1件でも取得できた場合、全て'登録済み'ではないのでfalseをreturn
			return false;
		}
		
		// 1件も取得できなかった場合、全て'適用済み'とみなしtrueをreturn
		return true;
		
/* v4.00.03 add end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.03 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
//		// 割引サービス契約番号に一致する割引サービス契約内訳のカレントレコード数を取得する。
//		executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_003(paramList.toArray());
//		JBSbatCommonDBInterface dataMap = db_KK_T_WRISVC_KEI_UCWK.selectNext();
//		
//		int retCnt = 0;
//		if (dataMap != null)
//		{
//			// カレントレコード件数
//			retCnt = Integer.parseInt(dataMap.getString("UCWK_CNT"));
//		}
//		
//		// 割引サービス契約番号に一致する割引サービス契約内訳の適用済カレントレコード数を取得する。
//		executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_004(paramList.toArray());
//		JBSbatCommonDBInterface dataMapT = db_KK_T_WRISVC_KEI_UCWK.selectNext();
//		
//		int retCntTekiyo = 0;
//		if (dataMapT != null)
//		{
//			// 適用済カレントレコード件数
//			retCntTekiyo = Integer.parseInt(dataMapT.getString("TEKIYO_ZUMI_UCWK_CNT"));
//			
//		}
//		
//		return retCnt == retCntTekiyo ;
/* v4.00.03 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
		
	}

	/**
	 *入力情報（キャンペーン割引適用情報（ＳＯＲＴ後）中間ファイル）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckKKIFM104_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 債権確定年月項目チェック
		strValue = (String)rsMap.get("SAIKEN_FIX_YM");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															"債権確定年月"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu1", "6"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															"債権確定年月"});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															"債権確定年月"});
			return false;
		}

		// 割引サービス契約番号項目チェック
		strValue = (String)rsMap.get("WRIB_SVC_KEI_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															"割引サービス契約番号"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu1", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															"割引サービス契約番号"});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															"割引サービス契約番号"});
			return false;
		}

		// 割引サービス単価番号項目チェック
		strValue = (String)rsMap.get("WRIB_SVC_TANKA_NO");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															"割引サービス単価番号"});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu1", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															"割引サービス単価番号"});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															"割引サービス単価番号"});
			return false;
		}

		return true;
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	

	// 2013/12/26 ST4-2013-0000552 Del Start
//	/**
//	 * SQLKEY(KK_SELECT_012)で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_WRIB_SVC_KEI_KK_SELECT_012(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//		paramList.setValue(param[2].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_WRIB_SVC_KEI.selectBySqlDefine(paramList, KK_T_WRIB_SVC_KEI_KK_SELECT_012);
//	}
	// 2013/12/26 ST4-2013-0000552 Del End
/* v4.00.03 del start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
//	/**
//	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	割引サービス単価番号
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_M_WRIB_SVC_TANKA_KK_SELECT_001(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//
//		// DBアクセスを実行します
//		db_KK_M_WRIB_SVC_TANKA.selectBySqlDefine(paramList, KK_M_WRIB_SVC_TANKA_KK_SELECT_001);
//	}
/* v4.00.03 del end   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_WRIB_SVC_TANKA_KK_SELECT_002() throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// DBアクセスを実行します
		db_KK_M_WRIB_SVC_TANKA.selectBySqlDefine(paramList, KK_M_WRIB_SVC_TANKA_KK_SELECT_002);
	}
/* v4.00.07 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_M_WRIB_SVC_TANKA_KK_SELECT_003(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		
		// DBアクセスを実行します
		db_KK_M_WRIB_SVC_TANKA.selectBySqlDefine(paramList, KK_M_WRIB_SVC_TANKA_KK_SELECT_003);
	}

/* v4.00.07 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	
	// 2013/12/26 ST4-2013-0000552 Del Start
//	/**
//	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	割引サービス詳細コード
//	 *		 	割引サービス詳細適用開始年月日
//	 *		 	割引サービス詳細適用終了年月日
//	 *		 	予約適用年月日
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_M_WRIB_SVC_DTL_KK_SELECT_001(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_M_WRIB_SVC_DTL.selectBySqlDefine(paramList, KK_M_WRIB_SVC_DTL_KK_SELECT_001);
//	}
//
//	/**
//	 * SQLKEY(KK_SELECT_002)で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_002(Object[] param) throws Exception
//	{
//		// バイント変数のリストを生成します
//		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
//		paramList.setValue(param[0].toString());
//		paramList.setValue(param[1].toString());
//
//		// DBアクセスを実行します
//		db_KK_T_WRISVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_WRISVC_KEI_UCWK_KK_SELECT_002);
//	}
	// 2013/12/26 ST4-2013-0000552 Del End
/* v4.00.03 del start  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
//	/**
//	 * SQLKEY(KK_SELECT_003)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	割引サービス契約番号
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_003(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_003);
//	}
//
//	/**
//	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
//	 * <p>
//	 * <b>処理フロー</b><br>
//	 * <pre>
//	 * 1.引数でバイント変数を設定します。<br>
//	 *
//	 * 2.DBアクセスを実行します。<br>
//	 * 
//	 * 3.メソッドの呼び出し方です。<br>
//	 *		引数:
//	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
//	 *		 	割引サービス契約番号
//	 * </pre>
//	 * <p>
//	 * @param param バイント変数の値配列。
//	 * @throws Exception 業務サービス内で発生した例外全般。
//	 */
//	private void executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_004(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_004);
//	}
/* v4.00.03 del end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/* v4.00.03 add start +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
	/**
	 * SQLKEY(KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	割引サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_WRISVC_KEI_UCWK_KK_SELECT_014(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_014);
	}
/* v4.00.03 add end  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */	
	
	/**
	 * 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
	 * </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]);
		
		// 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マップに入れます。項目キーは以下に説明します。
	 *		 	割引サービス契約番号				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
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </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("ADD_DTM", setParam[49]);
		setMap.setValue("ADD_OPEACNT", setParam[50]);
		setMap.setValue("UPD_DTM", setParam[51]);
		setMap.setValue("UPD_OPEACNT", setParam[52]);
		setMap.setValue("DEL_DTM", setParam[53]);
		setMap.setValue("DEL_OPEACNT", setParam[54]);
		setMap.setValue("MK_FLG", setParam[55]);
		setMap.setValue("WRTGKEI_SVC_PAUSE_YMD", setParam[56]);
		setMap.setValue("WRTGKEI_SVC_PAUSE_RLS_YMD", setParam[57]);
		
		// DBアクセスを実行します
		db_KK_T_WRIB_SVC_KEI.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	// 2013/12/26 ST4-2013-0000552 Add Start
	/**
	 * 引数で指定されたCSVファイルの一行データをMapにして返却する（WRI_SVC_KEI_INFO_ITEM）
	 * 
	 * ダブルクォーテーションで囲まれている場合は、削除した文字列に変換する。
	 * @param commonItem 共通情報
	 * @param lineData 一行分のCSVデータ
	 * @return Map<String> 項目ごとにCSVデータを格納したMap
	 * @throws Exception 例外
	 **/
	static HashMap<String, String> convNonQuateStringToList_002(JBSbatCommonItem commonItem, String lineData) throws Exception
	{
		// CSV指定ファイル読込み
		// 戻り値格納用Map
		HashMap<String, String> resultMap = new HashMap<String, String>();
		try
		{
			String[] result = lineData.split(",");
			
			for (int i = 0; i < result.length; i++)
			{
				String colm = result[i];
	
				// 先頭 または 最後がダブルクォートの場合 
				if (colm.startsWith(KAKOIMOJI))
				{
					colm = colm.substring(1);
				}
				if (colm.endsWith(KAKOIMOJI))
				{
					colm = colm.substring(0, colm.length() - 1);
				}
				resultMap.put(WRI_SVC_KEI_INFO_ITEM.get(String.valueOf(i)), colm);
			}
		}
		catch (NoSuchElementException e)
		{
			// 例外処理
			commonItem.getLogPrint().printDebugLog("JBSbatKKHapieMmbHoseiChk.convNonQuateStringToList NoSuchElementException発生:");
			throw e;
		}

		// 1行分のデータを格納したMapを返却
		return resultMap;
	}
	
	/**
	 * 引数で指定されたCSVファイルの一行データをMapにして返却する（WRI_SVC_DTL_INFO_ITEM）
	 * ダブルクォーテーションで囲まれている場合は、削除した文字列に変換する。
	 * @param commonItem 共通情報
	 * @param lineData 一行分のCSVデータ
	 * @return Map<String> 項目ごとにCSVデータを格納したMap
	 * @throws Exception 例外
	 **/
	static HashMap<String, String> convNonQuateStringToList_003(JBSbatCommonItem commonItem, String lineData) throws Exception
	{
		// CSV指定ファイル読込み
		// 戻り値格納用Map
		HashMap<String, String> resultMap = new HashMap<String, String>();
		try
		{
			String[] result = lineData.split(",");
			
			for (int i = 0; i < result.length; i++)
			{
				String colm = result[i];
	
				// 先頭 または 最後がダブルクォートの場合 
				if (colm.startsWith(KAKOIMOJI))
				{
					colm = colm.substring(1);
				}
				if (colm.endsWith(KAKOIMOJI))
				{
					colm = colm.substring(0, colm.length() - 1);
				}
				resultMap.put(WRI_SVC_DTL_INFO_ITEM.get(String.valueOf(i)), colm);
			}
		}
		catch (NoSuchElementException e)
		{
			// 例外処理
			commonItem.getLogPrint().printDebugLog("JBSbatKKHapieMmbHoseiChk.convNonQuateStringToList NoSuchElementException発生:");
			throw e;
		}

		// 1行分のデータを格納したMapを返却
		return resultMap;
	}
	
	/**
	 * 引数で指定されたCSVファイルの一行データをMapにして返却する
	 * ダブルクォーテーションで囲まれている場合は、削除した文字列に変換する。
	 * @param commonItem 共通情報
	 * @param lineData 一行分のCSVデータ
	 * @return Map<String> 項目ごとにCSVデータを格納したMap
	 * @throws Exception 例外
	 **/
	static HashMap<String, String> convNonQuateStringToList_004(JBSbatCommonItem commonItem, String lineData) throws Exception
	{
		// CSV指定ファイル読込み
		// 戻り値格納用Map
		HashMap<String, String> resultMap = new HashMap<String, String>();
		try
		{
			String[] result = lineData.split(",");
			
			for (int i = 0; i < result.length; i++)
			{
				String colm = result[i];
	
				// 先頭 または 最後がダブルクォートの場合 
				if (colm.startsWith(KAKOIMOJI))
				{
					colm = colm.substring(1);
				}
				if (colm.endsWith(KAKOIMOJI))
				{
					colm = colm.substring(0, colm.length() - 1);
				}
				resultMap.put(WRI_SVC_KEI_UCWK_ITEM.get(String.valueOf(i)), colm);
			}
		}
		catch (NoSuchElementException e)
		{
			// 例外処理
			commonItem.getLogPrint().printDebugLog("JBSbatKKHapieMmbHoseiChk.convNonQuateStringToList NoSuchElementException発生:");
			throw e;
		}

		// 1行分のデータを格納したMapを返却
		return resultMap;
	}
	// 2013/12/26 ST4-2013-0000552 Add End
	// OM-2017-0000501 2017/07/07 ADD START
	/**
	 * 進捗登録処理<br>
	 * 割引サービス契約内訳ステータスが適用済の場合、進捗を登録します。<br>
	 * 
	 * @param wriSvcKeiUcwkMap 割引サービス契約内訳情報
	 * @throws Exception 例外が発生した場合
	 */
	private void addPrg(JBSbatCommonDBInterface wriSvcKeiUcwkMap) throws Exception
	{
		// 割引サービス契約内訳ステータスを取得
		String wriSvcKeiUcwkStat = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_UCWK_STAT);
		
		// 割引サービス契約内訳ステータスが適用済以外の場合、処理対象外
		if (!JKKBatConst.WRISVC_KEI_UCWK_STAT_TEKIYO_ZUMI.equals(wriSvcKeiUcwkStat))
		{
			return;
		}
		
		// 割引サービス契約番号に紐づくサービス契約情報を取得
		ArrayList<HashMap<String, Object>> svcKeiList = selectSvcKeiByWribSvcKeiNo(wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO));
		
		if(null != svcKeiList && 0 < svcKeiList.size())
		{
			// 取得したサービス契約番号分、進捗を登録する。
			for (HashMap<String, Object> svcKeiInfo : svcKeiList)
			{
				// システム年月日時分秒を取得
				String sysDateTimeStamp = JKKBatCommon.getSysDateTimeStamp();
				
				// 進捗登録用DBインターフェイス生成
				JBSbatCommonDBInterface prgDBInterface = new JBSbatCommonDBInterface();
				
				// 進捗番号 ← 採番
				prgDBInterface.setValue(JBSbatKK_T_PRG.PRG_NO, JCCOracleSeqUtil.getFormatedNextSeq(super.commonItem.getConnection(), SEQ_PRG_NO, "", 12));
				
				// サービス契約番号 ← 取得したサービス契約番号
				prgDBInterface.setValue(JBSbatKK_T_PRG.SVC_KEI_NO, svcKeiInfo.get(JBSbatKK_T_WRISVC_TG_KEI.SVC_KEI_NO));
				
				// 異動区分 ← 割引情報登録
				prgDBInterface.setValue(JBSbatKK_T_PRG.IDO_DIV, JKKStrConst.CD00576_WRIB_INF_ADD);
				
				// 異動年月日時分秒 ← システム年月日時分秒
				prgDBInterface.setValue(JBSbatKK_T_PRG.IDO_DTM, sysDateTimeStamp);
				
				// 進捗ステータス ← 割引・キャンペーン登録完了
				prgDBInterface.setValue(JBSbatKK_T_PRG.PRG_STAT, JKKStrConst.CD00647_CAMPAIGN_FIN);
				
				// 進捗年月日時分秒 ← バッチ運用日の翌日 ＋ システム年月日時分秒の時分秒
				// ANK-4145-00-00 MOD START
//				prgDBInterface.setValue(JBSbatKK_T_PRG.PRG_DTM, JPCBatCommon.addDay(super.opeDate, +1) + sysDateTimeStamp.substring(8));
				// 料金計算日の場合、異動トリガーを分散する
				if (prcCalDayFlg)
				{
					if (this.addPrgWribSvcKeiNo != null && wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO).equals(this.addPrgWribSvcKeiNo))
					{
						// 同一割引サービス契約番号の場合は同一日を設定する
					}
					else
					{
						this.addPrgWribSvcKeiNo = wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO);

						// 上記以外の場合はサービス契約番号の末尾で進捗年月日を振り分ける
						String svcKeiNo = (String) svcKeiInfo.get(JBSbatKK_T_WRISVC_TG_KEI.SVC_KEI_NO);
						try
						{
							int val = Integer.parseInt(svcKeiNo.substring(9,10));
							
							if (0 == val%2)
							{
								addNum = 2;
							}
							else
							{
								addNum = 1;
							}
						}
						catch (NumberFormatException e)
						{
							addNum = 1;
						}
					}
				}
				prgDBInterface.setValue(JBSbatKK_T_PRG.PRG_DTM, JPCBatCommon.addDay(super.opeDate, +addNum) + sysDateTimeStamp.substring(8));
				// ANK-4145-00-00 MOD END
				
				// 進捗特記事項１  ← 割引サービスコード、割引サービス詳細コード
				// ※本来、キャンペーンコードかキャンペーン名称を出力したほうがよいが、
				//  （割引サービス契約割引情報照会画面に表示される項目であれば、オペレータが判断可能であるため）
				//   OM-2017-0000501対応時に、進捗登録するためだけに、わざわざキャンペーンを取得する処理を追加することはしない方向で整理した。
				prgDBInterface.setValue(JBSbatKK_T_PRG.PRG_TKJK_1, "割引適用済（"
																	+ "割引サービスコード："
																	+ this.keepWribSvcKeiMap.getString(JBSbatKK_T_WRIB_SVC_KEI.WRIB_SVC_CD)
																	+ " 割引サービス詳細コード："
																	+ wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_DTL_CD) 
																	+  "）"
																	);
				
				// 進捗登録
				this.db_KK_T_PRG.insertByPrimaryKeys(prgDBInterface);
			}
		}
		else
		{
			// 進捗登録できない場合は、業務ログ出力
			String umekomiStr = "割引サービス契約番号:" +  wriSvcKeiUcwkMap.getString(JBSbatKK_T_WRISVC_KEI_UCWK.WRIB_SVC_KEI_NO)
									+ " [進捗登録対象のサービス契約番号が取得できませんでした]" ;
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.EKKB0010CW, new String[]{umekomiStr});
			
			// javaを警告終了するため、エラーフラグ設定
			// ※通常のバッチサービスの実装の場合、「super.commonItem.setErrFlg(true)」とするが、
			//   当バッチは、terminal（終了処理）に更新処理が実装されているため、
			//   terminal（終了処理）から呼び出しされた場合、commonItemのERR_FLGを更新しても無意味となる。
			//   したがって、JBSbatBatchInvokerのERR_FLGを直接操作。
			JBSbatBatchInvoker.setErrFlg(true);
		}
	}
	
	/**
	 * サービス契約情報取得<br>
	 * 割引サービス契約番号をもとに割引サービス対象契約のサービス契約情報を取得します。<br>
	 * 
	 * @param wribSvcKeiNo 割引サービス契約番号
	 * @return サービス契約情報
	 * @throws Exception 例外が発生した場合
	 */
	private ArrayList<HashMap<String, Object>> selectSvcKeiByWribSvcKeiNo(String wribSvcKeiNo) throws Exception
	{
		// 戻り値
		ArrayList<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();

		String[] param =
		{
				wribSvcKeiNo
				,super.opeDate
				,super.opeDate
		};
		
		executeKK_T_WRISVC_TG_KEI_KK_SELECT_057(param);
		JBSbatCommonDBInterface dbInterface = db_KK_T_WRISVC_TG_KEI.selectNext();

		while (dbInterface != null)
		{
			resultList.add((HashMap<String, Object>)dbInterface.getMap());
			dbInterface = db_KK_T_WRISVC_TG_KEI.selectNext();
		}

		return resultList;
	}
	
	/**
	 * SQLKEY(KK_SELECT_057)で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_057(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_WRISVC_TG_KEI.selectBySqlDefine(paramList, KK_T_WRISVC_TG_KEI_KK_SELECT_057);
	}

	// OM-2017-0000501 2017/07/07 ADD END
	// ANK-4145-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_012)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	イベントコード
	 *		 	イベント年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_SCHDL_TEIGI_KK_SELECT_024(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_KK_SELECT_024);
	}
	// ANK-4145-00-00 ADD END
}
