/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKSvkeiInfStku
*	ソースファイル名	：JBSbatKKSvkeiInfStku.java
*	作成者				：富士通　
*	作成日				：2011年10月31日
*＜機能概要＞
*　サービス契約情報取得部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/31	FJ)神吉		新規作成
*	v1.01.00	2012/02/11  FJ)神吉		ST2-2012-0000192障害対応
*	v2.00.00	2012/04/18	FJ)倉上		【TAI-2012-0000027】排他制御対応
*	v3.00.00	2012/06/26	FJ)神吉		【SGY-2012-0000037】住所変更対応
*	v4.00.00	2013/01/30	FJ)団		【KT1-2013-0000145】障害対応
*	v6.00.00	2013/12/16	FJ)神吉		【OM-2013-0004729】障害対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKKIFM144;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatCK_T_CUST_KOJIN;
import eo.business.util.table.JBSbatCK_T_HOJIN_RRKS;
import eo.business.util.table.JBSbatCK_T_RRKS;
import eo.business.util.table.JBSbatKK_M_WRIB_SVC;
import eo.business.util.table.JBSbatKK_T_KAKINS;
import eo.business.util.table.JBSbatKK_T_KCN_RNK_KEI_INF;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_WRIB_SVC_KEI;
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.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKSvkeiInfStku extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(連絡先)*/
	private static final String D_TBL_NAME_CK_T_RRKS = "CK_T_RRKS";

	/** テーブル(法人連絡先)*/
	private static final String D_TBL_NAME_CK_T_HOJIN_RRKS = "CK_T_HOJIN_RRKS";

	/** テーブル(割引サービス対象契約)*/
	private static final String D_TBL_NAME_KK_T_WRISVC_TG_KEI = "KK_T_WRISVC_TG_KEI";

	/** SQL定義キー(KK_SELECT_097)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_097 = "KK_SELECT_097";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String CK_T_RRKS_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String CK_T_HOJIN_RRKS_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_104)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_104 = "KK_SELECT_104";

	/** SQL定義キー(KK_SELECT_013)*/
	private static final String KK_T_WRISVC_TG_KEI_KK_SELECT_013 = "KK_SELECT_013";

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;
	
	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI2 = null;

	/** テーブルアクセスクラス(連絡先)*/
	private JBSbatSQLAccess db_CK_T_RRKS = null;

	/** テーブルアクセスクラス(法人連絡先)*/
	private JBSbatSQLAccess db_CK_T_HOJIN_RRKS = null;

	/** テーブルアクセスクラス(割引サービス対象契約)*/
	private JBSbatSQLAccess db_KK_T_WRISVC_TG_KEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI2 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_CK_T_RRKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_RRKS);
		db_CK_T_HOJIN_RRKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_HOJIN_RRKS);
		db_KK_T_WRISVC_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_WRISVC_TG_KEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
			super.logPrint.printDebugLog("execute_START");
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// SQL実行結果取得用mapを生成（サービス契約情報取得）
		JBSbatCommonDBInterface kktSvcKeiMap_097 = new JBSbatCommonDBInterface(); 
		
		String svcKeiNo      = "";							// サービス契約番号
		String svcKeiStat    = "";							// サービス契約ステータス
		String kcnKeiStatCd  = "";							// ＫＣＮ契約状態コード 
		String keishaPcd = "";								// 契約者郵便番号
		StringBuilder keishaAdr = new StringBuilder();		// 契約_住所
		String keishaStateNm = "";							// 契約者都道府県名
		String keishaCityNm = "";							// 契約者市区町村名
		String keishaOaztsuNm = "";							// 契約者大字通称名
		String keishaAzchoNm = "";							// 契約者字丁目名
		String keishaBnchigo = "";							// 契約者番地号
		String keishaAdrttm = "";							// 契約者住所補記・建物名
		String keishaAdrrm = "";							// 契約者住所補記・部屋番号
		String custNm = "";									// 契約_契約名
		String keishaTypeCd = "";							// 契約者タイプコード
		String mskmshoNo = "";								// 申込書番号
		String telNo = "";									// 携帯_ＰＨＳ番号
		String offcNm = "";									// 勤務先名
		String offcTelNo = ""; 								// 勤務先電話番号
		String offcNisnNo = ""; 							// 勤務先内線番号
		String tntshaNm = ""; 								// 担当者名
		String tntshaKana = ""; 							// 担当者名カナ
		String svcCd = "";									// サービスコード
		int svcCdCount1 = 0;								// サービスコード１カウント
		int svcCdCount2 = 0;								// サービスコード２カウント
		String sysId = ""; 									// 契約者番号
		String seikyKeiNo = ""; 							// 請求先番号
		String svcStaYmd = ""; 								// サービス開始年月日
		String svcEndYmd = ""; 								// サービス終了年月日
		String svcChrgStaymd = "";							// サービス課金開始年月日
		String keiDiv = ""; 								// 契約区分
		String kcnChrgStaymd = ""; 							// ＫＣＮ課金開始日
		String shosaZumiFlg = ""; 							// 照査済フラグ
		String shosaYmd = ""; 								// 照査年月日
		String svcCancelYmd = ""; 							// サービスキャンセル年月日
		String svcDslYmd = ""; 								// サービス解約年月日
		String eohTelSnglCd = ""; 							// eo光電話単独区分
		String packKindCd = ""; 							// パック種類
		String wribTypeCd = "";								// 割引タイプコード
		String packTstaYmd = ""; 							// パック適用開始年月日
		String packTendYmd = ""; 							// パック適用終了年月日
		String updFlg = "";									// 更新フラグ
		String idoDiv = "";									// 異動区分
		ArrayList<String> svcCdArray = new ArrayList<String>();				// サービスコード格納リスト
		
		svcKeiNo = JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM144.SVC_KEI_NO));
		
		// ログレベルがデバッグモードの場合
		if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
		{
			super.logPrint.printDebugLog("サービス契約番号：" +  svcKeiNo);
		}
		
		String unyouDate = super.opeDate;
		
		String [] whereParam = {unyouDate, unyouDate, svcKeiNo, unyouDate};
		
		executeKK_T_SVC_KEI_KK_SELECT_097(whereParam);
		
		// 検索結果を取得する
		for(kktSvcKeiMap_097 = db_KK_T_SVC_KEI.selectNext(); null != kktSvcKeiMap_097 ; kktSvcKeiMap_097 = db_KK_T_SVC_KEI.selectNext())
		{
			keishaAdr = new StringBuilder();		// 契約_住所
			keishaStateNm = "";						// 契約者都道府県名
			keishaCityNm = "";						// 契約者市区町村名
			keishaOaztsuNm = "";					// 契約者大字通称名
			keishaAzchoNm = "";						// 契約者字丁目名
			keishaBnchigo = "";						// 契約者番地号
			keishaAdrttm = "";						// 契約者住所補記・建物名
			keishaAdrrm = "";						// 契約者住所補記・部屋番号
			// サービス契約ステータス
			svcKeiStat = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
			
			// 異動区分
			idoDiv = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.IDO_DIV));
			
			// 項目設定する。
			// サービス契約ステータスが「010（受付済）」または「020（照査済）」または「030（締結済）」
			if("010".equals(svcKeiStat) || "020".equals(svcKeiStat) || "030".equals(svcKeiStat))
			{
				// ＫＣＮ契約状態コードに「01（契約手続中）」を設定
				kcnKeiStatCd = "01";
			}
			// サービス契約ステータスが「100（サービス提供中）」の場合
			else if("100".equals(svcKeiStat))
			{
				// ＫＣＮ契約状態コードに「10（契約中）」を設定
				kcnKeiStatCd = "10";
			}
			// サービス契約ステータスが「210（休止・中断中）」または「220（停止中）」の場合
			else if("210".equals(svcKeiStat) || "220".equals(svcKeiStat))
			{
				// ＫＣＮ契約状態コードに「21（中断中）」を設定
				kcnKeiStatCd = "21";
			}
			// サービス契約ステータスが「910（解約済）」の場合
			else if("910".equals(svcKeiStat))
			{
				// 異動区分が「00005（解約）」または「00006（撤去（解約））」の場合
				if("00005".equals(idoDiv) || "00006".equals(idoDiv))
				{
					// ＫＣＮ契約状態コードに「91（解約済）」を設定
					kcnKeiStatCd = "91";
				}
				// 異動区分が「00007（強制解約確定）」の場合
				else if("00007".equals(idoDiv))
				{
					// ＫＣＮ契約状態コードに「92（強制解約済）」を設定
					kcnKeiStatCd = "92";
				}
			}
			// サービス契約ステータスが「920（キャンセル済）」の場合
			else if("920".equals(svcKeiStat))
			{
				// ＫＣＮ契約状態コードに「93（キャンセル済）」を設定
				kcnKeiStatCd = "93";
			}
			
			// ＫＣＮ契約利用場所郵便番号
			keishaPcd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_PCD));
			// 契約者都道府県名
			keishaStateNm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_STATE_NM));
			// 契約者市区町村名
			keishaCityNm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_CITY_NM));
			// 契約者大字通称名
			keishaOaztsuNm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_OAZTSU_NM));
			// 契約者字丁目名
			keishaAzchoNm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_AZCHO_NM));
			// 契約者番地号
			keishaBnchigo = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_BNCHIGO));
			// 契約者住所補記・建物名
			keishaAdrttm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_ADRTTM));
			// 契約者住所補記・部屋番号
			keishaAdrrm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_ADRRM));
			
			// ＫＣＮ契約利用場所住所
			keishaAdr.append(keishaStateNm).append(keishaCityNm).append(keishaOaztsuNm).append(keishaAzchoNm).
						append(keishaBnchigo).append(keishaAdrttm).append(keishaAdrrm);
			// ＫＣＮ契約者名
			custNm = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.CUST_NM));
			// ＫＣＮ契約者ＰＨＳ番号
			telNo = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_RRKS.TELNO));
			// 契約者タイプコード
			keishaTypeCd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.KEISHA_TYPE_CD));
			// 申込書番号
			mskmshoNo = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO));
			// 契約者番号(SYSID)
			sysId = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatCK_T_CUST.SYSID));
			// 請求契約番号
			seikyKeiNo = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_KAKINS.SEIKY_KEI_NO));
			// サービス開始年月日
			svcStaYmd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));
			// サービス終了年月日
			svcEndYmd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_ENDYMD));
			// サービス課金開始年月日
			svcChrgStaymd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
			
			// 照査年月日
			shosaYmd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SHOSA_YMD));
			
			// サービス契約ステータスが「010（受付済）」の場合
			if("010".equals(svcKeiStat))
			{
				// 照査済フラグに「0」を設定
				shosaZumiFlg = "0";
				// 照査年月日に空文字を設定
				shosaYmd = "";
			}
			// それ以外の場合
			else
			{
				// 照査済フラグに「1」を設定
				shosaZumiFlg = "1";
			}
			
			// サービスキャンセル年月日
			svcCancelYmd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_CANCEL_YMD));
			
			// サービス解約年月日
			svcDslYmd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_097.getString(JBSbatKK_T_SVC_KEI.SVC_DSL_YMD));
			
			//項目を設定
			outmap.setString(JBSbatKKIFM144.SVC_KEI_NO, svcKeiNo);						// サービス契約番号
			outmap.setString(JBSbatKKIFM144.KCN_KEI_STAT_CD, kcnKeiStatCd);				// ＫＣＮ契約状態コード
			outmap.setString(JBSbatKKIFM144.KCN_KEI_USE_PLC_PCD, keishaPcd);			// ＫＣＮ契約利用場所郵便番号
			outmap.setString(JBSbatKKIFM144.KCN_KEI_USE_PLC_AD, keishaAdr.toString());	// ＫＣＮ契約利用場所住所
			outmap.setString(JBSbatKKIFM144.KCN_KEISHA_NM, custNm);						// ＫＣＮ契約者名
			outmap.setString(JBSbatKKIFM144.MSKMSHO_NO, mskmshoNo);						// 申込書番号
			outmap.setString(JBSbatKKIFM144.KCN_KEISHA_PHS_NO, telNo);					// ＫＣＮ契約者PHS番号
			outmap.setString(JBSbatKKIFM144.SYSID, sysId);								// 契約者番号
			outmap.setString(JBSbatKKIFM144.SEIKY_KEI_NO, seikyKeiNo);					// 請求契約番号
			outmap.setString(JBSbatKKIFM144.SVC_STAYMD, svcStaYmd);						// サービス開始年月日
			outmap.setString(JBSbatKKIFM144.SVC_ENDYMD, svcEndYmd);						// サービス終了年月日
			outmap.setString(JBSbatKKIFM144.SVC_CHRG_STAYMD, svcChrgStaymd);			// サービス課金開始年月日
			outmap.setString(JBSbatKKIFM144.SHOSA_ZUMI_FLG, shosaZumiFlg);				// 照査済フラグ
			outmap.setString(JBSbatKKIFM144.SHOSA_YMD, shosaYmd);						// 照査年月日
			outmap.setString(JBSbatKKIFM144.SVC_CANCEL_YMD, svcCancelYmd);				// サービスキャンセル年月日
			outmap.setString(JBSbatKKIFM144.SVC_DSL_YMD, svcDslYmd);					// サービス解約年月日
			
			// 契約者タイプコードが"1"（個人）の場合
			if("1".equals(keishaTypeCd))
			{
				// SQL実行結果取得用mapを生成（お客様＜個人＞取得）
				JBSbatCommonDBInterface cktRrksMap_002 =  new JBSbatCommonDBInterface(); 
				
				String [] whereKojinParam = {sysId, unyouDate};
				
				executeCK_T_RRKS_KK_SELECT_002(whereKojinParam);
				
				// 検索結果を取得する
				for(cktRrksMap_002 = db_CK_T_RRKS.selectNext(); null != cktRrksMap_002 ; cktRrksMap_002 = db_CK_T_RRKS.selectNext())
				{
					// 勤務先名
					offcNm = JBSbatStringUtil.Rtrim(cktRrksMap_002.getString(JBSbatCK_T_CUST_KOJIN.OFFC_NM));
					// 勤務先電話番号
					offcTelNo = JBSbatStringUtil.Rtrim(cktRrksMap_002.getString(JBSbatCK_T_CUST_KOJIN.OFFC_TELNO));
					// 勤務先内線番号
					offcNisnNo = JBSbatStringUtil.Rtrim(cktRrksMap_002.getString(JBSbatCK_T_CUST_KOJIN.OFFC_NISNNO));
				}
			}
			// 契約者タイプコードが"2"（法人）の場合
			else if("2".equals(keishaTypeCd))
			{
				// SQL実行結果取得用mapを生成（お客様＜法人＞取得）
				JBSbatCommonDBInterface cktHojinRrksMap_002 = new JBSbatCommonDBInterface();
				
				String [] whereHojinParam = {sysId, unyouDate};
				
				executeCK_T_HOJIN_RRKS_KK_SELECT_002(whereHojinParam);
				
				// 検索結果を取得する
				for(cktHojinRrksMap_002 = db_CK_T_HOJIN_RRKS.selectNext(); null != cktHojinRrksMap_002 ; cktHojinRrksMap_002 = db_CK_T_HOJIN_RRKS.selectNext())
				{
					// 法人連絡先担当者名
					tntshaNm = JBSbatStringUtil.Rtrim(cktHojinRrksMap_002.getString(JBSbatCK_T_HOJIN_RRKS.HJRRKS_TNTSHA_NM));
					// 法人連絡先担当者カナ名
					tntshaKana = JBSbatStringUtil.Rtrim(cktHojinRrksMap_002.getString(JBSbatCK_T_HOJIN_RRKS.HJRRKS_TNTSHA_KANA));
				}
			}
			
			//項目を設定
			outmap.setString(JBSbatKKIFM144.KCN_KEISHA_PHS_NO, telNo);		// ＫＣＮ契約者ＰＨＳ番号
			outmap.setString(JBSbatKKIFM144.OFFC_NM, offcNm);				// 勤務先名
			outmap.setString(JBSbatKKIFM144.OFFC_TELNO, offcTelNo);			// 勤務先電話番号
			outmap.setString(JBSbatKKIFM144.OFFC_NISNNO, offcNisnNo);		// 勤務先内線番号
			
			//項目を設定
			outmap.setString(JBSbatKKIFM144.HJRRKS_TNTSHA_NM, tntshaNm);		// 法人連絡先担当者名
			outmap.setString(JBSbatKKIFM144.HJRRKS_TNTSHA_KANA, tntshaKana);	// 法人連絡先担当者カナ名
			
			// SQL実行結果取得用mapを生成（サービス契約のサービスコード取得）
			JBSbatCommonDBInterface kktSvcKeiMap_104 = new JBSbatCommonDBInterface();
			
			String [] whereSvcKeiParam = {svcKeiNo, unyouDate, unyouDate, unyouDate, unyouDate, unyouDate};
			
			executeKK_T_SVC_KEI_KK_SELECT_104(whereSvcKeiParam);
			
			// 検索結果を取得する
			for(kktSvcKeiMap_104 = db_KK_T_SVC_KEI2.selectNext(); null != kktSvcKeiMap_104 ; kktSvcKeiMap_104 = db_KK_T_SVC_KEI2.selectNext())
			{
				// サービスコード
				svcCd = JBSbatStringUtil.Rtrim(kktSvcKeiMap_104.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
				
				svcCdArray.add(svcCd);
			}
			
			// サービスコードリスト分の繰り返し
			for(int i = 0; i < svcCdArray.size(); i++)
			{
				// サービスコードが"01"の場合
				if("01".equals(svcCdArray.get(i)))
				{
					svcCdCount1++;
				}
				// サービスコードが"02"の場合
				else if("02".equals(svcCdArray.get(i)))
				{
					svcCdCount2++;
				}
			}
			
			// サービスコードカウント１が「1」以上、サービスコードカウント２が「0」の場合
			if(svcCdCount1 >= 1 && svcCdCount2 == 0)
			{
				// ＫＣＮ契約コード
				keiDiv = "1";
				// eo光電話単独コード
				eohTelSnglCd = "0";
				// パック種類コード
				packKindCd = "001";
			}
			// サービスコードカウント１が「1」以上、サービスコードカウント２が「1」以上の場合
			else if(svcCdCount1 >= 1 && svcCdCount2 >= 1)
			{
				// ＫＣＮ契約コード
				keiDiv = "1";
				// eo光電話単独コード
				eohTelSnglCd = "0";
				// パック種類コード
				packKindCd = "001";
			}
			// サービスコードカウント１が「0」で、サービスコードカウント２が「1」以上の場合
			else if(svcCdCount1 == 0 && svcCdCount2 >= 1)
			{
				// ＫＣＮ契約コード
				keiDiv = "2";
				// eo光電話単独コード
				eohTelSnglCd = "1";
				// パック種類コード
				packKindCd = "002";
			}
			// それ以外の場合
			else
			{
				// ＫＣＮ契約コード
				keiDiv = "0";
				// eo光電話単独コード
				eohTelSnglCd = "0";
				// パック種類コード
				packKindCd = "001";
			}
			
			//項目を設定
			outmap.setString(JBSbatKKIFM144.KCN_KEI_CD, keiDiv);			// ＫＣＮ契約コード
			outmap.setString(JBSbatKKIFM144.EOH_TEL_SNGL_CD, eohTelSnglCd);		// eo光電話単独コード
			outmap.setString(JBSbatKKIFM144.PACK_KIND_CD, packKindCd);		// パック種類コード
			
			// SQL実行結果取得用mapを生成（割引サービス情報取得）
			JBSbatCommonDBInterface kktWrisvcTgKeiMap_013 = new JBSbatCommonDBInterface();
			
			String [] whereWrisvcParam = {unyouDate, unyouDate, svcKeiNo};
			
			executeKK_T_WRISVC_TG_KEI_KK_SELECT_013(whereWrisvcParam);
			
			// 検索結果を取得する
			for(kktWrisvcTgKeiMap_013 = db_KK_T_WRISVC_TG_KEI.selectNext(); null != kktWrisvcTgKeiMap_013 ; 
														kktWrisvcTgKeiMap_013 = db_KK_T_WRISVC_TG_KEI.selectNext())
			{
				wribTypeCd = JBSbatStringUtil.Rtrim(kktWrisvcTgKeiMap_013.getString(JBSbatKK_M_WRIB_SVC.WRIB_TYPE_CD));
				
				// 割引タイプコードが"10"(セット割引）の場合
				if("10".equals(wribTypeCd))
				{
					// パック適用開始年月日
					packTstaYmd = JBSbatStringUtil.Rtrim(kktWrisvcTgKeiMap_013.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_STA_YMD));
					// パック適用終了年月日
					packTendYmd = JBSbatStringUtil.Rtrim(kktWrisvcTgKeiMap_013.getString(JBSbatKK_T_WRIB_SVC_KEI.SVC_ENDYMD));
				}
			}
			
			//項目を設定
			outmap.setString(JBSbatKKIFM144.PACK_TSTAYMD, packTstaYmd);		// パック適用開始年月日
			outmap.setString(JBSbatKKIFM144.PACK_TENDYMD, packTendYmd);		// パック適用終了年月日
			outmap.setString(JBSbatKKIFM144.UPD_DTM, 
					JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKK_T_KCN_RNK_KEI_INF.UPD_DTM)));	// 更新年月日時分秒
			
			// ログレベルがデバッグモードの場合
			if(super.logPrint.chkLogLevel(JBSbatLogUtil.MODE_DEBUG))
			{
				super.logPrint.printDebugLog("サービス契約ステータス：" +  svcKeiStat);
				super.logPrint.printDebugLog("ＫＣＮ契約状態コード ：" +  kcnKeiStatCd);
				super.logPrint.printDebugLog("ＫＣＮ契約利用場所郵便番号：" +  keishaPcd);
				super.logPrint.printDebugLog("ＫＣＮ契約利用場所住所：" +  keishaAdr.toString());
				super.logPrint.printDebugLog("契約者都道府県名：" +  keishaStateNm);
				super.logPrint.printDebugLog("契約者市区町村名：" +  keishaCityNm);
				super.logPrint.printDebugLog("契約者大字通称名：" +  keishaOaztsuNm);
				super.logPrint.printDebugLog("契約者字丁目名：" +  keishaAzchoNm);
				super.logPrint.printDebugLog("契約者番地号：" +  keishaBnchigo);
				super.logPrint.printDebugLog("契約者住所補記・建物名：" +  keishaAdrttm);
				super.logPrint.printDebugLog("契約者住所補記・部屋番号：" +  keishaAdrrm);
				super.logPrint.printDebugLog("ＫＣＮ契約者名：" +  custNm);
				super.logPrint.printDebugLog("契約者タイプコード：" +  keishaTypeCd);
				super.logPrint.printDebugLog("申込書番号：" +  mskmshoNo);
				super.logPrint.printDebugLog("ＫＣＮ契約者ＰＨＳ番号：" +  telNo);
				super.logPrint.printDebugLog("勤務先名：" +  offcNm);
				super.logPrint.printDebugLog("勤務先電話番号：" +  offcTelNo);
				super.logPrint.printDebugLog("勤務先内線番号：" +  offcNisnNo);
				super.logPrint.printDebugLog("法人連絡先担当者名：" +  tntshaNm);
				super.logPrint.printDebugLog("法人連絡先担当者カナ名：" +  tntshaKana);
				super.logPrint.printDebugLog("サービスコード：" +  svcCd);
				super.logPrint.printDebugLog("サービスコードカウント１：" +  svcCdCount1);
				super.logPrint.printDebugLog("サービスコードカウント２：" +  svcCdCount2);
				super.logPrint.printDebugLog("SYSID：" +  sysId);
				super.logPrint.printDebugLog("請求契約番号：" +  seikyKeiNo);
				super.logPrint.printDebugLog("サービス開始年月日：" +  svcStaYmd);
				super.logPrint.printDebugLog("サービス終了年月日：" +  svcEndYmd);
				super.logPrint.printDebugLog("サービス課金開始年月日：" +  svcChrgStaymd);
				super.logPrint.printDebugLog("ＫＣＮ契約コード：" +  keiDiv);
				super.logPrint.printDebugLog("ＫＣＮ課金開始年月日：" +  kcnChrgStaymd);
				super.logPrint.printDebugLog("照査済フラグ：" +  shosaZumiFlg);
				super.logPrint.printDebugLog("照査年月日：" +  shosaYmd);
				super.logPrint.printDebugLog("サービスキャンセル年月日：" +  svcCancelYmd);
				super.logPrint.printDebugLog("サービス解約年月日：" +  svcDslYmd);
				super.logPrint.printDebugLog("eo光電話単独コード：" +  eohTelSnglCd);
				super.logPrint.printDebugLog("パック種類コード：" +  packKindCd);
				super.logPrint.printDebugLog("割引タイプコード：" +  wribTypeCd);
				super.logPrint.printDebugLog("パック適用開始年月日：" +  packTstaYmd);
				super.logPrint.printDebugLog("パック適用終了年月日：" +  packTendYmd);
				super.logPrint.printDebugLog("異動区分：" +  idoDiv);
				super.logPrint.printDebugLog("更新フラグ：" +  updFlg);
			}
			
			//出力フラグを設定
			outmap.setOutFlg(true);
			
			//出力共通電文に入出力インターフェースを設定する。
			outputBean.addOutMapList(outmap);
		}

		super.logPrint.printDebugLog("execute_END");
		
		//出力共通電文を返却
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI2.close();
		db_CK_T_RRKS.close();
		db_CK_T_HOJIN_RRKS.close();
		db_KK_T_WRISVC_TG_KEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_097)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	予約適用年月日
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_097(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_097);
	}

	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_RRKS_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_RRKS.selectBySqlDefine(paramList, CK_T_RRKS_KK_SELECT_002);
	}

	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_HOJIN_RRKS_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_HOJIN_RRKS.selectBySqlDefine(paramList, CK_T_HOJIN_RRKS_KK_SELECT_002);
	}

	/**
	 * SQLKEY(KK_SELECT_104)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SVC_KEI_KK_SELECT_104(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI2.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_104);
	}

	/**
	 * SQLKEY(KK_SELECT_013)で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_013(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_013);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
