/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKHnsokuCdChsht
*	ソースファイル名	：JBSbatKKHnsokuCdChsht.java
*	作成者				：富士通　
*	作成日				：2011年10月04日
*＜機能概要＞
*　販売促進コード抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/04   富士通		新規作成
*	v5.00.00	2013/04/14  FJ)掛木		【ST6-2013-0000031】ディレード対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCbatShoriIraiUtil;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM093;
import eo.business.util.file.JBSbatKKIFM094;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_M_DCHSKM;
import eo.business.util.table.JBSbatKK_M_KKTK_SVC;
import eo.business.util.table.JBSbatKK_M_OP_SVC;
import eo.business.util.table.JBSbatKK_M_PCRS;
import eo.business.util.table.JBSbatKK_M_PPLAN;
import eo.business.util.table.JBSbatKK_M_PRC_GRP;
import eo.business.util.table.JBSbatKK_M_SBOP_SVC;
import eo.business.util.table.JBSbatKK_M_SEIOPSVC;
import eo.business.util.table.JBSbatKK_M_SVC;
import eo.business.util.table.JBSbatKK_T_DCHSKMST;
import eo.business.util.table.JBSbatKK_T_DCHSKMST_TG_KEI;
import eo.business.util.table.JBSbatKK_T_KKTK_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_MSKM_AGNT;
import eo.business.util.table.JBSbatKK_T_MSKM_DTL;
import eo.business.util.table.JBSbatKK_T_OP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SBOP_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SEIOPSVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SVC_KEI_UCWK;
import eo.business.util.table.JBSbatKK_T_SVKEI_KAISEN_UW;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.business.util.table.JBSbatKU_T_KOJI_STEP_PRG;
import eo.business.util.table.JBSbatKU_T_MSKM_DTL_KOJIAK;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* 販売促進コード抽出依頼画面からの依頼内容を受け取り、販売促進コード抽出ファイルを作成する。<br>
*<BR>
* @author 富士通
*/
public class JBSbatKKHnsokuCdChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(データ抽出項目設定)*/
	private static final String D_TBL_NAME_KK_T_DCHSKMST = "KK_T_DCHSKMST";

	/** テーブル(データ抽出項目設定対象契約)*/
	private static final String D_TBL_NAME_KK_T_DCHSKMST_TG_KEI = "KK_T_DCHSKMST_TG_KEI";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(サービス契約内訳)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI_UCWK = "KK_T_SVC_KEI_UCWK";

	/** テーブル(オプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_OP_SVC_KEI = "KK_T_OP_SVC_KEI";

	/** テーブル(サブオプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_SBOP_SVC_KEI = "KK_T_SBOP_SVC_KEI";

	/** テーブル(機器提供サービス契約)*/
	private static final String D_TBL_NAME_KK_T_KKTK_SVC_KEI = "KK_T_KKTK_SVC_KEI";

	/** テーブル(サービス契約回線内訳)*/
	private static final String D_TBL_NAME_KK_T_SVKEI_KAISEN_UW = "KK_T_SVKEI_KAISEN_UW";

	/** テーブル(請求オプションサービス契約)*/
	private static final String D_TBL_NAME_KK_T_SEIOPSVC_KEI = "KK_T_SEIOPSVC_KEI";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(申込明細)*/
	private static final String D_TBL_NAME_KK_T_MSKM_DTL = "KK_T_MSKM_DTL";

	/** テーブル(工事案件)*/
	private static final String D_TBL_NAME_KU_T_KOJIAK = "KU_T_KOJIAK";

	/** テーブル(申込明細＿工事案件)*/
	private static final String D_TBL_NAME_KU_T_MSKM_DTL_KOJIAK = "KU_T_MSKM_DTL_KOJIAK";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_DCHSKMST_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_DCHSKMST_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_004)*/
	private static final String KK_T_DCHSKMST_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_DCHSKMST_TG_KEI_KK_SELECT_001 = "KK_SELECT_001";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_DCHSKMST_TG_KEI_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(KK_SELECT_003)*/
	private static final String KK_T_DCHSKMST_TG_KEI_KK_SELECT_003 = "KK_SELECT_003";

	/** SQL定義キー(KK_SELECT_004)*/
	private static final String KK_T_DCHSKMST_TG_KEI_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(KK_SELECT_069)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_069 = "KK_SELECT_069";

	/** SQL定義キー(KK_SELECT_019)*/
	private static final String KK_T_SVC_KEI_UCWK_KK_SELECT_019 = "KK_SELECT_019";

	/** SQL定義キー(KK_SELECT_017)*/
	private static final String KK_T_OP_SVC_KEI_KK_SELECT_017 = "KK_SELECT_017";

	/** SQL定義キー(KK_SELECT_011)*/
	private static final String KK_T_SBOP_SVC_KEI_KK_SELECT_011 = "KK_SELECT_011";

	/** SQL定義キー(KK_SELECT_016)*/
	private static final String KK_T_KKTK_SVC_KEI_KK_SELECT_016 = "KK_SELECT_016";

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String KK_T_SVKEI_KAISEN_UW_KK_SELECT_008 = "KK_SELECT_008";

	/** SQL定義キー(KK_SELECT_007)*/
	private static final String KK_T_SEIOPSVC_KEI_KK_SELECT_007 = "KK_SELECT_007";

	/** SQL定義キー(KK_SELECT_008)*/
	private static final String CK_T_CUST_KK_SELECT_008 = "KK_SELECT_008";

	/** SQL定義キー(KK_SELECT_005)*/
	private static final String KK_T_MSKM_DTL_KK_SELECT_005 = "KK_SELECT_005";

	/** SQL定義キー(KK_SELECT_004)*/
	private static final String KU_T_KOJIAK_KK_SELECT_004 = "KK_SELECT_004";

	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KU_T_MSKM_DTL_KOJIAK_KK_SELECT_001 = "KK_SELECT_001";

	/** テーブルアクセスクラス(データ抽出項目設定)*/
	private JBSbatSQLAccess db_KK_T_DCHSKMST = null;

	/** テーブルアクセスクラス(データ抽出項目設定対象契約)*/
	private JBSbatSQLAccess db_KK_T_DCHSKMST_TG_KEI = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約内訳)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI_UCWK = null;

	/** テーブルアクセスクラス(オプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_OP_SVC_KEI = null;

	/** テーブルアクセスクラス(サブオプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_SBOP_SVC_KEI = null;

	/** テーブルアクセスクラス(機器提供サービス契約)*/
	private JBSbatSQLAccess db_KK_T_KKTK_SVC_KEI = null;

	/** テーブルアクセスクラス(サービス契約回線内訳)*/
	private JBSbatSQLAccess db_KK_T_SVKEI_KAISEN_UW = null;

	/** テーブルアクセスクラス(請求オプションサービス契約)*/
	private JBSbatSQLAccess db_KK_T_SEIOPSVC_KEI = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(申込明細)*/
	private JBSbatSQLAccess db_KK_T_MSKM_DTL = null;

	/** テーブルアクセスクラス(工事案件)*/
	private JBSbatSQLAccess db_KU_T_KOJIAK = null;

	/** テーブルアクセスクラス(申込明細＿工事案件)*/
	private JBSbatSQLAccess db_KU_T_MSKM_DTL_KOJIAK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	// 2013/04/14 ST6-2013-0000031 add start
	/** 有無（無）*/
	private static final String UM_MU = "0";
	/** 有無（有）*/
	private static final String UM_U = "1";
	
	/** ディレイド処理依頼有無フラグ */
	private String dlyd_um_flg = UM_MU;
	/** ディレイドジョブ依頼ＩＤ .*/
	private String mREQ_JOB_ID = null;
	/** ディレイドフラグファイル .*/
	private String createCntFile = null;
	// 2013/04/14 ST6-2013-0000031 add end
	
	/** 電子ファイルレコード一覧 */
	private JBSbatServiceInterfaceMap inMap = null;
		
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_DCHSKMST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_DCHSKMST);
		db_KK_T_DCHSKMST_TG_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_DCHSKMST_TG_KEI);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_KK_T_SVC_KEI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI_UCWK);
		db_KK_T_OP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_OP_SVC_KEI);
		db_KK_T_SBOP_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SBOP_SVC_KEI);
		db_KK_T_KKTK_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KKTK_SVC_KEI);
		db_KK_T_SVKEI_KAISEN_UW = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVKEI_KAISEN_UW);
		db_KK_T_SEIOPSVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIOPSVC_KEI);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_MSKM_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MSKM_DTL);
		db_KU_T_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_KOJIAK);
		db_KU_T_MSKM_DTL_KOJIAK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KU_T_MSKM_DTL_KOJIAK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 入力レコード初期化
		this.inMap = new JBSbatServiceInterfaceMap();
		
		// 2013/04/14 ST6-2013-0000031 add start
		if(super.freeItem != null && !"".equals(super.freeItem))
		{
			// フリーパラメータからジョブＩＤとフラグファイルパスを取得
			String[] str = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
			// ディレイドジョブＩＤ
			this.mREQ_JOB_ID = str[0];
			// ディレイドフラグファイルパス
			this.createCntFile = str[1];
			// ディレイド処理依頼取得
			ArrayList<HashMap<String, Object>> arrayList = JCCbatShoriIraiUtil.getShoriIraiInfo(super.commonItem, this.mREQ_JOB_ID);
			if(arrayList != null)
			{
				// ディレイド依頼があるのでフラグを立てる
				this.dlyd_um_flg = UM_U;
				
				// マップ用キー配列生成
				String[] map_keys = {JBSbatKKIFM093.HNSOKU_CD
									,JBSbatKKIFM093.CHSHT_TRGT
									,JBSbatKKIFM093.DCHSKM_TSTAYMD
									,JBSbatKKIFM093.DCHSKM_TENDYMD};
				// 電子ファイルを取り出す
				for(HashMap<String, Object> objc : arrayList)
				{
					// 電子ファイルからレコードを取り出す
					String[] input_records = new String(((byte[])objc.get("INPUT_EFILE"))).split(",");
					for(int i = 0; i < input_records.length; i++)
					{
						// マップへ格納
						this.inMap.set(map_keys[i], input_records[i]);
					}
				}
			}
			else
			{
				// ディレイド依頼がないのでフラグを折る
				this.dlyd_um_flg = UM_MU;
			}
		}
		else
		{
			// 親シェルのジョブIDが渡されてきていない
			throw new JBSbatBusinessException("EKKB0740CE", new String[]{"フリーパラメータ異常"});
		}
		// 2013/04/14 ST6-2013-0000031 add end
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
//	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 2013/04/14 ST6-2013-0000031 add start
		// ディレイド処理依頼に処理依頼がない場合
		if(UM_MU.equals(this.dlyd_um_flg))
		{
			// 処理をスキップする
			return null;
		}
		// 2013/04/14 ST6-2013-0000031 add end
		
		// ファイル出力アイテム
		JBSbatOutputItem outItem = new JBSbatOutputItem();
		ArrayList<String> arAgntCd = new ArrayList<String>();
		
		arAgntCd.clear();
		
		// 単項目チェック関数呼出
		if (!isSingleCheckKKIFM093_INF1(inMap.getMap(), getItemvalueMap()))
		{
			// エラーフラグ設定
			super.commonItem.setErrFlg(true);
			// 出力情報を返却
			return new JBSbatOutputItem();
		}
		
		// 入力マップより必要情報を取得
		String hnsokuCd = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM093.HNSOKU_CD));
		String tgtNo = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM093.CHSHT_TRGT));
		String svcStaDtm = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM093.DCHSKM_TSTAYMD));
		String svcEndDtm = JBSbatStringUtil.trim(inMap.getString(JBSbatKKIFM093.DCHSKM_TENDYMD));
		
		// システム日付を取得
//		String systemDateTime = JCCBatCommon.getSysDate();
		String systemDateTime = super.opeDate;
		
		// データ抽出項目設定より、条件に該当する[データ抽出項目設定番号]リストを取得する
		Object[] dchskParam = {
				hnsokuCd,
				tgtNo,
				systemDateTime
			};
		if(executeKK_T_DCHSKMST_selected(dchskParam))
		{
			// パラメータ異常
			// エラーフラグ設定
			super.commonItem.setErrFlg(true);
			// 出力情報を返却
			return new JBSbatOutputItem();
		}
		
		JBSbatCommonDBInterface dchskMap = db_KK_T_DCHSKMST.selectNext();
		while(dchskMap != null)
		{
			// １件の[データ抽出項目設定番号]ごとに、データ抽出項目設定対象契約より、
			// データを取得する(複数件あり)
			Object[] dchskmstParam = {
					dchskMap.getString(JBSbatKK_T_DCHSKMST.DCHSKMST_NO),
					svcStaDtm,
					svcEndDtm,
					systemDateTime
				};
			if(executeKK_T_DCHSK_TG_KEI_sel(dchskmstParam))
			{
				// パラメータ異常
				// エラーフラグ設定
				//super.commonItem.setErrFlg(true);
				// 出力情報を返却
				//return new JBSbatOutputItem();
			}
			
			JBSbatCommonDBInterface dchskTgKeiMap = db_KK_T_DCHSKMST_TG_KEI.selectNext();
			while(dchskTgKeiMap != null)
			{
				// 販売促進コード抽出ファイル用
				JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
				
				// データ抽出項目より取得済み、申込明細より取得
				{
					// 世代登録年月日(データ抽出項目)	
					outMap.setString(JBSbatKKIFM094.GENE_ADD_DTM_KK1391, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.GENE_ADD_DTM));
					// 世代登録年月日(データ抽出項目対象契約)	
					outMap.setString(JBSbatKKIFM094.GENE_ADD_DTM_KK1401, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.GENE_ADD_DTM));
					// データ抽出項目コード	
					outMap.setString(JBSbatKKIFM094.DCHSKM_CD, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.DCHSKM_CD));
					// データ抽出項目設定設定番号	
					outMap.setString(JBSbatKKIFM094.DCHSKMST_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.DCHSKMST_NO));
					// データ抽出項目設定ステータス	
					outMap.setString(JBSbatKKIFM094.DCHSKMST_STAT, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.DCHSKMST_STAT));
					// 適用数判別コード	
					outMap.setString(JBSbatKKIFM094.APLY_CNT_HAMBET_CD, dchskTgKeiMap.getString(JBSbatKK_M_DCHSKM.APLY_CNT_HAMBET_CD));
					// 適用数	
					outMap.setString(JBSbatKKIFM094.APLY_CNT, dchskTgKeiMap.getString(JBSbatKK_M_DCHSKM.APLY_CNT));
					// データ抽出項目設定対象契約番号	
					outMap.setString(JBSbatKKIFM094.DCHSKMST_TG_KEI_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.DCHSKMST_TG_KEI_NO));
					// データ抽出項目設定開始年月日	
					outMap.setString(JBSbatKKIFM094.DCHSKMST_TG_KEI_TSTAYMD, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.DCHSKMST_TG_KEI_TSTAYMD));
					// データ抽出項目設定終了年月日	
					outMap.setString(JBSbatKKIFM094.DCHSKMST_TG_KEI_TENDYMD, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.DCHSKMST_TG_KEI_TENDYMD));
					// 抽出回数	
					outMap.setString(JBSbatKKIFM094.CHSHT_CNT, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.CHSHT_CNT));
					
					// 申込明細より取得
					String mskmDtlNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
					if(mskmDtlNo != null){

						Object[] mskmDtlWhereParam = { mskmDtlNo };
						executeKK_T_MSKM_DTL_KK_SELECT_005(mskmDtlWhereParam);
						JBSbatCommonDBInterface mskmDtlMap = db_KK_T_MSKM_DTL.selectNext();
						
						if(mskmDtlMap != null){
							// 申込書番号	
							outMap.setString(JBSbatKKIFM094.MSKMSHO_NO, mskmDtlMap.getString(JBSbatKK_T_MSKM_DTL.MSKMSHO_NO));

							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
					
				}
				
				// お客様より取得
				String sysid = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.SYSID);
				if(sysid != null)
				{
					Object[] custWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.SYSID),
							systemDateTime
						};
					executeCK_T_CUST_KK_SELECT_008(custWhereParam);
					JBSbatCommonDBInterface custMap = db_CK_T_CUST.selectNext();
					if(custMap != null)
					{
						// SYSID	
						outMap.setString(JBSbatKKIFM094.SYSID, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.SYSID));
						// eoID
						outMap.setString(JBSbatKKIFM094.EOID, custMap.getString(JBSbatCK_T_CUST.EOID));
						// お客様ステータス	
						outMap.setString(JBSbatKKIFM094.CUST_STAT, custMap.getString(JBSbatCK_T_CUST.CUST_STAT));
						// 契約者タイプコード	
						outMap.setString(JBSbatKKIFM094.KEISHA_TYPE_CD, custMap.getString(JBSbatCK_T_CUST.KEISHA_TYPE_CD));
						// お客様名	
						outMap.setString(JBSbatKKIFM094.CUST_NM, custMap.getString(JBSbatCK_T_CUST.CUST_NM));
						// お客様カナ名	
						outMap.setString(JBSbatKKIFM094.CUST_KANA, custMap.getString(JBSbatCK_T_CUST.CUST_KANA));
						// 契約者住所コード	
						outMap.setString(JBSbatKKIFM094.KEISHA_AD_CD, custMap.getString(JBSbatCK_T_CUST.KEISHA_AD_CD));
						// 契約者郵便番号	
						outMap.setString(JBSbatKKIFM094.KEISHA_PCD, custMap.getString(JBSbatCK_T_CUST.KEISHA_PCD));
						// 契約者都道府県名	
						outMap.setString(JBSbatKKIFM094.KEISHA_STATE_NM, custMap.getString(JBSbatCK_T_CUST.KEISHA_STATE_NM));
						// 契約者市区町村名	
						outMap.setString(JBSbatKKIFM094.KEISHA_CITY_NM, custMap.getString(JBSbatCK_T_CUST.KEISHA_CITY_NM));
						// 契約者大字通称名	
						outMap.setString(JBSbatKKIFM094.KEISHA_OAZTSU_NM, custMap.getString(JBSbatCK_T_CUST.KEISHA_OAZTSU_NM));
						// 契約者字丁目名	
						outMap.setString(JBSbatKKIFM094.KEISHA_AZCHO_NM, custMap.getString(JBSbatCK_T_CUST.KEISHA_AZCHO_NM));
						// 契約者番地号	
						outMap.setString(JBSbatKKIFM094.KEISHA_BNCHIGO, custMap.getString(JBSbatCK_T_CUST.KEISHA_BNCHIGO));
						// 契約者住所補記・建物名	
						outMap.setString(JBSbatKKIFM094.KEISHA_ADRTTM, custMap.getString(JBSbatCK_T_CUST.KEISHA_ADRTTM));
						// 契約者住所補記・部屋番号	
						outMap.setString(JBSbatKKIFM094.KEISHA_ADRRM, custMap.getString(JBSbatCK_T_CUST.KEISHA_ADRRM));
						// 契約者電話番号	
						outMap.setString(JBSbatKKIFM094.KEISHA_TELNO, custMap.getString(JBSbatCK_T_CUST.KEISHA_TELNO));
					}

				}
				
				// サービス契約より取得
				String svcKeiNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO);
				if(svcKeiNo != null)
				{
					Object[] svcKeiWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO),
							systemDateTime,
							systemDateTime,
							systemDateTime,
							systemDateTime
						};
					executeKK_T_SVC_KEI_KK_SELECT_069(svcKeiWhereParam);
					JBSbatCommonDBInterface svcKeiMap = db_KK_T_SVC_KEI.selectNext();
					if(svcKeiMap != null)
					{
						// サービス契約番号	
						outMap.setString(JBSbatKKIFM094.SVC_KEI_NO, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO));
						// サービス契約ステータス	
						outMap.setString(JBSbatKKIFM094.SVC_KEI_STAT, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
						// サービス開始年月日	
						outMap.setString(JBSbatKKIFM094.SVC_STA_YMD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_STA_YMD));
						// サービス終了年月日	
						outMap.setString(JBSbatKKIFM094.SVC_ENDYMD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_ENDYMD));
						// サービス課金開始年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CHRG_STAYMD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CHRG_STAYMD));
						// サービス課金終了年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CHRG_ENDYMD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CHRG_ENDYMD));
						// サービスキャンセル年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CANCEL_YMD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CANCEL_YMD));
						// サービスコード	
						outMap.setString(JBSbatKKIFM094.SVC_CD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.SVC_CD));
						// サービス名	
						outMap.setString(JBSbatKKIFM094.SVC_NM, svcKeiMap.getString(JBSbatKK_M_SVC.SVC_NM));
						// 料金グループコード	
						outMap.setString(JBSbatKKIFM094.PRC_GRP_CD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PRC_GRP_CD));
						// 料金グル―プ名	
						outMap.setString(JBSbatKKIFM094.PRC_GRP_NM, svcKeiMap.getString(JBSbatKK_M_PRC_GRP.PRC_GRP_NM));
						// 料金コースコード	
						outMap.setString(JBSbatKKIFM094.PCRS_CD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
						// 料金コース名	
						outMap.setString(JBSbatKKIFM094.PCRS_NM, svcKeiMap.getString(JBSbatKK_M_PCRS.PCRS_NM));
						// 料金プランコード	
						outMap.setString(JBSbatKKIFM094.PPLAN_CD, svcKeiMap.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
						// 料金プラン名	
						outMap.setString(JBSbatKKIFM094.PPLAN_NM, svcKeiMap.getString(JBSbatKK_M_PPLAN.PPLAN_NM));
						
						// 申込明細より取得
						String mskmDtlNo = svcKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}

				
				// サービス契約内訳より取得
				String svcKeiUcwkNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_UCWK_NO);
				if(svcKeiUcwkNo != null)
				{
					Object[] svcKeiUcwkWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_UCWK_NO),
							systemDateTime
						};
					executeKK_T_SVC_KEI_UCWK_KK_SELECT_019(svcKeiUcwkWhereParam);
					JBSbatCommonDBInterface svcKeiUcwkMap = db_KK_T_SVC_KEI_UCWK.selectNext();
					if(svcKeiUcwkMap != null)
					{
						// サービス契約内訳番号	
						outMap.setString(JBSbatKKIFM094.SVC_KEI_UCWK_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_UCWK_NO));
						// サービス契約内訳ステータス	
						outMap.setString(JBSbatKKIFM094.SVC_KEI_UCWK_STAT, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_KEI_UCWK_STAT));
						// サービス開始年月日	
						outMap.setString(JBSbatKKIFM094.SVC_STA_YMD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_STA_YMD));
						// サービス終了年月日	
						outMap.setString(JBSbatKKIFM094.SVC_ENDYMD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_ENDYMD));
						// サービス課金開始年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CHRG_STAYMD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_CHRG_STAYMD));
						// サービス課金終了年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CHRG_ENDYMD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_CHRG_ENDYMD));
						// サービスキャンセル年月日	
						outMap.setString(JBSbatKKIFM094.SVC_CANCEL_YMD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI_UCWK.SVC_CANCEL_YMD));
						// 料金グループコード	
						outMap.setString(JBSbatKKIFM094.PRC_GRP_CD, svcKeiUcwkMap.getString(JBSbatKK_M_PRC_GRP.PRC_GRP_CD));
						// 料金グル―プ名	
						outMap.setString(JBSbatKKIFM094.PRC_GRP_NM, svcKeiUcwkMap.getString(JBSbatKK_M_PRC_GRP.PRC_GRP_NM));
						// 料金コースコード	
						outMap.setString(JBSbatKKIFM094.PCRS_CD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI.PCRS_CD));
						// 料金コース名	
						outMap.setString(JBSbatKKIFM094.PCRS_NM, svcKeiUcwkMap.getString(JBSbatKK_M_PCRS.PCRS_NM));
						// 料金プランコード	
						outMap.setString(JBSbatKKIFM094.PPLAN_CD, svcKeiUcwkMap.getString(JBSbatKK_T_SVC_KEI.PPLAN_CD));
						// 料金プラン名	
						outMap.setString(JBSbatKKIFM094.PPLAN_NM, svcKeiUcwkMap.getString(JBSbatKK_M_PPLAN.PPLAN_NM));
						

						// 申込明細より取得
						String mskmDtlNo = svcKeiUcwkMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}
				// オプションサービス契約より取得
				String opSvcKeiNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.OP_SVC_KEI_NO);
				if(opSvcKeiNo != null)
				{
				Object[] opSvcKeiWhereParam = {
						dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.OP_SVC_KEI_NO),
						systemDateTime,
						systemDateTime
					};
				executeKK_T_OP_SVC_KEI_KK_SELECT_017(opSvcKeiWhereParam);
				JBSbatCommonDBInterface opSvcKeiMap = db_KK_T_OP_SVC_KEI.selectNext();
				if(opSvcKeiMap != null)
				{
					// オプションサービス契約番号	
					outMap.setString(JBSbatKKIFM094.OP_SVC_KEI_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.OP_SVC_KEI_NO));
					// オプションサービス契約ステータス	
					outMap.setString(JBSbatKKIFM094.OP_SVC_KEI_STAT, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_KEI_STAT));
					// オプションサービス開始年月日	
					outMap.setString(JBSbatKKIFM094.OP_SVC_STAYMD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_STAYMD));
					// オプションサービス終了年月日	
					outMap.setString(JBSbatKKIFM094.OP_SVC_ENDYMD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_ENDYMD));
					// オプションサービス課金開始年月日	
					outMap.setString(JBSbatKKIFM094.OP_SVC_CHRG_STAYMD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_CHRG_STAYMD));
					// オプションサービス課金終了年月日	
					outMap.setString(JBSbatKKIFM094.OP_SVC_CHRG_ENDYMD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_CHRG_ENDYMD));
					// オプションサービスキャンセル年月日	
					outMap.setString(JBSbatKKIFM094.OP_SVC_CANCEL_YMD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.SVC_CANCEL_YMD));
					// オプションサービスコード	
					outMap.setString(JBSbatKKIFM094.OP_SVC_CD, opSvcKeiMap.getString(JBSbatKK_T_OP_SVC_KEI.OP_SVC_CD));
					// オプションサービス名	
					outMap.setString(JBSbatKKIFM094.OP_SVC_NM, opSvcKeiMap.getString(JBSbatKK_M_OP_SVC.OP_SVC_NM));
					
					// 申込明細より取得
					String mskmDtlNo = opSvcKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
					if(mskmDtlNo != null){
						String agntCdString = getAgntCd(mskmDtlNo);
						if(isStringValue(agntCdString))
						{
							// 代理店コード
							arAgntCd.add(agntCdString);
						}
					}
				}
				}
				
				// サブオプションサービス契約より取得
				String sbopSvcKeiNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SBOP_SVC_KEI_NO);
				if(sbopSvcKeiNo != null)
				{
					Object[] sbopSvcKeiWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SBOP_SVC_KEI_NO),
							systemDateTime
						};
					executeKK_T_SBOP_SVC_KEI_KK_SELECT_011(sbopSvcKeiWhereParam);
					JBSbatCommonDBInterface sbopSvcKeiMap = db_KK_T_SBOP_SVC_KEI.selectNext();
					if(sbopSvcKeiMap != null)
					{
						// サブオプションサービス契約番号	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_KEI_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SBOP_SVC_KEI_NO));
						// サブオプションサービス契約ステータス	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_KEI_STAT, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SBOP_SVC_KEI_STAT));
						// サブオプションサービス開始年月日	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_STAYMD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SVC_STAYMD));
						// サブオプションサービス終了年月日	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_ENDYMD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SVC_ENDYMD));
						// サブオプションサービス課金開始年月日	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_CHRG_STAYMD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SVC_CHRG_STAYMD));
						// サブオプションサービス課金終了年月日	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_CHRG_ENDYMD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SVC_CHRG_ENDYMD));
						// サブオプションサービスキャンセル年月日	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_CANCEL_YMD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SVC_CANCEL_YMD));
						// サブオプションサービスコード	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_CD, sbopSvcKeiMap.getString(JBSbatKK_T_SBOP_SVC_KEI.SBOP_SVC_CD));
						// サブオプションサービス名	
						outMap.setString(JBSbatKKIFM094.SBOP_SVC_NM, sbopSvcKeiMap.getString(JBSbatKK_M_SBOP_SVC.SBOP_SVC_NM));
						
						// 申込明細より取得
						String mskmDtlNo = sbopSvcKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}
					
				
				// 機器提供サービス契約より取得
				String kktkSvcKeiNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.KKTK_SVC_KEI_NO);
				if(kktkSvcKeiNo != null)
				{
					Object[] kktkSvcKeiWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.KKTK_SVC_KEI_NO),
							systemDateTime
						};
					executeKK_T_KKTK_SVC_KEI_KK_SELECT_016(kktkSvcKeiWhereParam);
					JBSbatCommonDBInterface kktkSvcKeiMap = db_KK_T_KKTK_SVC_KEI.selectNext();
					if(kktkSvcKeiMap != null)
					{
						// 機器提供サービス契約番号	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_KEI_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.KKTK_SVC_KEI_NO));
						// 機器提供サービス契約ステータス	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_KEI_STAT, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_KEI_STAT));
						// 機器提供サービス開始年月日	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_STA_YMD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_STA_YMD));
						// 機器提供サービス終了年月日	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_ENDYMD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_ENDYMD));
						// 機器提供サービス課金開始年月日	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_CHRG_STAYMD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_CHRG_STAYMD));
						// 機器提供サービス課金終了年月日	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_CHRG_ENDYMD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_CHRG_ENDYMD));
						// 機器提供サービスキャンセル年月日	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_CANCEL_YMD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.SVC_CANCEL_YMD));
						// 機器提供サービスコード	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_CD, kktkSvcKeiMap.getString(JBSbatKK_T_KKTK_SVC_KEI.KKTK_SVC_CD));
						// 機器提供サービス名	
						outMap.setString(JBSbatKKIFM094.KKTK_SVC_NM, kktkSvcKeiMap.getString(JBSbatKK_M_KKTK_SVC.KKTK_SVC_NM));
						
						// 申込明細より取得
						String mskmDtlNo = kktkSvcKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}

				// サービス契約回線内訳より取得
				if(svcKeiNo != null)
				{
					Object[] svkeiKaisenUwWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SVC_KEI_NO),
							systemDateTime,
						};
					executeKK_T_SVKEI_KAISEN_UW_KK_SELECT_008(svkeiKaisenUwWhereParam);
					JBSbatCommonDBInterface svkeiKaisenUwMap = db_KK_T_SVKEI_KAISEN_UW.selectNext();
					if(svkeiKaisenUwMap != null)
					{
						// 回線場所住所コード	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_AD_CD, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AD_CD));
						// 回線場所郵便番号	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_PCD, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_PCD));
						// 回線場所都道府県名	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_STATE_NM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_STATE_NM));
						// 回線場所市区町村名	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_CITY_NM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_CITY_NM));
						// 回線場所大字通称名	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_OAZTSU_NM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_OAZTSU_NM));
						// 回線場所字丁目名	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_AZCHO_NM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_AZCHO_NM));
						// 回線場所番地号	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_BNCHIGO, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_BNCHIGO));
						// 回線場所住所補記・建物名	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_ADRTTM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRTTM));
						// 回線場所住所補記・部屋番号	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_ADRRM, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_ADRRM));
						// 回線場所番号	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_NO, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_NO));
						// 回線場所区画整理中フラグ	
						outMap.setString(JBSbatKKIFM094.KISN_PLC_KKK_SEIRI_CHU_FLG, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KISN_PLC_KKK_SEIRI_CHU_FLG));
						// 回線場所補足コード1	
						outMap.setString(JBSbatKKIFM094.KISN_PLC_HSK_CD_1, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KISN_PLC_HSK_CD_1));
						// 回線場所補足コード2	
						outMap.setString(JBSbatKKIFM094.KISN_PLC_HSK_CD_2, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KISN_PLC_HSK_CD_2));
						// 回線場所補足メモ	
						outMap.setString(JBSbatKKIFM094.KISN_PLC_HSK_MEMO, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KISN_PLC_HSK_MEMO));
						// 回線場所住所確定フラグ	
						outMap.setString(JBSbatKKIFM094.KISN_PLC_AD_FIX_FLG, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KISN_PLC_AD_MI_FIX_FLG));
						// 回線場所電話番号	
						outMap.setString(JBSbatKKIFM094.KAISEN_PLACE_TELNO, svkeiKaisenUwMap.getString(JBSbatKK_T_SVKEI_KAISEN_UW.KAISEN_PLACE_TELNO));
						
						// 申込明細より取得
						String mskmDtlNo = svkeiKaisenUwMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}

				// 請求オプションサービス契約より取得
				String seiopsvcKeiNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SEIOPSVC_KEI_NO);
				if(seiopsvcKeiNo != null)
				{
					Object[] seiopsvcKeiWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SEIOPSVC_KEI_NO),
							systemDateTime
						};
					executeKK_T_SEIOPSVC_KEI_KK_SELECT_007(seiopsvcKeiWhereParam);
					JBSbatCommonDBInterface seiopsvcKeiMap = db_KK_T_SEIOPSVC_KEI.selectNext();
					if(seiopsvcKeiMap != null)
					{
						// 請求オプションサービス契約番号	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_KEI_NO, dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST_TG_KEI.SEIOPSVC_KEI_NO));
						// 請求オプションサービス契約ステータス	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_KEI_STAT, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_KEI_STAT));
						// 請求オプションサービス開始年月日	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_STA_YMD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_STA_YMD));
						// 請求オプションサービス終了年月日	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_ENDYMD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_ENDYMD));
						// 請求オプションサービス課金開始年月日	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_CHRG_STAYMD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_STAYMD));
						// 請求オプションサービス課金終了年月日	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_CHRG_ENDYMD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CHRG_ENDYMD));
						// 請求オプションサービスキャンセル年月日	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_CANCEL_YMD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SVC_CANCEL_YMD));
						// 請求オプションサービスコード	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_CD, seiopsvcKeiMap.getString(JBSbatKK_T_SEIOPSVC_KEI.SEIOPSVC_CD));
						// 請求オプションサービス名	
						outMap.setString(JBSbatKKIFM094.SEIOPSVC_NM, seiopsvcKeiMap.getString(JBSbatKK_M_SEIOPSVC.SEIOPSVC_NM));
						
						// 申込明細より取得
						String mskmDtlNo = seiopsvcKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
						if(mskmDtlNo != null){
							String agntCdString = getAgntCd(mskmDtlNo);
							if(isStringValue(agntCdString))
							{
								// 代理店コード
								arAgntCd.add(agntCdString);
							}
						}
					}
				}

				
				// 申込明細_工事案件より取得
				String mskmDtlNo = dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO);
				if(mskmDtlNo != null)
				{
					Object[] kojiakiNoWhereParam = {
							dchskTgKeiMap.getString(JBSbatKK_T_DCHSKMST.MSKM_DTL_NO),
						};
					executeKU_T_MSKM_DTL_KOJIAK_KK_SELECT_001(kojiakiNoWhereParam);
					JBSbatCommonDBInterface kojiakNoMap = db_KU_T_MSKM_DTL_KOJIAK.selectNext();
					
					
					if(kojiakNoMap != null){
						Object[] kojiakiNoStepWhereParam = {
								kojiakNoMap.getString(JBSbatKU_T_MSKM_DTL_KOJIAK.KOJIAK_NO)
							};
						executeKU_T_KOJIAK_KK_SELECT_004(kojiakiNoStepWhereParam);
						JBSbatCommonDBInterface kojiakNoStepMap = db_KU_T_KOJIAK.selectNext();
						
						if(kojiakNoStepMap != null)
						{
							// 宅内工事完了予定年月日
							outMap.setString(JBSbatKKIFM094.TAKNI_KOJI_FIN_RSV_YMD, kojiakNoStepMap.getString(JBSbatKU_T_KOJIAK.TAKNI_KOJI_FIN_RSV_YMD));
							// ループバックテスト完了年月日
							outMap.setString(JBSbatKKIFM094.LOOPBACK_TEST_FIN_YMD, kojiakNoStepMap.getString(JBSbatKU_T_KOJIAK.LOOPBACK_TEST_FIN_YMD));
							// 工事工程進捗状態コード
							outMap.setString(JBSbatKKIFM094.KOJI_STEP_PRG_STAT_CD, kojiakNoStepMap.getString(JBSbatKU_T_KOJI_STEP_PRG.KOJI_STEP_PRG_STAT_CD));
						}
					}
				}
				
				// 代理店コードをＭＡＸ４件出力する
				String[] strAgntCd = { "", "", "", "" };
				int j = 0;
				for(int i = 0; i < arAgntCd.size(); i++)
				{
					String s = arAgntCd.get(i);
					if(s != null && s.length() > 0)
					{
						switch(j)
						{
						case 0:
							strAgntCd[0] = s;	j++;
							break;
							
						case 1:
							strAgntCd[1] = s;	j++;
							break;
							
						case 2:
							strAgntCd[2] = s;	j++;
							break;
							
						case 3:
							strAgntCd[3] = s;	j++;
							break;
							
						default:
							break;
						
						}
					}
				}
				outMap.setString(JBSbatKKIFM094.AGNT_CD_1,	strAgntCd[0]);
				outMap.setString(JBSbatKKIFM094.AGNT_CD_2,	strAgntCd[1]);
				outMap.setString(JBSbatKKIFM094.AGNT_CD_3,	strAgntCd[2]);
				outMap.setString(JBSbatKKIFM094.AGNT_CD_4,	strAgntCd[3]);
				
				// １レコードを保存
				outMap.setOutFlg(true);
				outItem.addOutMapList(outMap);
				
				dchskTgKeiMap = db_KK_T_DCHSKMST_TG_KEI.selectNext();
			}
			dchskMap = db_KK_T_DCHSKMST.selectNext();
		}
		
		return outItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/

		// 2013/04/14 ST6-2013-0000031 add start
		// ディレイド処理依頼結果のフラグファイルを作成する
		JBSbatOutputFileUtil cntFile = new JBSbatOutputFileUtil(this.createCntFile);
		cntFile.setEncode(JKKBatConst.SJIS);
		cntFile.setLine(JKKBatConst.S_LINE_SEPARAOR_LF);
		cntFile.createWriter();
		StringBuffer sb = new StringBuffer();
		if(UM_U.equals(this.dlyd_um_flg))
		{
			// ディレイド処理依頼がある
			sb.append(String.valueOf(UM_U));
		}
		else
		{
			// ディレイド処理依頼がない
			sb.append(String.valueOf(UM_MU));
		}
		cntFile.write(sb.toString());
		cntFile.close();
		// 2013/04/14 ST6-2013-0000031 add end
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_DCHSKMST.close();
		db_KK_T_DCHSKMST_TG_KEI.close();
		db_KK_T_SVC_KEI.close();
		db_KK_T_SVC_KEI_UCWK.close();
		db_KK_T_OP_SVC_KEI.close();
		db_KK_T_SBOP_SVC_KEI.close();
		db_KK_T_KKTK_SVC_KEI.close();
		db_KK_T_SVKEI_KAISEN_UW.close();
		db_KK_T_SEIOPSVC_KEI.close();
		db_CK_T_CUST.close();
		db_KK_T_MSKM_DTL.close();
		db_KU_T_KOJIAK.close();
		db_KU_T_MSKM_DTL_KOJIAK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（販売促進コード抽出依頼内容ファイル）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-KKIFM093-INF1.HNSOKU_CD			販売促進コード抽出依頼内容ファイル.販売促進コード
	 *			 TXT-KKIFM093-INF1.HNSOKU_CD			販売促進コード抽出依頼内容ファイル.販売促進コード
	 *			 TXT-KKIFM093-INF1.CHSHT_TRGT			販売促進コード抽出依頼内容ファイル.抽出対象
	 *			 TXT-KKIFM093-INF1.CHSHT_TRGT			販売促進コード抽出依頼内容ファイル.抽出対象
	 *			 TXT-KKIFM093-INF1.CHSHT_TRGT			販売促進コード抽出依頼内容ファイル.抽出対象
	 *			 TXT-KKIFM093-INF1.DCHSKM_TSTAYMD			販売促進コード抽出依頼内容ファイル.抽出期間ー自ー年月日
	 *			 TXT-KKIFM093-INF1.DCHSKM_TSTAYMD			販売促進コード抽出依頼内容ファイル.抽出期間ー自ー年月日
	 *			 TXT-KKIFM093-INF1.DCHSKM_TENDYMD			販売促進コード抽出依頼内容ファイル.抽出期間ー至ー年月日
	 *			 TXT-KKIFM093-INF1.DCHSKM_TENDYMD			販売促進コード抽出依頼内容ファイル.抽出期間ー至ー年月日
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	@SuppressWarnings("unchecked")
	private boolean isSingleCheckKKIFM093_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 販売促進コード項目チェック
		strValue = (String)rsMap.get("HNSOKU_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.HNSOKU_CD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.HNSOKU_CD")});
			return false;
		}

		// 抽出対象項目チェック
		strValue = (String)rsMap.get("CHSHT_TRGT");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.CHSHT_TRGT")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.CHSHT_TRGT")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.CHSHT_TRGT")});
			return false;
		}

		// 抽出期間ー自ー年月日項目チェック
		strValue = (String)rsMap.get("DCHSKM_TSTAYMD");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.DCHSKM_TSTAYMD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.DCHSKM_TSTAYMD")});
			return false;
		}

		// 抽出期間ー至ー年月日項目チェック
		strValue = (String)rsMap.get("DCHSKM_TENDYMD");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.DCHSKM_TENDYMD")});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0080TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM093-INF1.DCHSKM_TENDYMD")});
			return false;
		}

		return true;
	}

	/**
	 * 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_DCHSKMST_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_DCHSKMST.selectBySqlDefine(paramList, KK_T_DCHSKMST_KK_SELECT_002);
	}

	/**
	 * 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_DCHSKMST_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_DCHSKMST.selectBySqlDefine(paramList, KK_T_DCHSKMST_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_DCHSKMST_KK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_DCHSKMST.selectBySqlDefine(paramList, KK_T_DCHSKMST_KK_SELECT_004);
	}

	/**
	 * 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_T_DCHSKMST_TG_KEI_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_T_DCHSKMST_TG_KEI.selectBySqlDefine(paramList, KK_T_DCHSKMST_TG_KEI_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_DCHSKMST_TG_KEI_KK_SELECT_002(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_DCHSKMST_TG_KEI.selectBySqlDefine(paramList, KK_T_DCHSKMST_TG_KEI_KK_SELECT_002);
	}

	/**
	 * 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_DCHSKMST_TG_KEI_KK_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_KK_T_DCHSKMST_TG_KEI.selectBySqlDefine(paramList, KK_T_DCHSKMST_TG_KEI_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_DCHSKMST_TG_KEI_KK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_DCHSKMST_TG_KEI.selectBySqlDefine(paramList, KK_T_DCHSKMST_TG_KEI_KK_SELECT_004);
	}

	/**
	 * SQLKEY(KK_SELECT_069)で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_069(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_069);
	}

	/**
	 * SQLKEY(KK_SELECT_019)で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_UCWK_KK_SELECT_019(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI_UCWK.selectBySqlDefine(paramList, KK_T_SVC_KEI_UCWK_KK_SELECT_019);
	}

	/**
	 * SQLKEY(KK_SELECT_017)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	オプションサービス契約番号
	 *		 	運用日
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_OP_SVC_KEI_KK_SELECT_017(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_OP_SVC_KEI.selectBySqlDefine(paramList, KK_T_OP_SVC_KEI_KK_SELECT_017);
	}

	/**
	 * SQLKEY(KK_SELECT_011)で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_SBOP_SVC_KEI_KK_SELECT_011(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SBOP_SVC_KEI.selectBySqlDefine(paramList, KK_T_SBOP_SVC_KEI_KK_SELECT_011);
	}

	/**
	 * SQLKEY(KK_SELECT_016)で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_KKTK_SVC_KEI_KK_SELECT_016(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_KKTK_SVC_KEI.selectBySqlDefine(paramList, KK_T_KKTK_SVC_KEI_KK_SELECT_016);
	}

	/**
	 * SQLKEY(KK_SELECT_008)で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_SVKEI_KAISEN_UW_KK_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVKEI_KAISEN_UW.selectBySqlDefine(paramList, KK_T_SVKEI_KAISEN_UW_KK_SELECT_008);
	}

	/**
	 * SQLKEY(KK_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求オプションサービス契約番号
	 *		 	運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIOPSVC_KEI_KK_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SEIOPSVC_KEI.selectBySqlDefine(paramList, KK_T_SEIOPSVC_KEI_KK_SELECT_007);
	}

	/**
	 * SQLKEY(KK_SELECT_005)で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_MSKM_DTL_KK_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_MSKM_DTL.selectBySqlDefine(paramList, KK_T_MSKM_DTL_KK_SELECT_005);
	}

	/**
	 * 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 executeKU_T_KOJIAK_KK_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_KOJIAK.selectBySqlDefine(paramList, KU_T_KOJIAK_KK_SELECT_004);
	}

	/**
	 * SQLKEY(KK_SELECT_008)で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_CUST_KK_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
	
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_KK_SELECT_008);
	}

	/**
	 * 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 executeKU_T_MSKM_DTL_KOJIAK_KK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KU_T_MSKM_DTL_KOJIAK.selectBySqlDefine(paramList, KU_T_MSKM_DTL_KOJIAK_KK_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * エラーメッセージに関する項目値を格納されたHashMap<String, String>を生成します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.エラーメッセージに関する項目値を格納されたHashMapを生成する。<br>
	 *
	 * 2.エラーメッセージに関する項目値を格納されたHashMapに値を設定する。<br>
	 * </pre>
	 * <p>
	 * @return itemvalueMap エラーメッセージに関する項目値を格納されたHashMap
	 */
	private HashMap<String, String> getItemvalueMap()
	{
		// エラーメッセージに関する項目値が格納されたHashMapを設定
		HashMap<String, String> itemvalue_Map = new HashMap<String, String>();
		itemvalue_Map.put("TXT-KKIFM093-INF1.HNSOKU_CD",	"販売促進コード抽出依頼内容ファイル.販売促進コード");
		itemvalue_Map.put("TXT-KKIFM093-INF1.HNSOKU_CD",	"販売促進コード抽出依頼内容ファイル.販売促進コード");
		itemvalue_Map.put("TXT-KKIFM093-INF1.CHSHT_TRGT",	"販売促進コード抽出依頼内容ファイル.抽出対象");
		itemvalue_Map.put("TXT-KKIFM093-INF1.CHSHT_TRGT",	"販売促進コード抽出依頼内容ファイル.抽出対象");
		itemvalue_Map.put("TXT-KKIFM093-INF1.CHSHT_TRGT",	"販売促進コード抽出依頼内容ファイル.抽出対象");
		itemvalue_Map.put("TXT-KKIFM093-INF1.DCHSKM_TSTAYMD",	"販売促進コード抽出依頼内容ファイル.抽出期間ー自ー年月日");
		itemvalue_Map.put("TXT-KKIFM093-INF1.DCHSKM_TSTAYMD",	"販売促進コード抽出依頼内容ファイル.抽出期間ー自ー年月日");
		itemvalue_Map.put("TXT-KKIFM093-INF1.DCHSKM_TENDYMD",	"販売促進コード抽出依頼内容ファイル.抽出期間ー至ー年月日");
		itemvalue_Map.put("TXT-KKIFM093-INF1.DCHSKM_TENDYMD",	"販売促進コード抽出依頼内容ファイル.抽出期間ー至ー年月日");
		return itemvalue_Map;
	}
	
	/**
	 * SQLKEY(KK_SELECT_002〜KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	データ抽出項目設定番号
	 *		 	抽出対象
	 *				1.未抽出
	 *				2.抽出済
	 *				3.全て
	 *			バッチ運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return boolean　正常(false)／パラメータ異常(true)
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean executeKK_T_DCHSKMST_selected(Object[] param) throws Exception
	{
		boolean ret = false;
		String hnsokuCd = param[0].toString();
		String tgtNo = param[1].toString();
		String systemDateTime = param[2].toString();
		Object[] dchskWhereParam = {
				hnsokuCd,
				systemDateTime
			};

		if("1".equals(tgtNo))
		{
			executeKK_T_DCHSKMST_KK_SELECT_002(dchskWhereParam);
		}
		else if("2".equals(tgtNo))
		{
			executeKK_T_DCHSKMST_KK_SELECT_003(dchskWhereParam);
		}
		else if("3".equals(tgtNo))
		{
			executeKK_T_DCHSKMST_KK_SELECT_004(dchskWhereParam);
		}
		else
		{
			// パラメータ異常
			ret = true;
		}
		return ret;
	}

	/**
	 * SQLKEY(KK_SELECT_001〜KK_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	データ抽出項目設定番号
	 *		 	抽出期間-自
	 *		 	抽出期間-至
	 *			バッチ運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return boolean　正常(false)／パラメータ異常(true)
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private boolean executeKK_T_DCHSK_TG_KEI_sel(Object[] param) throws Exception
	{
		boolean ret = false;
		String hnsokuCd = param[0].toString();
		String svcStaDtm = param[1].toString();
		String svcEndDtm = param[2].toString();
		String systemDateTime = param[3].toString();
		
		if(isStringValue(svcStaDtm) && isStringValue(svcEndDtm))
		{
			// 抽出期間-自　＝＞　空でない、抽出期間-至　＝＞　空でない
			Object[] dchskTgKeiWhereParam = {
					hnsokuCd,
					svcStaDtm,
					svcEndDtm,
					systemDateTime
				};
			executeKK_T_DCHSKMST_TG_KEI_KK_SELECT_001(dchskTgKeiWhereParam);
		}
		else if(isStringValue(svcStaDtm) && !isStringValue(svcEndDtm))
		{
			// 抽出期間-自　＝＞　空でない、抽出期間-至　＝＞　空
			Object[] dchskTgKeiWhereParam = {
					hnsokuCd,
					svcStaDtm,
					systemDateTime
				};
			executeKK_T_DCHSKMST_TG_KEI_KK_SELECT_002(dchskTgKeiWhereParam);
		}
		else if(!isStringValue(svcStaDtm) && isStringValue(svcEndDtm))
		{
			// 抽出期間-自　＝＞　空、抽出期間-至　＝＞　空でない
			Object[] dchskTgKeiWhereParam = {
					hnsokuCd,
					svcEndDtm,
					systemDateTime
				};
			executeKK_T_DCHSKMST_TG_KEI_KK_SELECT_003(dchskTgKeiWhereParam);
		}
		else if(!isStringValue(svcStaDtm) && !isStringValue(svcEndDtm))
		{
			// 抽出期間-自　＝＞　空、抽出期間-至　＝＞　空
			Object[] dchskTgKeiWhereParam = {
					hnsokuCd,
					systemDateTime
				};
			executeKK_T_DCHSKMST_TG_KEI_KK_SELECT_004(dchskTgKeiWhereParam);
		}
		return ret;
	}

	/**
	 * SQLKEY(KK_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で申込明細番号を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 *
	 * 3.マップより、代理店コードを取り出し返却します。<br>
	 * </pre>
	 * <p>
	 * @param inMskmDtlNo 申込明細番号。
	 * @return String　代理店コード
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getAgntCd(String inMskmDtlNo) throws Exception
	{
		// 申込明細より取得
		Object[] mskmDtlWhereParam = { inMskmDtlNo };
		executeKK_T_MSKM_DTL_KK_SELECT_005(mskmDtlWhereParam);
		JBSbatCommonDBInterface outMap = db_KK_T_MSKM_DTL.selectNext();
		return outMap.getString(JBSbatKK_T_MSKM_AGNT.AGNT_CD);
	}
	
	/**
	 * 文字列の値の存在チェックを行います。<br>
	 * <p>
	 * @param inString 入力文字列。
	 * @return boolean　nullでも空文字でもない(true)／nullもしくは空文字である(false)
	 */
	private boolean isStringValue(String inString)
	{
		if((inString != null) && !("".equals(inString)))
		{
			return true;	// nullでも空文字でもない
		}
		return false;
	}

}
