/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKDDIAnkenChsht
*	ソースファイル名	：JBSbatKKKDDIAnkenChsht.java
*	作成者				：富士通　
*	作成日				：2012年10月05日
*＜機能概要＞
*　KDDI取次案件抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/10/05  FJ) 北村	新規作成
*	v5.00.00    2013/01/09  FJ）高川    【ANK-1373-00-00】KDDI取次管理対応
*	v5.00.01    2013/04/01  FJ）高川    【IT1-2013-0000712】外部IF桁数誤り対応
*	v13.00.00   2015/03/27  FJ）舩橋    【OM-2015-0000397】ファイル名重複エラー対応
*	v13.00.01   2015/04/20  FJ）舩橋    【OM-2015-0000850】一時的ディレクトリ作成対応
*********************************************************************/
package eo.business.service;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFE218;
import eo.business.util.table.JBSbatCC_T_DLYD_TRN_REQ;
import eo.business.util.table.JBSbatKK_T_KDDI_TJGWR_KJKS;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCCFileUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessBase;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.util.JBSbatAplConst;
//OM-2015-0000397 ADD START
import eo.business.common.JKKBatKDDIFileUtil;
//OM-2015-0000397 ADD END

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKKDDIAnkenChsht extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ＫＤＤＩ他事業者割引契約状況照会)*/
	private static final String D_TBL_NAME_KK_T_KDDI_TJGWR_KJKS = "KK_T_KDDI_TJGWR_KJKS";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String KK_T_KDDI_TJGWR_KJKS_KK_SELECT_002 = "KK_SELECT_002";

	/** テーブルアクセスクラス(ＫＤＤＩ他事業者割引契約状況照会)*/
	private JBSbatSQLAccess db_KK_T_KDDI_TJGWR_KJKS = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	
	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;
	
	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";
	
	/** メッセージキー*/
	private static final String EKKB0010CW = JPCBatchMessageConstant.EKKB0010CW;
	
	/** ログ出力用項目名１*/
	private static final String LOG_ITEM_NM_1 = "：ステータス";
	
	/** ログ出力用項目名２*/
	private static final String LOG_ITEM_NM_2 = "：契約サービス　ｅｏ光ネット";
	
	/** ログ出力用項目名３*/
	private static final String LOG_ITEM_NM_3 = "：契約サービス　ｅｏ光電話";
	
	/** ログ出力用項目名４*/
	private static final String LOG_ITEM_NM_4 = "：契約サービス　ｅｏ光テレビ";
	
	/** ログ出力用項目名５*/
	private static final String LOG_ITEM_NM_5 = "：成否結果";
	
	/** ログ出力用項目名６*/
	private static final String LOG_ITEM_NM_6 = "：ａｕスマートバリューＮＧ理由";
	
	/** EKKB0010CWパラメータ設定値１*/
	private static final String EKKB0010CW_PARAM_1 = "のバイト数が規定値を超過したため、文字長を調整しました。";

// OM-2015-0000397 ADD START
	private static final String KDDI_DATE_YMDHMS = "yyyyMMddHHmmssSSS";
	private String kddiDateYMDHMS  = null;
// OM-2015-0000397 ADD END

// OM-2015-0000850 ADD START
	private String kddiDirYMDHMS  = null;
// OM-2015-0000850 ADD END
	
	/** ディレイド処理依頼確認部品呼び出し*/
	private ArrayList<HashMap<String, Object>> dlydTrnMapList = null;
	
	/**  KDDI取次案件結果ファイルオブジェクト*/
	private JBSbatOutputFileUtil  kddiRsltFileObj = null;

	/** KDDI取次案件結果定義ファイルオブジェクト*/
	private JBSbatDefFileUtil kddiRsltFileDef = null;
	
	/** KDDI取次案件結果ファイル名*/
	private String kddiRsltFileName = null;
	
	/** 依頼結果コード初期値設定*/
	private String rsltCd = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_KDDI_TJGWR_KJKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KDDI_TJGWR_KJKS);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		// ディレイド処理依頼確認部品呼び出し
		dlydTrnMapList = JKKBatCommon.getShoriIraiInfo(commonItem, commonItem.getJobid());
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		if (dlydTrnMapList == null)
		{
			// ディレイド処理情報が取得出来ない場合、処理終了
			return null;
		}
		
		int shoriCnt = 0;
		
		try
		{
			for (int i = dlydTrnMapList.size() - 1 ; -1 < i ; i--) 
			{
				// KDDI取次案件結果ファイルオブジェクト初期化
				kddiRsltFileObj = null;
				// KDDI取次案件結果定義ファイルオブジェクト初期化
				kddiRsltFileDef = null;
				
				// 依頼結果コード初期値設定
				rsltCd = JKKStrConst.DLYD_TRN_RSLT_CD_COMPLETE;
				
				// 処理件数設定
				shoriCnt = i;
				
				// KDDI他事業者割引契約状況照会情報取得
				// KDDI他事業者割引契約状況照会テーブルデータ取得条件を設定
				Object[] whereParamKDDITjgwrKjks = new Object[12];
				// 契約状況照会状態適用開始年月日
				whereParamKDDITjgwrKjks[0] = commonItem.getOpeDate();
				// 契約状況照会状態適用終了年月日
				whereParamKDDITjgwrKjks[1] = commonItem.getOpeDate();
				// eo光ネット契約状況適用開始年月日
				whereParamKDDITjgwrKjks[2] = commonItem.getOpeDate();
				// eo光ネット契約状況適用終了年月日
				whereParamKDDITjgwrKjks[3] = commonItem.getOpeDate();
				// eo光電話契約状況適用開始年月日
				whereParamKDDITjgwrKjks[4] = commonItem.getOpeDate();
				// eo光電話契約状況適用終了年月日
				whereParamKDDITjgwrKjks[5] = commonItem.getOpeDate();
				// eo光テレビ契約状況適用開始年月日
				whereParamKDDITjgwrKjks[6] = commonItem.getOpeDate();
				// eo光テレビ契約状況適用終了年月日
				whereParamKDDITjgwrKjks[7] = commonItem.getOpeDate();
				// 活動結果適用開始年月日
				whereParamKDDITjgwrKjks[8] = commonItem.getOpeDate();
				// 活動結果適用終了年月日
				whereParamKDDITjgwrKjks[9] = commonItem.getOpeDate();
				// NG理由適用開始年月日
				whereParamKDDITjgwrKjks[10] = commonItem.getOpeDate();
				// NG理由適用終了年月日
				whereParamKDDITjgwrKjks[11] = commonItem.getOpeDate();
				
				executeKK_T_KDDI_TJGWR_KJKS_KK_SELECT_002(whereParamKDDITjgwrKjks);
				
				//  KDDI取次案件結果作成
				insertKDDIRslt();
				
				// ディレイド処理依頼結果更新部品呼び出し
				updateShoriIrai(shoriCnt, false);
				
				// DBコミット処理
				JBSbatBusinessBase.dbcon.commit();
			}
		}
		catch (Exception e)
		{
			// ディレイド処理依頼結果更新処理
			updateShoriIrai(shoriCnt, true);
			
			throw e;
		}
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_KDDI_TJGWR_KJKS.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		db_ZM_T_DL_FILE_KANRI.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * KDDI取次案件結果リスト作成
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 * @throws Exception
	 */
	private boolean isCreateKDDIRslt() throws Exception
	{
		if(kddiRsltFileObj == null && kddiRsltFileDef == null)
		{
			// KDDI取次案件結果ファイル名取得
			String kddiTrkmRslt = JKKBatCommon.getWorkParamSetteValue(commonItem,
													JKKStrConst.KDDI_WORK_PARAM_ID_RSLT ,
													db_ZM_M_WORK_PARAM_KNRI);
			if(!JKKBatCommon.isNotNull(kddiTrkmRslt) || !JKKBatCommon.isNotNull(commonItem.getFreeItem()))
			{
				// 値が取得出来なかった場合
				return false;
			}
			
			// KDDI取次案件結果ファイル作成
			// KDDI取次案件結果ファイル名を取得する
// OM-2015-0000397 MOD START
//			kddiRsltFileName = kddiTrkmRslt.replace(JKKStrConst.KDDI_DATE_YMD, JKKBatCommon.getSysDate());
			kddiDateYMDHMS = kddiTrkmRslt.replace(KDDI_DATE_YMDHMS, JKKBatCommon.getSysDateTimeStamp());
			kddiRsltFileName = kddiDateYMDHMS.substring(0, 23) + ".csv";
// OM-2015-0000397 MOD END
			
			// KDDI取次案件結果ファイルオブジェクトを生成する
// OM-2015-0000850 MOD START
//			kddiRsltFileObj = new JBSbatOutputFileUtil(commonItem.getFreeItem() + "/" + kddiRsltFileName);

			kddiDirYMDHMS = JKKBatCommon.getSysDateTimeStamp();
			JCCFileUtil.createDir(commonItem.getFreeItem() + "/" + kddiDirYMDHMS + "/" + kddiRsltFileName);
			kddiRsltFileObj = new JBSbatOutputFileUtil(commonItem.getFreeItem() + "/" + kddiDirYMDHMS + "/" + 
														kddiRsltFileName);
// OM-2015-0000850 MOD END
			
			kddiRsltFileObj.setJobID(commonItem.getJobid());
			
			// KDDI取次案件結果定義ファイル名を取得する。
			String kddiRsltFileDefName = JBSbatAplConst.getAplConstValue(JKKStrConst.KDDI_BAT_ID_OTD) + 
										JKKStrConst.KDDI_FILE_ID_ANKEN_RSLT + ".def";
			
			// KDDI取次案件結果定義ファイルオブジェクトを生成する
			kddiRsltFileDef = new JBSbatDefFileUtil(kddiRsltFileDefName, kddiRsltFileObj);
			
			//Writerオブジェクトを生成する。
			kddiRsltFileObj.createWriter();
			
		}
		
		return true;
	}
	
	/**
	 * KDDI取次案件結果リスト登録
	 * @throws Exception
	 */
	private void insertKDDIRslt() throws Exception
	{
		// KDDI取次案件結果出力処理
		long rowCnt = setKDDIRslt();
		
		// ファイルクローズ
		if(kddiRsltFileObj != null)
		{
			kddiRsltFileObj.close();
		}
		
		if (!JKKStrConst.DLYD_TRN_RSLT_CD_COMPLETE.equals(rsltCd))
		{
			// 依頼結果コードが完了以外の場合
			return;
		}
		
		// KDDI取次案件結果ファイル保持期間取得
		String kddiRsltPrd = JKKBatCommon.getWorkParamSetteValue(commonItem,
												JKKStrConst.KDDI_WORK_PARAM_ID_RSLT_PRD ,
												db_ZM_M_WORK_PARAM_KNRI);
		
		String delYmd = null;
		
		if(!JKKBatCommon.isNotNull(kddiRsltPrd) || JKKStrConst.KDDI_HOJIPRD_NON == Integer.valueOf(kddiRsltPrd))
		{
			// 値が取得出来なかった場合または-1の場合、20991231を設定
			delYmd = JKKStrConst.END_YMD_DEFAULT;
		}
		else
		{
			// 上記以外の場合、運用日に保持期間を加算した値を設定する
			delYmd = JKKBatCommon.addDay(super.opeDate, Integer.valueOf(kddiRsltPrd));
		}
		
// OM-2015-0000397 MOD START
		// KDDI取次案件結果ファイル登録処理
//		JKKBatCommon.createFile(commonItem,
//								JKKStrConst.KDDI_TRN_KANRI_ALL_OUT_DL,
//								rowCnt,
//								null,
//								commonItem.getFreeItem(),
//								kddiRsltFileName,
//								delYmd,
//								db_ZM_T_DL_FILE_KANRI,
//								true);

// OM-2015-0000850 MOD START
		JKKBatKDDIFileUtil fileUtil = new JKKBatKDDIFileUtil();
//		fileUtil.createFile2(commonItem,
//								JKKStrConst.KDDI_TRN_KANRI_ALL_OUT_DL,
//								rowCnt,
//								null,
//								commonItem.getFreeItem(),
//								kddiRsltFileName,
//								delYmd,
//								db_ZM_T_DL_FILE_KANRI,
//								true,
//								kddiDateYMDHMS);

		fileUtil.createFile2(commonItem,
				JKKStrConst.KDDI_TRN_KANRI_ALL_OUT_DL,
				rowCnt,
				null,
				commonItem.getFreeItem(),
				kddiRsltFileName,
				delYmd,
				db_ZM_T_DL_FILE_KANRI,
				true,
				kddiDateYMDHMS,
				kddiDirYMDHMS);
// OM-2015-0000850 MOD END
// OM-2015-0000397 MOD END
		
	}
	
	/**
	 *KDDI取次案件結果出力処理<br>
	 * @return レコード件数
	 * @throws Exception
	 */
	private long setKDDIRslt() throws Exception
	{
		JBSbatCommonDBInterface mapKDDITjgwrKjks = new JBSbatCommonDBInterface(); 
		long rowCnt = 0;
		for(mapKDDITjgwrKjks = db_KK_T_KDDI_TJGWR_KJKS.selectNext(); null != mapKDDITjgwrKjks; mapKDDITjgwrKjks = db_KK_T_KDDI_TJGWR_KJKS.selectNext())
		{
			// KDDI取次案件結果リスト作成
			if(!isCreateKDDIRslt())
			{
				// KDDI取次案件結果リストが作成出来なかった場合、システムエラー
				rsltCd = JKKStrConst.DLYD_TRN_RSLT_CD_SYS_ERR;
				return 0;
			}
			
			// 行数カウントアップ
			rowCnt++;
			
			//チェック結果マップ
			HashMap<String, Object> rsltMap = new HashMap<String, Object>();
			
			JBSbatServiceInterfaceMap dataMap = new JBSbatServiceInterfaceMap();
			
			// 申込日
			// yyyyMMdd + スペース + HHmmssに編集
			StringBuilder mskmDtm = new StringBuilder();
			mskmDtm.append(mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.MSKM_DTM));
			mskmDtm.insert(8, " ");
			dataMap.set(JBSbatKKIFE218.MSKM_DTM, mskmDtm.toString());
			// auスマートバリューコード
			dataMap.set(JBSbatKKIFE218.KDDI_VAL_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_VAL_CD));
			// 照会先事業者コード
			dataMap.set(JBSbatKKIFE218.KDDI_SHOKAI_SK_JGS_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_SHOKAI_SK_JGS_CD));
			// 照会先事業者
			dataMap.set(JBSbatKKIFE218.KDDI_SHOKAI_SK_JGS_NM, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_SHOKAI_SK_JGS_NM));
			// 受付店コード
			dataMap.set(JBSbatKKIFE218.KDDI_UK_TEN_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_UK_TEN_CD));
			// 受付店名
			dataMap.set(JBSbatKKIFE218.KDDI_UK_TEN_NM, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_UK_TEN_NM));
			// 受付種別
			dataMap.set(JBSbatKKIFE218.KDDI_UK_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_UK_SBT_CD));
			// 紹介票管理番号
			dataMap.set(JBSbatKKIFE218.INTR_HYO_KANRI_NO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.INTR_HYO_KANRI_NO));
			// お名前（フリガナ）
			dataMap.set(JBSbatKKIFE218.TJGWR_MKMS_KANA, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.TJGWR_MKMS_KANA));
			// 物件種別（一戸建／集合住宅）
			dataMap.set(JBSbatKKIFE218.TJGWR_MKMS_JKYO_BKN_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.TJGWR_MKMS_JKYO_BKN_SBT_CD));
			// ご希望サービス（固定電話）
			dataMap.set(JBSbatKKIFE218.EOHTL_MSKM_KIBO_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHTL_MSKM_KIBO_SBT_CD));
			// ご希望サービス（インターネット）
			dataMap.set(JBSbatKKIFE218.EOHNT_MSKM_KIBO_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHNT_MSKM_KIBO_SBT_CD));
			// ご希望サービス（TV）
			dataMap.set(JBSbatKKIFE218.EOHTV_MSKM_KIBO_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHTV_MSKM_KIBO_SBT_CD));
			// 連絡希望曜日
			dataMap.set(JBSbatKKIFE218.RRK_KIBOD_SBT_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.RRK_KIBOD_SBT_CD));
			// 連絡希望時間
			dataMap.set(JBSbatKKIFE218.RRK_KBTMZ_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.RRK_KBTMZ_CD));
			// ご利用中サービス（固定電話）
			dataMap.set(JBSbatKKIFE218.USE_CHU_TEL_SVC_NAIYO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.USE_CHU_TEL_SVC_NAIYO));
			// ご利用中サービス（インターネット）
			dataMap.set(JBSbatKKIFE218.USE_CHU_NET_SVC_NAIYO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.USE_CHU_NET_SVC_NAIYO));
			// ご利用中サービス（TV）
			dataMap.set(JBSbatKKIFE218.USE_CHU_TV_SVC_NAIYO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.USE_CHU_TV_SVC_NAIYO));
			// 個人情報に関する説明およびお客様承認
			dataMap.set(JBSbatKKIFE218.KOJIN_INFO_TRAT_SHODAKU_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KOJIN_INFO_TRAT_SHODAKU_CD));
			// 受付店特記欄
			dataMap.set(JBSbatKKIFE218.KDDI_UK_TEN_TKJK, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_UK_TEN_TKJK));
			// 提携事業者施策コード1
			dataMap.set(JBSbatKKIFE218.KOPT_SISAK_CD_1, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KOPT_SISAK_CD_1));
			// 提携事業者施策コード2
			dataMap.set(JBSbatKKIFE218.KOPT_SISAK_CD_2, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KOPT_SISAK_CD_2));
			// ＫＤＤＩ施策コード1
			dataMap.set(JBSbatKKIFE218.KDDI_SISAK_CD_1, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_SISAK_CD_1));
			// ＫＤＤＩ施策コード2
			dataMap.set(JBSbatKKIFE218.KDDI_SISAK_CD_2, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_SISAK_CD_2));
			// 備考
			dataMap.set(JBSbatKKIFE218.KDDI_BIKO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_BIKO));
			// 塗替前受付店コード
			dataMap.set(JBSbatKKIFE218.KSARAGAI_KDDI_UK_TEN_CD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KSARAGAI_KDDI_UK_TEN_CD));
			// 塗替前受付店名
			dataMap.set(JBSbatKKIFE218.KSARAGAI_KDDI_UK_TEN_NM, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KSARAGAI_KDDI_UK_TEN_NM));
			// ステータス
			String kddiTjgwrKjksStatCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_TJGWR_KJKS_STAT_CD);
			String kddiTjgwrKjksStatNm = mapKDDITjgwrKjks.getString("KDDI_TJGWR_KJKS_STAT_NM");
			if(JKKBatCommon.isNotNull(kddiTjgwrKjksStatNm))
			{
				// コード区分名桁数調整（ステータス）
				rsltMap = JKKBatCommon.checkDigitno(kddiTjgwrKjksStatNm, 1, 26, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				kddiTjgwrKjksStatNm = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
				if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
				{
					super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
							rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_1 + EKKB0010CW_PARAM_1});
				}
			}
			dataMap.set(JBSbatKKIFE218.KDDI_TJGWR_KJKS_STAT, createCdNm(kddiTjgwrKjksStatCd, kddiTjgwrKjksStatNm));
			// 案件完了日
			dataMap.set(JBSbatKKIFE218.TAIO_FIN_YMD, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.TAIO_FIN_YMD));
			// 契約サービス ｅｏ光ネット
			String eohntKeiJkyoCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHNT_KEI_JOKYO_CD);
			String eohntKeiJkyoNm = mapKDDITjgwrKjks.getString("EOHNT_KEI_JOKYO_NM");
			if(JKKBatCommon.isNotNull(eohntKeiJkyoNm))
			{
				// コード区分名桁数調整（契約サービス ｅｏ光ネット）
				rsltMap = JKKBatCommon.checkDigitno(eohntKeiJkyoNm, 1, 26, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				eohntKeiJkyoNm = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
				if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
				{
					super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
							rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_2 + EKKB0010CW_PARAM_1});
				}
			}
			dataMap.set(JBSbatKKIFE218.EOHNT_KEI_JOKYO, createCdNm(eohntKeiJkyoCd, eohntKeiJkyoNm));
			// 契約サービス ｅｏ光電話
			String eohtlKeiJokyoCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHTL_KEI_JOKYO_CD);
			String eohtlKeiJokyoNm = mapKDDITjgwrKjks.getString("EOHTL_KEI_JOKYO_NM");
			if(JKKBatCommon.isNotNull(eohtlKeiJokyoNm))
			{
				// コード区分名桁数調整（契約サービス ｅｏ光電話）
				rsltMap = JKKBatCommon.checkDigitno(eohtlKeiJokyoNm, 1, 26, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				eohtlKeiJokyoNm = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
				if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
				{
					super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
							rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_3 + EKKB0010CW_PARAM_1});
				}
			}
			dataMap.set(JBSbatKKIFE218.EOHTL_KEI_JOKYO, createCdNm(eohtlKeiJokyoCd, eohtlKeiJokyoNm));
			// 契約サービス ｅｏ光テレビ
			String eohtvKeiJokyoCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.EOHTV_KEI_JOKYO_CD);
			String eohtvKeiJokyoNm = mapKDDITjgwrKjks.getString("EOHTV_KEI_JOKYO_NM");
			if(JKKBatCommon.isNotNull(eohtvKeiJokyoNm))
			{
				// コード区分名桁数調整（契約サービス ｅｏ光テレビ）
				rsltMap = JKKBatCommon.checkDigitno(eohtvKeiJokyoNm, 1, 26, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				eohtvKeiJokyoNm = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
				if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
				{
					super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
							rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_4 + EKKB0010CW_PARAM_1});
				}
			}
			dataMap.set(JBSbatKKIFE218.EOHTV_KEI_JOKYO, createCdNm(eohtvKeiJokyoCd, eohtvKeiJokyoNm));
			// 成否結果
			String koptKeiJchukdoRsltCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KOPT_KEI_JCHUKDO_RSLT_CD);
			// コードの1桁目が"0"の場合、"0"を削除して設定
			if(JKKBatCommon.isNotNull(koptKeiJchukdoRsltCd))
			{
				if("0".equals(koptKeiJchukdoRsltCd.substring(0, 1)))
				{
					koptKeiJchukdoRsltCd = koptKeiJchukdoRsltCd.substring(1, 2);
				}
			}
			String koptKeiJchukdoRsltNM = mapKDDITjgwrKjks.getString("KOPT_KEI_JCHUKDO_RSLT_NM");
			// コード区分名桁数調整（成否結果）
			if(JKKBatCommon.isNotNull(koptKeiJchukdoRsltNM))
			{
				if(1 == koptKeiJchukdoRsltCd.length())
				{
					rsltMap = JKKBatCommon.checkDigitno(koptKeiJchukdoRsltNM, 1, 45, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				}
				else
				{
					rsltMap = JKKBatCommon.checkDigitno(koptKeiJchukdoRsltNM, 1, 44, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
				}
				koptKeiJchukdoRsltNM = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
				if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
				{
					super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
							rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_5 + EKKB0010CW_PARAM_1});
				}
			}
			dataMap.set(JBSbatKKIFE218.KOPT_KEI_JCHUKDO_RSLT, createCdNm(koptKeiJchukdoRsltCd, koptKeiJchukdoRsltNM));
			// ａｕスマートバリューＮＧ理由
			String kddiTjgweNgRsnCd = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KDDI_TJGWR_NG_RSN_CD);
			String kddiTjgweNgRsnNm = mapKDDITjgwrKjks.getString("KDDI_TJGWR_NG_RSN_NM");
			// コード区分名桁数調整（ａｕスマートバリューＮＧ理由）
			rsltMap = JKKBatCommon.checkDigitno(kddiTjgweNgRsnNm, 1, 26, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
			if(JKKBatCommon.isNotNull(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL)))
			{
				kddiTjgweNgRsnNm = rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL).toString();
			}
			if(!Boolean.valueOf(rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_BOOL).toString()))
			{
				super.logPrint.printBusinessErrorLog(EKKB0010CW, new String[] {kddiRsltFileName + "：" + 
						rowCnt + JKKStrConst.KDDI_TRKM_RSLT_VAL_ROW + LOG_ITEM_NM_6 + EKKB0010CW_PARAM_1});
			}
			dataMap.set(JBSbatKKIFE218.KDDI_TJGWR_NG_RSN, createCdNm(kddiTjgweNgRsnCd, kddiTjgweNgRsnNm));
			// 訂正内容
			String koptTeiseNaiyo = mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.KOPT_TEISE_NAIYO);
			rsltMap = JKKBatCommon.checkDigitno(koptTeiseNaiyo, 1, 80, JKKStrConst.CHAR_SET_WIN31J, JKKStrConst.KDDI_MOJISBT_BYTE);
			dataMap.set(JBSbatKKIFE218.KOPT_TEISE_NAIYO, rsltMap.get(JKKStrConst.KDDI_CHK_RSLT_VAL));
			// 申込書番号（ネット／電話）
			dataMap.set(JBSbatKKIFE218.NET_TEL_MKMSDTL_NO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.NET_TEL_MKMSDTL_NO));
			// 申込書番号（テレビ）
			dataMap.set(JBSbatKKIFE218.TV_MKMSDTL_NO, mapKDDITjgwrKjks.getString(JBSbatKK_T_KDDI_TJGWR_KJKS.TV_MKMSDTL_NO));
			
			// KDDI取次案件結果に出力する
			kddiRsltFileObj.print(dataMap, kddiRsltFileDef);
		}
		
		if(rowCnt == 0)
		{
			// KDDI他事業者割引契約状況照会情報が取得できなかった場合、業務エラー
			rsltCd = JKKStrConst.DLYD_TRN_RSLT_CD_APP_ERR;
		}
		return rowCnt;
	}
	
	/**
	 *ディレイド処理依頼結果更新処理<br>
	 * @param fileCnt ファイル件数
	 * @param isSysErrFlg エラーフラグ
	 * @throws Exception
	 */
	private void updateShoriIrai(int fileCnt, boolean isSysErrFlg) throws Exception
	{
		if (isSysErrFlg)
		{
			// エラーの場合
			// DBロールバック処理
			JBSbatBusinessBase.dbcon.rollback();
			rsltCd = JKKStrConst.DLYD_TRN_RSLT_CD_SYS_ERR;
		}
		
		// ディレイド処理依頼結果更新部品呼び出し
		String dlydTrnReqNo =  dlydTrnMapList.get(fileCnt).get(JBSbatCC_T_DLYD_TRN_REQ.DLYD_TRN_REQ_NO).toString();
		JKKBatCommon.updateShoriIraiResult(commonItem, dlydTrnReqNo, rsltCd, null);
		
		// DBコミット処理
		JBSbatBusinessBase.dbcon.commit();
	}
	
	/**
	 *コード名称結合処理<br>
	 * @param cd コード
	 * @param nm 名称
	 * @return コードと名称を結合した値
	 */
	private String createCdNm(String cd, String nm)
	{
		if(JKKBatCommon.isNotNull(cd))
		{
			if(nm == null)
			{
				return JKKStrConst.KDDI_RSLT_CD_NM.replace(JKKStrConst.KDDI_RSLT_CD, cd).replace(JKKStrConst.KDDI_RSLT_NM, "");
			}
			return JKKStrConst.KDDI_RSLT_CD_NM.replace(JKKStrConst.KDDI_RSLT_CD, cd).replace(JKKStrConst.KDDI_RSLT_NM, nm);
		}
		return null;
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(KK_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	契約状況照会状態適用開始年月日
	 *		 	契約状況照会状態適用終了年月日
	 *		 	eo光ネット契約状況適用開始年月日
	 *		 	eo光ネット契約状況適用終了年月日
	 *		 	eo光電話契約状況適用開始年月日
	 *		 	eo光電話契約状況適用終了年月日
	 *		 	eo光テレビ契約状況適用開始年月日
	 *		 	eo光テレビ契約状況適用終了年月日
	 *		 	活動結果適用開始年月日
	 *		 	活動結果適用終了年月日
	 *		 	NG理由適用開始年月日
	 *		 	NG理由適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_KDDI_TJGWR_KJKS_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());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());

		// DBアクセスを実行します
		db_KK_T_KDDI_TJGWR_KJKS.selectBySqlDefine(paramList, KK_T_KDDI_TJGWR_KJKS_KK_SELECT_002);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
