/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKKnytcsExtrctn
*	ソースファイル名	：JBSbatKKKnytcsExtrctn.java
*	作成者				：FJ)柳
*	作成日				：2016年01月12日
*＜機能概要＞
*　契約内容通知書ファイル抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v23.00.00	2016/01/12	FJ)柳		【ANK-2737-00-00】新規作成
*	v23.00.01	2016/02/09	FJ)中原		【IT1-2016-0000023】文字化け対応
*   v23.01.00   2016/04/06  FJ)原田     【ANK-2827-00-00】消費者保護ルール見直し追加対応
*   v27.00.00	2016/09/12	FJ)原田		【ANK-2985-00-00】消費者保護ルール追加対応 STEP3
*   
*********************************************************************/
package eo.business.service;

import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatStringUtil;
import eo.business.util.file.JBSbatKKIFM687;
import eo.business.util.file.JBSbatKKIFE320;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.log.JBSbatLogPrintControl;
import eo.framework.application.JBSbatBusinessError;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JCCBatchEsbInterface;

/**
* 契約内容通知書情報より、契約内容通知書の通知対象条件にて抽出する。
*<BR>
* @author FJ)柳
*/
public class JBSbatKKKnytcsExtrctn extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** テーブル(契約内容通知書) */
	private static final String TBL_KK_T_KNYTCS = "KK_T_KNYTCS";
	
	/** SQL定義キー(契約内容通知書) */
	private static final String KK_T_KNYTCS_KK_SELECT_001 = "KK_SELECT_001";
	
	/** DB項目名(契約内容通知書番号) */
	private static final String KNYTCS_NO = "KNYTCS_NO";
	/** DB項目名(異動区分) */
	private static final String IDO_DIV = "IDO_DIV";
	
	/** 出力ファイル定義 */
	private static final String PARAM_OTD = "OTD";
	
	/** 出力ファイル項目定義(契約内容通知書抽出結果更新ファイル) */
	private static final String KNYTCS_EXTRCTN_RES_UPDT_DEF = "KKIFM687.def";
	/** 出力ファイル項目定義(契約内容通知書ファイル) */
	private static final String KNYTCS_DEF = "KKIFE320.def";
	
	/** 文字コード(UTF-8) */
	public static final String UTF8 = "UTF-8";
	/** 改行コード(CR+LF) */
	public static final String LINE_SEPARATOR_CR_LF = "\r";
	/** ダブルクォーテーション */
	private static final String DBL_QUOTE = "\"";
	
	/** DBアクセスクラス(契約内容通知書) */
	private JBSbatSQLAccess db_access_knytcs = null;
	
	/** サービスID(サービスユースケースID）*/
	private static final String SVC_USECASE_ID = "KKSV0830";
	
	/** サービスIFのリターンコード(正常) */
	private static final String RETURN_CODE_SUCCESS = "0000";

	/** 加入御礼書同封制御コード("2(特定済)") */
	private static final String TOKUTEIZUMI = "2";

	

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// DBアクセスクラス生成
		db_access_knytcs = new JBSbatSQLAccess(commonItem, TBL_KK_T_KNYTCS);
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 運用日
		String opeDate = commonItem.getOpeDate();
		
		// 契約内容通知書抽出結果更新ファイル
		JBSbatOutputFileUtil knytcsExtrctnResUpdtFile = commonItem.getOutPutFile();
		// 契約内容通知書ファイル
		JBSbatOutputFileUtil knytcsFile = commonItem.getOutPutFile2();
		
		// 文字コードの設定
		knytcsExtrctnResUpdtFile.setEncode(UTF8);
		
		// 改行コードの設定
		knytcsExtrctnResUpdtFile.setLine(LINE_SEPARATOR_CR_LF);
		knytcsFile.setLine(LINE_SEPARATOR_CR_LF);
		
		// ジョブIDの設定
		knytcsExtrctnResUpdtFile.setJobID(commonItem.getJobid());
		knytcsFile.setJobID(commonItem.getJobid());
		
		// 定義ファイルオブジェクトの生成
		String knytcsExtrctnResUpdtDefNm = JBSbatAplConst.getAplConstValue(PARAM_OTD) + KNYTCS_EXTRCTN_RES_UPDT_DEF;
		JBSbatDefFileUtil knytcsExtrctnResUpdtDef = new JBSbatDefFileUtil(knytcsExtrctnResUpdtDefNm, knytcsExtrctnResUpdtFile);
		String knytcsDefNm = JBSbatAplConst.getAplConstValue(PARAM_OTD) + KNYTCS_DEF;
		JBSbatDefFileUtil knytcsDef = new JBSbatDefFileUtil(knytcsDefNm, knytcsFile);
		
		// IT1-2016-0000023 2016/02/09 ADD START
		//Writerオブジェクトを生成する。
		knytcsFile.createWriter();
		// IT1-2016-0000023 2016/02/09 ADD END
		// (1)契約内容通知書データ抽出
		// 参照(契約内容通知書)
		// パラメタを設定する
		JBSbatCommonDBInterface knytcsParamList = new JBSbatCommonDBInterface();
		
		// SELECT文を実行
		db_access_knytcs.selectBySqlDefine(knytcsParamList, KK_T_KNYTCS_KK_SELECT_001);
		
		// 結果を取得
		JBSbatCommonDBInterface knytcsResMap = new JBSbatCommonDBInterface();
		
		// (2)ファイル出力
		while((knytcsResMap = db_access_knytcs.selectNext()) != null)
		{
			// 契約内容通知書抽出結果更新ファイルの1レコード
			JBSbatServiceInterfaceMap knytcsExtrctnResUpdtFileLine = new JBSbatServiceInterfaceMap();
			
			// 契約内容通知書番号
			String knytcsNo = knytcsResMap.getString(KNYTCS_NO);
			// 異動区分
			String idoDiv = knytcsResMap.getString(IDO_DIV);
			
			// 結果を契約内容通知書抽出結果更新ファイルのマップに設定
			// 契約内容通知書番号
			knytcsExtrctnResUpdtFileLine.setString(JBSbatKKIFM687.KNYTCS_NO, knytcsNo);
			// 抽出年月日(運用日)
			knytcsExtrctnResUpdtFileLine.setString(JBSbatKKIFM687.CHSHT_YMD, opeDate);
			// 異動区分
			knytcsExtrctnResUpdtFileLine.setString(JBSbatKKIFM687.IDO_DIV, idoDiv);
			
			// 契約内容通知書抽出結果更新ファイルの1レコード分を出力
			knytcsExtrctnResUpdtFile.print(knytcsExtrctnResUpdtFileLine, knytcsExtrctnResUpdtDef);
			
			// 契約内容通知書ファイルの1レコード
			JBSbatServiceInterfaceMap knytcsFileLine = new JBSbatServiceInterfaceMap();
			
			// ユースケースIDを格納するMAP
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			// ユースケースIDを設定
			paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID);

			// サービスに渡す業務データを格納するMAP
			HashMap<String, Object> inputMap = new HashMap<String, Object>();
			
			// 契約内容通知書番号を設定
			inputMap.put("knytcs_no", knytcsNo);
			
			// サービスの処理結果が格納されるMAP
			HashMap<String, Object> outputMap = new HashMap<String, Object>();

			// サービス呼び出し
			JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
			// エラー判定
			String returnCode = outputMap.get("RETURN_CODE").toString();
			if(!RETURN_CODE_SUCCESS.equals(returnCode))
			{
				String msg = JBSbatLogPrintControl.getMessage(JPCBatchMessageConstant.EKKB0270CE, new String[]{SVC_USECASE_ID});
				JBSbatBusinessError ex = new JBSbatBusinessError(msg);
				super.logPrint.printErrMsg(JPCBatchMessageConstant.EKKB0270CE, ex, new String[]{SVC_USECASE_ID});
				throw ex;
			}
			
			// サービスの処理結果より取得
			HashMap<String, Object> resultMap = (HashMap<String, Object>)outputMap.get("KKSV083001CC");
			
			// サービスインターフェースより返却値が設定されている場合
			if (null != resultMap && 0 != resultMap.size())
			{
				// 結果を契約内容通知書ファイルのマップに設定
				//ANK-2827-00-00 MOD START
//				// SYSID
//				knytcsFileLine.set(JBSbatKKIFE320.SYSID,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sysid"), DBL_QUOTE));
//				// サービス契約回線内訳番号
//				knytcsFileLine.set(JBSbatKKIFE320.SVC_KEI_KAISEN_UCWK_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("svc_kei_kaisen_ucwk_no"), DBL_QUOTE));
//				
//				// 申込種別(NULL固定)
//				knytcsFileLine.set(JBSbatKKIFE320.MSKM_SYBTU,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("mskm_sybtu"), DBL_QUOTE));
//				
//				// 送付先_お客様名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_nm"), DBL_QUOTE));
//				// 送付先_郵便番号
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_PCD,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_pcd"), DBL_QUOTE));
//				// 送付先_都道府県名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_STATE_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_state_nm"), DBL_QUOTE));
//				// 送付先_市区町村名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_CITY_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_city_nm"), DBL_QUOTE));
//				// 送付先_大字通称名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_OAZTSU_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_oaztsu_nm"), DBL_QUOTE));
//				// 送付先_字丁目名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_AZCHO_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_azcho_nm"), DBL_QUOTE));
//				// 送付先_番地号
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_BNCHIGO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_bnchigo"), DBL_QUOTE));
//				// 送付先_住所補記・建物名
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_ADRTTM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_adrttm"), DBL_QUOTE));
//				// 送付先_住所補記・部屋番号
//				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_ADRRM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("sohus_adrrm"), DBL_QUOTE));
//				
//				// 発行日(運用日)
//				knytcsFileLine.set(JBSbatKKIFE320.HAKKO_YMD,
//						JKKBatStringUtil.getChrZengoFuyo(opeDate, DBL_QUOTE));
//				
//				// 契約内容通知書_文言
//				knytcsFileLine.set(JBSbatKKIFE320.KNYTCS_MNGO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("knytcs_mngo"), DBL_QUOTE));
//				// 契約成立年月日
//				knytcsFileLine.set(JBSbatKKIFE320.KIYK_SEI_YMD,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("kiyk_sei_ymd"), DBL_QUOTE));
//				// お客様_お客様名
//				knytcsFileLine.set(JBSbatKKIFE320.CUST_CUST_NM,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("cust_cust_nm"), DBL_QUOTE));
//				// お客様_住所
//				knytcsFileLine.set(JBSbatKKIFE320.CUST_KEISHA_AD,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("cust_keisha_ad"), DBL_QUOTE));
//				// 利用場所_住所
//				knytcsFileLine.set(JBSbatKKIFE320.RYOBSY_AD,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("ryobsy_ad"), DBL_QUOTE));
//				// サービス提供開始時期
//				knytcsFileLine.set(JBSbatKKIFE320.SVC_TK_STA_JIKI,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("svc_tk_sta_jiki"), DBL_QUOTE));
//				// ネット_申込番号
//				knytcsFileLine.set(JBSbatKKIFE320.NET_MSKM_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_mskm_no"), DBL_QUOTE));
//				// ネット_コース
//				knytcsFileLine.set(JBSbatKKIFE320.NET_CORSE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_corse"), DBL_QUOTE));
//				// ネット_割引サービス
//				knytcsFileLine.set(JBSbatKKIFE320.NET_WRIB_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_wrib_svc"), DBL_QUOTE));
//				// ネット_オプションサービス
//				knytcsFileLine.set(JBSbatKKIFE320.NET_OP_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_op_svc"), DBL_QUOTE));
//				// ネット_適用キャンペーン
//				knytcsFileLine.set(JBSbatKKIFE320.NET_APLY_CP,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_aply_cp"), DBL_QUOTE));
//				// ネット_契約内容変更・解除等に関する条項
//				knytcsFileLine.set(JBSbatKKIFE320.NET_KNYHEN_CAN,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_knyhen_can"), DBL_QUOTE));
//				// 電話_申込番号
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_MSKM_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_mskm_no"), DBL_QUOTE));
//				// 電話_コース
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_CORSE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_corse"), DBL_QUOTE));
//				// 電話_割引サービス
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_WRIB_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_wrib_svc"), DBL_QUOTE));
//				// 電話_適用キャンペーン
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_APLY_CP,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_aply_cp"), DBL_QUOTE));
//				// 電話1_電話番号
//				knytcsFileLine.set(JBSbatKKIFE320.TEL1_TEL_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel1_tel_no"), DBL_QUOTE));
//				// 電話1_オプションサービス
//				knytcsFileLine.set(JBSbatKKIFE320.TEL1_OP_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel1_op_svc"), DBL_QUOTE));
//				// 電話2_電話番号
//				knytcsFileLine.set(JBSbatKKIFE320.TEL2_TEL_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel2_tel_no"), DBL_QUOTE));
//				// 電話2_オプションサービス
//				knytcsFileLine.set(JBSbatKKIFE320.TEL2_OP_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel2_op_svc"), DBL_QUOTE));
//				// テレビ_申込番号
//				knytcsFileLine.set(JBSbatKKIFE320.TV_MSKM_NO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_mskm_no"), DBL_QUOTE));
//				// テレビ_割引サービス
//				knytcsFileLine.set(JBSbatKKIFE320.TV_WRIB_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_wrib_svc"), DBL_QUOTE));
//				// テレビ_適用キャンペーン
//				knytcsFileLine.set(JBSbatKKIFE320.TV_APLY_CP,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_aply_cp"), DBL_QUOTE));
//				// テレビ_オプションサービス
//				knytcsFileLine.set(JBSbatKKIFE320.TV_OP_SVC,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_op_svc"), DBL_QUOTE));
//				// テレビ1_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV1_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv1_title"), DBL_QUOTE));
//				// テレビ1_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV1_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv1_dtl"), DBL_QUOTE));
//				// テレビ2_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV2_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv2_title"), DBL_QUOTE));
//				// テレビ2_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV2_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv2_dtl"), DBL_QUOTE));
//				// テレビ3_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV3_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv3_title"), DBL_QUOTE));
//				// テレビ3_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV3_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv3_dtl"), DBL_QUOTE));
//				// テレビ4_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV4_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv4_title"), DBL_QUOTE));
//				// テレビ4_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV4_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv4_dtl"), DBL_QUOTE));
//				// テレビ5_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV5_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv5_title"), DBL_QUOTE));
//				// テレビ5_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV5_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv5_dtl"), DBL_QUOTE));
//				// テレビ_契約内容変更・解除等に関する条項
//				knytcsFileLine.set(JBSbatKKIFE320.TV_KYNYH_JYOKO,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_kynyh_jyoko"), DBL_QUOTE));
//				// 支払方法
//				knytcsFileLine.set(JBSbatKKIFE320.PAY_WAY,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("pay_way"), DBL_QUOTE));
//				// ネット_料金_基本料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_KIHONPRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_prc_kihonprc_dtl"), DBL_QUOTE));
//				// ネット_料金_標準工事費
//				knytcsFileLine.set(JBSbatKKIFE320.NET_STDARD_KOJIHI,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_stdard_kojihi"), DBL_QUOTE));
//				// ネット_料金_手数料
//				knytcsFileLine.set(JBSbatKKIFE320.NET_COMMISION,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_commision"), DBL_QUOTE));
//				// ネット_料金_割引サービス_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_WRIBSVC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_prc_wribsvc_dtl"), DBL_QUOTE));
//				// ネット_料金_キャンペーン_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_CP_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("net_prc_cp_dtl"), DBL_QUOTE));
//				// 電話_料金_基本料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_KIHONPRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_prc_kihonprc_dtl"), DBL_QUOTE));
//				// 電話_料金_標準工事費
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_STDARD_KOJIHI,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_stdard_kojihi"), DBL_QUOTE));
//				// 電話_料金_手数料
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_COMMISION,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_commision"), DBL_QUOTE));
//				// 電話_料金_割引サービス_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_WRIBSVC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_prc_wribsvc_dtl"), DBL_QUOTE));
//				// 電話_料金_キャンペーン_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_CP_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tel_prc_cp_dtl"), DBL_QUOTE));
//				// テレビ1_料金_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV1_PRC_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv1_prc_title"), DBL_QUOTE));
//				// テレビ1_料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV1_PRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv1_prc_dtl"), DBL_QUOTE));
//				// テレビ2_料金_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV2_PRC_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv2_prc_title"), DBL_QUOTE));
//				// テレビ2_料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV2_PRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv2_prc_dtl"), DBL_QUOTE));
//				// テレビ3_料金_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV3_PRC_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv3_prc_title"), DBL_QUOTE));
//				// テレビ3_料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV3_PRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv3_prc_dtl"), DBL_QUOTE));
//				// テレビ4_料金_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV4_PRC_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv4_prc_title"), DBL_QUOTE));
//				// テレビ4_料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV4_PRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv4_prc_dtl"), DBL_QUOTE));
//				// テレビ5_料金_タイトル
//				knytcsFileLine.set(JBSbatKKIFE320.TV5_PRC_TITLE,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv5_prc_title"), DBL_QUOTE));
//				// テレビ5_料金_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV5_PRC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv5_prc_dtl"), DBL_QUOTE));
//				// テレビ_料金_標準工事費
//				knytcsFileLine.set(JBSbatKKIFE320.TV_STDARD_KOJIHI,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_stdard_kojihi"), DBL_QUOTE));
//				// テレビ_料金_手数料
//				knytcsFileLine.set(JBSbatKKIFE320.TV_COMMISION,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_commision"), DBL_QUOTE));
//				// テレビ_料金_割引サービス_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV_PRC_WRIBSVC_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_prc_wribsvc_dtl"), DBL_QUOTE));
//				// テレビ_料金_キャンペーン_詳細
//				knytcsFileLine.set(JBSbatKKIFE320.TV_PRC_CP_DTL,
//						JKKBatStringUtil.getChrZengoFuyo((String)resultMap.get("tv_prc_cp_dtl"), DBL_QUOTE));
				// SYSID
				knytcsFileLine.set(JBSbatKKIFE320.SYSID,(String)resultMap.get("sysid"));
				// サービス契約回線内訳番号
				knytcsFileLine.set(JBSbatKKIFE320.SVC_KEI_KAISEN_UCWK_NO,(String)resultMap.get("svc_kei_kaisen_ucwk_no"));
				
				// 申込種別(NULL固定)
				knytcsFileLine.set(JBSbatKKIFE320.MSKM_SYBTU,(String)resultMap.get("mskm_sybtu"));
				
				// 送付先_お客様名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_NM,(String)resultMap.get("sohus_nm"));
				// 送付先_郵便番号
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_PCD,(String)resultMap.get("sohus_pcd"));
				// 送付先_都道府県名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_STATE_NM,(String)resultMap.get("sohus_state_nm"));
				// 送付先_市区町村名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_CITY_NM,(String)resultMap.get("sohus_city_nm"));
				// 送付先_大字通称名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_OAZTSU_NM,(String)resultMap.get("sohus_oaztsu_nm"));
				// 送付先_字丁目名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_AZCHO_NM,(String)resultMap.get("sohus_azcho_nm"));
				// 送付先_番地号
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_BNCHIGO,(String)resultMap.get("sohus_bnchigo"));
				// 送付先_住所補記・建物名
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_ADRTTM,(String)resultMap.get("sohus_adrttm"));
				// 送付先_住所補記・部屋番号
				knytcsFileLine.set(JBSbatKKIFE320.SOHUS_ADRRM,(String)resultMap.get("sohus_adrrm"));
				
				// 発行日(運用日)
				knytcsFileLine.set(JBSbatKKIFE320.HAKKO_YMD,opeDate);
				
				// 契約内容通知書_文言
				knytcsFileLine.set(JBSbatKKIFE320.KNYTCS_MNGO,(String)resultMap.get("knytcs_mngo"));
				// 契約成立年月日
				knytcsFileLine.set(JBSbatKKIFE320.KIYK_SEI_YMD,(String)resultMap.get("kiyk_sei_ymd"));
				// お客様_お客様名
				knytcsFileLine.set(JBSbatKKIFE320.CUST_CUST_NM,(String)resultMap.get("cust_cust_nm"));
				// お客様_住所
				knytcsFileLine.set(JBSbatKKIFE320.CUST_KEISHA_AD,(String)resultMap.get("cust_keisha_ad"));
				// 利用場所_住所
				knytcsFileLine.set(JBSbatKKIFE320.RYOBSY_AD,(String)resultMap.get("ryobsy_ad"));
				// サービス提供開始時期
				knytcsFileLine.set(JBSbatKKIFE320.SVC_TK_STA_JIKI,(String)resultMap.get("svc_tk_sta_jiki"));
				// ネット_申込番号
				knytcsFileLine.set(JBSbatKKIFE320.NET_MSKM_NO,(String)resultMap.get("net_mskm_no"));
				// ネット_コース
				knytcsFileLine.set(JBSbatKKIFE320.NET_CORSE,(String)resultMap.get("net_corse"));
				// ネット_割引サービス
				knytcsFileLine.set(JBSbatKKIFE320.NET_WRIB_SVC,(String)resultMap.get("net_wrib_svc"));
				// ネット_オプションサービス
				knytcsFileLine.set(JBSbatKKIFE320.NET_OP_SVC,(String)resultMap.get("net_op_svc"));
				// ネット_適用キャンペーン
				knytcsFileLine.set(JBSbatKKIFE320.NET_APLY_CP,(String)resultMap.get("net_aply_cp"));
				// ネット_契約内容変更・解除等に関する条項
				knytcsFileLine.set(JBSbatKKIFE320.NET_KNYHEN_CAN,(String)resultMap.get("net_knyhen_can"));
				// 電話_申込番号
				knytcsFileLine.set(JBSbatKKIFE320.TEL_MSKM_NO,(String)resultMap.get("tel_mskm_no"));
				// 電話_コース
				knytcsFileLine.set(JBSbatKKIFE320.TEL_CORSE,(String)resultMap.get("tel_corse"));
				// 電話_割引サービス
				knytcsFileLine.set(JBSbatKKIFE320.TEL_WRIB_SVC,(String)resultMap.get("tel_wrib_svc"));
				// 電話_適用キャンペーン
				knytcsFileLine.set(JBSbatKKIFE320.TEL_APLY_CP,(String)resultMap.get("tel_aply_cp"));
				// 電話1_電話番号
				knytcsFileLine.set(JBSbatKKIFE320.TEL1_TEL_NO,(String)resultMap.get("tel1_tel_no"));
				// 電話1_オプションサービス
				knytcsFileLine.set(JBSbatKKIFE320.TEL1_OP_SVC,(String)resultMap.get("tel1_op_svc"));
				// 電話2_電話番号
				knytcsFileLine.set(JBSbatKKIFE320.TEL2_TEL_NO,(String)resultMap.get("tel2_tel_no"));
				// 電話2_オプションサービス
				knytcsFileLine.set(JBSbatKKIFE320.TEL2_OP_SVC,(String)resultMap.get("tel2_op_svc"));
				// テレビ_申込番号
				knytcsFileLine.set(JBSbatKKIFE320.TV_MSKM_NO,(String)resultMap.get("tv_mskm_no"));
				// テレビ_割引サービス
				knytcsFileLine.set(JBSbatKKIFE320.TV_WRIB_SVC,(String)resultMap.get("tv_wrib_svc"));
				// テレビ_適用キャンペーン
				knytcsFileLine.set(JBSbatKKIFE320.TV_APLY_CP,(String)resultMap.get("tv_aply_cp"));
				// テレビ_オプションサービス
				knytcsFileLine.set(JBSbatKKIFE320.TV_OP_SVC,(String)resultMap.get("tv_op_svc"));
				// テレビ1_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV1_TITLE,(String)resultMap.get("tv1_title"));
				// テレビ1_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV1_DTL,(String)resultMap.get("tv1_dtl"));
				// テレビ2_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV2_TITLE,(String)resultMap.get("tv2_title"));
				// テレビ2_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV2_DTL,(String)resultMap.get("tv2_dtl"));
				// テレビ3_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV3_TITLE,(String)resultMap.get("tv3_title"));
				// テレビ3_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV3_DTL,(String)resultMap.get("tv3_dtl"));
				// テレビ4_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV4_TITLE,(String)resultMap.get("tv4_title"));
				// テレビ4_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV4_DTL,(String)resultMap.get("tv4_dtl"));
				// テレビ5_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV5_TITLE,(String)resultMap.get("tv5_title"));
				// テレビ5_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV5_DTL,(String)resultMap.get("tv5_dtl"));
				// テレビ_契約内容変更・解除等に関する条項
				knytcsFileLine.set(JBSbatKKIFE320.TV_KYNYH_JYOKO,(String)resultMap.get("tv_kynyh_jyoko"));
				// 支払方法
				knytcsFileLine.set(JBSbatKKIFE320.PAY_WAY,(String)resultMap.get("pay_way"));
				// ネット_料金_基本料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_KIHONPRC_DTL,(String)resultMap.get("net_prc_kihonprc_dtl"));
				// ネット_料金_標準工事費
				knytcsFileLine.set(JBSbatKKIFE320.NET_STDARD_KOJIHI,(String)resultMap.get("net_stdard_kojihi"));
				// ネット_料金_手数料
				knytcsFileLine.set(JBSbatKKIFE320.NET_COMMISION,(String)resultMap.get("net_commision"));
				// ネット_料金_割引サービス_詳細
				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_WRIBSVC_DTL,(String)resultMap.get("net_prc_wribsvc_dtl"));
				// ネット_料金_キャンペーン_詳細
				knytcsFileLine.set(JBSbatKKIFE320.NET_PRC_CP_DTL,(String)resultMap.get("net_prc_cp_dtl"));
				// 電話_料金_基本料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_KIHONPRC_DTL,(String)resultMap.get("tel_prc_kihonprc_dtl"));
				// 電話_料金_標準工事費
				knytcsFileLine.set(JBSbatKKIFE320.TEL_STDARD_KOJIHI,(String)resultMap.get("tel_stdard_kojihi"));
				// 電話_料金_手数料
				knytcsFileLine.set(JBSbatKKIFE320.TEL_COMMISION,(String)resultMap.get("tel_commision"));
				// 電話_料金_割引サービス_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_WRIBSVC_DTL,(String)resultMap.get("tel_prc_wribsvc_dtl"));
				// 電話_料金_キャンペーン_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TEL_PRC_CP_DTL,(String)resultMap.get("tel_prc_cp_dtl"));
				// テレビ1_料金_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV1_PRC_TITLE,(String)resultMap.get("tv1_prc_title"));
				// テレビ1_料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV1_PRC_DTL,(String)resultMap.get("tv1_prc_dtl"));
				// テレビ2_料金_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV2_PRC_TITLE,(String)resultMap.get("tv2_prc_title"));
				// テレビ2_料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV2_PRC_DTL,(String)resultMap.get("tv2_prc_dtl"));
				// テレビ3_料金_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV3_PRC_TITLE,(String)resultMap.get("tv3_prc_title"));
				// テレビ3_料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV3_PRC_DTL,(String)resultMap.get("tv3_prc_dtl"));
				// テレビ4_料金_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV4_PRC_TITLE,(String)resultMap.get("tv4_prc_title"));
				// テレビ4_料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV4_PRC_DTL,(String)resultMap.get("tv4_prc_dtl"));
				// テレビ5_料金_タイトル
				knytcsFileLine.set(JBSbatKKIFE320.TV5_PRC_TITLE,(String)resultMap.get("tv5_prc_title"));
				// テレビ5_料金_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV5_PRC_DTL,(String)resultMap.get("tv5_prc_dtl"));
				// テレビ_料金_標準工事費
				knytcsFileLine.set(JBSbatKKIFE320.TV_STDARD_KOJIHI,(String)resultMap.get("tv_stdard_kojihi"));
				// テレビ_料金_手数料
				knytcsFileLine.set(JBSbatKKIFE320.TV_COMMISION,(String)resultMap.get("tv_commision"));
				// テレビ_料金_割引サービス_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV_PRC_WRIBSVC_DTL,(String)resultMap.get("tv_prc_wribsvc_dtl"));
				// テレビ_料金_キャンペーン_詳細
				knytcsFileLine.set(JBSbatKKIFE320.TV_PRC_CP_DTL,(String)resultMap.get("tv_prc_cp_dtl"));
				//契約内容通知書の加入御礼書同封制御コードが"2(特定済)"の場合、加入御礼書同封有無に"1(有)"を設定。それ以外の場合"0(無)"を設定。
				String kanuoreso_dofu_ctrl_cd = (String)resultMap.get("kanuoreso_dofu_ctrl_cd");
				if (TOKUTEIZUMI.equals((String)kanuoreso_dofu_ctrl_cd)){
					knytcsFileLine.set(JBSbatKKIFE320.KNYORESO_DOFU_UM,"1");
				}
				else{
					knytcsFileLine.set(JBSbatKKIFE320.KNYORESO_DOFU_UM,"0");
				}
				//ANK-2827-00-00 MOD END
				// ANK-2985-00-00 ADD START
				// レター発送仕分区分
				knytcsFileLine.set(JBSbatKKIFE320.LETTER_HASSO_SHIWAKE_DIV,(String)resultMap.get("letter_hasso_shiwake_div"));
				// ANK-2985-00-00 ADD END
				// 契約内容通知書ファイルの1レコード分を出力
				knytcsFile.print(knytcsFileLine, knytcsDef);
			}
		}
		
		// ファイルクローズ
		knytcsExtrctnResUpdtFile.close();
		knytcsFile.close();
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		// DBアクセスクラスクローズ
		db_access_knytcs.close();
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
