/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKTchishoRemake
*	ソースファイル名	：JBSbatKKTchishoRemake.java
*	作成者				：富士通　
*	作成日				：2012年07月26日
*＜機能概要＞
*　通知書・通知対象物再作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00		2012/07/26   富士通		新規作成
*	v5.00		2013/02/28   FJ)井熊	【ANK-1469-00-00】ID通知書随時発行対応
 *  v11.00		2014/10/21   FJ)山裾	【ANK-2333-00-00】通知書印刷実施先コードの編集追加、レター同梱時の処理追加
*   v22.00.00	2016/01/13   FJ)金      【OM-2016-0000083】レター同梱処理の対応
*   v53.00.00   2021/06/07   FJ)星野     IT2-2021-0000020
*   v66.00.00	2023/06/02	 FJ)西川    【OM#81837】通知書登録処理でエラー発生時にマイナーエラーとならない（ANK-4419-00-00_瑕疵外障害対応（２０２３年６月））
*   v71.00.00	2024/05/01	 FJ)アラ    【ANK-4543-00-00】【NTT卸対応：Step0】
*********************************************************************/
package eo.business.service;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatConst;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.framework.application.JBSbatBatchInvoker;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatStringUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKTchishoRemake extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** SQL定義キー(KK_SELECT_188)*/
	private static final String KK_T_SVC_KEI_KK_SELECT_188 = "KK_SELECT_188";

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	//ANK-4543-00-00 ADD START
	/** SQL定義キー(KK_SELECT_001)*/
	private static final String KK_T_NTTORS_KEI_KK_SELECT_001 = "KK_SELECT_001"; 
	
	/** テーブルアクセスクラス(NTT卸契約)*/
	private JBSbatSQLAccess db_KK_T_NTTORS_KEI = null;
	//ANK-4543-00-00 ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 通知書再作成ファイルパス */
	private String tchisho_remake_info_file_path = "";
	
	/** ユースケースID ID通知書登録 */
	private static final String USECASE_ID_KKSV0606 = "KKSV0606";
	
	/** 通知完了済フラグ:済 */
	private static final String TCHI_KANRYO_ZUMI_FLG_ZUMI = "1";	

	/** サービスIFのリターンコード(正常) */
	private static final String RETURN_CODE_SUCCESS = "0";
	
	// v11.00.00 2014/10/21 Add Start
	/** 通知書発行コード:レター同梱 */
	private static final String TCHISHO_HAKKO_CD_SAMELETTER = "3";
	// v11.00.00 2014/10/21 Add End
	
	//ANK-4543-00-00 ADD START
	private static final String D_TBL_NAME_KK_T_NTTORS_KEI = "KK_T_NTTORS_KEI";
	//ANK-4543-00-00 ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		//ANK-4543-00-00 ADD START
		db_KK_T_NTTORS_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_NTTORS_KEI);
		//ANK-4543-00-00 ADD END

		tchisho_remake_info_file_path = super.commonItem.getFreeItem();
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 指定のファイルを読み込む
		JBSbatInputFileUtil file = null;
		
		try
		{
			String rline = null;
			
			// 通知書ステータス
			String tchishoStatus = null;
			// SYSID
			String sysId = null;
			// 通知書発行コード
			String tchishoHakkoCd = null;
			// 申込明細番号
			String moshikomiDtlNo = null;
			// 申込書番号
			String moshikomishoNo = null;
			// 工事案件番号
			String kojiAnkenNo = null;
			// 通知書コード
			String tchishoCd = null;
			// 通知書登録ユーザーID
			String tchishoAddUserId = null;
			// 通知書送付先コード
			String tchishoSofusakiCd = null;
			// 通知書送付先名
			String tchishoSofusakiNm = null;
			// 通知書送付先住所コード
			String tchishoSofusakiAdCd = null;
			// 通知書送付先郵便番号
			String tchishoSofusakiPCd = null;
			// 通知書送付先都道府県名
			String tchishoSofusakiStateNm = null;
			// 通知書送付先市区町村名
			String tchishoSofusakiCityNm = null;
			// 通知書送付先大字通称名
			String tchishoSofusakiOazaNm = null;
			// 通知書送付先字丁目名
			String tchishoSofusakiAzNm = null;
			// 通知書送付先番地号
			String tchishoSofusakiBnchigo = null;
			// 通知書送付先住所補記・建物名
			String tchishoSofusakiTtnm = null;
			// 通知書送付先住所補記・部屋番号
			String tchishoSofusakiRnm = null;
			// 通知書送付先電話番号
			String tchishoSofusakiTelNo = null;
			// 通知書印刷実施先コード
			String printCd = null;
			// サービス契約番号
			String svcKeiNo = null;
			// 通知完了済フラグ
			String tsuchiZumiFlg = null;
			
			// ファイル情報リスト
			ArrayList<HashMap<String, Object>> infoMapList = new ArrayList<HashMap<String, Object>>();
			HashMap<String, Object> infoMap = null;
			// 抽出済サービス契約番号リスト
			ArrayList<String> svcKeiNoList = new ArrayList<String>();
			
			// v11.00.00 2014/10/21 Add Start
			// レター同梱リスト
			ArrayList<HashMap<String, Object>>letterInfoMapList = new ArrayList<HashMap<String, Object>>();
			// v11.00.00 2014/10/21 Add End
			
			// 入力ファイルクラスを生成します。
			file = new JBSbatInputFileUtil(tchisho_remake_info_file_path);
			file.setEncode(JKKBatConst.SJIS);
			file.createReader();
			
			int cnt = 1;
			
			while (file.ready())
			{
				// 一行読み込む
				rline = file.readLine();
				infoMap = new HashMap<String, Object>();
				
				String[] values =  rline.split(",");
				
				if (23 != values.length)
				{
					StringBuilder sb = new StringBuilder();
					sb.append("レコード項目数不正:").append(rline);
					commonItem.getLogPrint().printBusinessErrorLog("EKKB0010CW", new String[]{sb.toString()});
					continue;
				}
				
				// 通知書ステータス
				tchishoStatus = JBSbatStringUtil.trim(values[0]);
				infoMap.put("tchisho_stat", tchishoStatus);
				
				// SYSID
				sysId = JBSbatStringUtil.trim(values[1]);
				infoMap.put("sysid", sysId);
				
				// 通知書発行コード
				tchishoHakkoCd = JBSbatStringUtil.trim(values[2]);
				infoMap.put("tchisho_hakko_cd", tchishoHakkoCd);
				
				// 申込明細番号
				moshikomiDtlNo = JBSbatStringUtil.trim(values[3]);
				infoMap.put("mskm_dtl_no", moshikomiDtlNo);
				
				// 申込書番号
				moshikomishoNo = JBSbatStringUtil.trim(values[4]);
				infoMap.put("mskmsho_no", moshikomishoNo);
				
				// 工事案件番号
				kojiAnkenNo = JBSbatStringUtil.trim(values[5]);
				infoMap.put("kojiak_no", kojiAnkenNo);
				
				// 通知書コード
				tchishoCd = JBSbatStringUtil.trim(values[6]);
				infoMap.put("tchishoCd", tchishoCd);
				
				// 通知書登録ユーザーID
				tchishoAddUserId = JBSbatStringUtil.trim(values[7]);
				infoMap.put("tchisho_add_user_id", tchishoAddUserId);
				
				// 通知書送付先コード
				tchishoSofusakiCd = JBSbatStringUtil.trim(values[8]);
				infoMap.put("tchisho_sohus_cd", tchishoSofusakiCd);
				
				// 通知書送付先名
				tchishoSofusakiNm = JBSbatStringUtil.trim(values[9]);
				infoMap.put("tchisho_sohus_nm", tchishoSofusakiNm);
				
				// 通知書送付先住所コード
				tchishoSofusakiAdCd = JBSbatStringUtil.trim(values[10]);
				infoMap.put("tchisho_sohus_ad_cd", tchishoSofusakiAdCd);
				
				// 通知書送付先郵便番号
				tchishoSofusakiPCd = JBSbatStringUtil.trim(values[11]);
				infoMap.put("tchisho_sohus_pcd", tchishoSofusakiPCd);
				
				// 通知書送付先都道府県名
				tchishoSofusakiStateNm = JBSbatStringUtil.trim(values[12]);
				infoMap.put("tchisho_sohus_state_nm", tchishoSofusakiStateNm);
				
				// 通知書送付先市区町村名
				tchishoSofusakiCityNm = JBSbatStringUtil.trim(values[13]);
				infoMap.put("tchisho_sohus_city_nm", tchishoSofusakiCityNm);
				
				// 通知書送付先大字通称名
				tchishoSofusakiOazaNm = JBSbatStringUtil.trim(values[14]);
				infoMap.put("tchisho_sohus_oaztsu_nm", tchishoSofusakiOazaNm);
				
				// 通知書送付先字丁目名
				tchishoSofusakiAzNm = JBSbatStringUtil.trim(values[15]);
				infoMap.put("tchisho_sohus_azcho_nm", tchishoSofusakiAzNm);
				
				// 通知書送付先番地号
				tchishoSofusakiBnchigo = JBSbatStringUtil.trim(values[16]);
				infoMap.put("tchisho_sohus_bnchigo", tchishoSofusakiBnchigo);
				
				// 通知書送付先住所補記・建物名
				tchishoSofusakiTtnm = JBSbatStringUtil.trim(values[17]);
				infoMap.put("tchisho_sohus_adrttm", tchishoSofusakiTtnm);
				
				// 通知書送付先住所補記・部屋番号
				tchishoSofusakiRnm = JBSbatStringUtil.trim(values[18]);
				infoMap.put("tchisho_sohus_adrrm", tchishoSofusakiRnm);
				
				// 通知書送付先電話番号
				tchishoSofusakiTelNo = JBSbatStringUtil.trim(values[19]);
				infoMap.put("tchisho_sohus_telno", tchishoSofusakiTelNo);
				
				// 通知書印刷実施先コード
				printCd = JBSbatStringUtil.trim(values[20]);
				
				// v11.00.00 2014/10/21 Mod Start
//				infoMap.put("printCd", printCd);
				infoMap.put("tchisho_print_jssi_sk_cd", printCd);
				// v11.00.00 2014/10/21 Mod End
				
				// サービス契約番号
				svcKeiNo = JBSbatStringUtil.trim(values[21]);
				infoMap.put("svc_kei_no", svcKeiNo);
				
				// 通知完了済フラグ
				tsuchiZumiFlg = JBSbatStringUtil.trim(values[22]);
				infoMap.put("tchi_fin_zm_flg", tsuchiZumiFlg);
				
				// 単項目チェックの実施
				if(!isSingleCheckKKIFM220(infoMap, getItemvalueMap()))
				{
					continue;
				}
				
				// v11.00.00 2014/10/21 Mod Start
//				infoMapList.add(infoMap);
				// 通知書発行コードによりリスト出力先を変更
				if (TCHISHO_HAKKO_CD_SAMELETTER.equals(tchishoHakkoCd))
				{
					letterInfoMapList.add(infoMap);
				}
				else
				{
					infoMapList.add(infoMap);
				}
				// v11.00.00 2014/10/21 Mod End
				
				cnt++;
			}
			
			for (int i = 0; i < infoMapList.size(); i++)
			{
				svcKeiNo = (String)infoMapList.get(i).get("svc_kei_no");
				
				if(hasNTTRecord(svcKeiNo)) {
					continue;
				}
				
				if (!svcKeiNoList.contains(svcKeiNo))
				{
					// サービス契約番号を元に、同じ整理番号のサービス契約番号を取得する
					Object[] param = {svcKeiNo, super.opeDate, super.opeDate};
					List<JBSbatCommonDBInterface> list = executeKK_T_SVC_KEI_KK_SELECT_188(param);
					JBSbatCommonDBInterface info = null;
					String targetSvcKeiNo = null;
					
					HashMap<String, Object> paramChildMap = null;
					ArrayList<HashMap<String, Object>> paramList = new ArrayList<HashMap<String, Object>>();
					int zumiCnt = 0;
					
					// 整理番号で取得したサービス契約情報分ループ処理
					for (int j = 0; j < list.size(); j++)
					{
						info = list.get(j);
						targetSvcKeiNo = info.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
						
						// ファイル出力されたサービス契約情報分ループ処理
						for (int k = 0; k < infoMapList.size(); k++)
						{
							infoMap = infoMapList.get(k);
							
							// 整理番号で取得したサービス契約であり、
							// ファイルに出力されているサービス契約を再作成対象とする
							if (null != targetSvcKeiNo 
									&& !"".equals(targetSvcKeiNo) 
									&& targetSvcKeiNo.equals(infoMap.get("svc_kei_no")))
							{
								svcKeiNoList.add(targetSvcKeiNo);
								
								// 通知書登録CCへのパラメータを作成する
								paramChildMap = new HashMap<String, Object>();
								
								// サービス契約番号
								paramChildMap.put("svc_kei_no", targetSvcKeiNo);
								// SYSID
								paramChildMap.put("sysid", infoMap.get("sysid"));

								//▼▼▼【ANK-1469-00-00】2013/2/28 M.IKUMA Start ▼▼▼
								// 通知書発行コード
								paramChildMap.put("tchisho_hakko_cd", infoMap.get("tchisho_hakko_cd"));
								//▲▲▲【ANK-1469-00-00】2013/2/28 M.IKUMA   End ▲▲▲

								// 申込明細番号
								paramChildMap.put("mskm_dtl_no", infoMap.get("mskm_dtl_no"));
								// 申込書番号
								paramChildMap.put("mskmsho_no", infoMap.get("mskmsho_no"));
								// 工事案件番号
								paramChildMap.put("kojiak_no", infoMap.get("kojiak_no"));
								// 通知書登録ユーザーID
								paramChildMap.put("tchisho_add_user_id", infoMap.get("tchisho_add_user_id"));
								// 通知書送付先コード
								paramChildMap.put("tchisho_sohus_cd", infoMap.get("tchisho_sohus_cd"));
								// 通知書送付先名
								paramChildMap.put("tchisho_sohus_nm", infoMap.get("tchisho_sohus_nm"));
								// 通知書送付先住所コード
								paramChildMap.put("tchisho_sohus_ad_cd", infoMap.get("tchisho_sohus_ad_cd"));
								// 通知書送付先郵便番号
								paramChildMap.put("tchisho_sohus_pcd", infoMap.get("tchisho_sohus_pcd"));
								// 通知書送付先都道府県名
								paramChildMap.put("tchisho_sohus_state_nm", infoMap.get("tchisho_sohus_state_nm"));
								// 通知書送付先市区町村名
								paramChildMap.put("tchisho_sohus_city_nm", infoMap.get("tchisho_sohus_city_nm"));
								// 通知書送付先大字通称名
								paramChildMap.put("tchisho_sohus_oaztsu_nm", infoMap.get("tchisho_sohus_oaztsu_nm"));
								// 通知書送付先字丁目名
								paramChildMap.put("tchisho_sohus_azcho_nm", infoMap.get("tchisho_sohus_azcho_nm"));
								// 通知書送付先番地号
								paramChildMap.put("tchisho_sohus_bnchigo", infoMap.get("tchisho_sohus_bnchigo"));
								// 通知書送付先住所補記・建物名
								paramChildMap.put("tchisho_sohus_adrttm", infoMap.get("tchisho_sohus_adrttm"));
								// 通知書送付先住所補記・部屋番号
								paramChildMap.put("tchisho_sohus_adrrm", infoMap.get("tchisho_sohus_adrrm"));
								// 通知書送付先電話番号
								paramChildMap.put("tchisho_sohus_telno", infoMap.get("tchisho_sohus_telno"));
								
								// v11.00.00 2014/10/21 Add Start
								// 通知書印刷実施先コード
								paramChildMap.put("tchisho_print_jssi_sk_cd", infoMap.get("tchisho_print_jssi_sk_cd"));
								// v11.00.00 2014/10/21 Add End
								
								// 通知完了済フラグ
								paramChildMap.put("tchi_fin_zm_flg", infoMap.get("tchi_fin_zm_flg"));
								
								if (TCHI_KANRYO_ZUMI_FLG_ZUMI.equals(infoMap.get("tchi_fin_zm_flg")))
								{
									zumiCnt++;
								}
								
								paramList.add(paramChildMap);
							}
						}
					}
					
					// 登録対象のリストと通知完了済の件数が同じならば、登録処理をしない
					if (zumiCnt == paramList.size())
					{
						continue;
					}
					
					if (!paramList.isEmpty())
					{
						HashMap<String, Object> inputMap = new HashMap<String, Object>();
						inputMap.put("trgt_data_list", paramList);
						HashMap<String, Object> dataMap = new HashMap<String, Object>();
						dataMap.put("trgt_data_list", inputMap);
						
						// ユースケースIDを格納
						HashMap<String, Object> paramMap = new HashMap<String, Object>();
						paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0606);

						// サービスの処理結果の格納用MAP
						HashMap<String, Object> outputMap = new HashMap<String, Object>();
						// 通知書登録CCを呼び出す
						JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, dataMap, outputMap);
						
						String returnCode = JCCBatchEsbInterface.getReturnCode(outputMap);
						if(!RETURN_CODE_SUCCESS.equals(returnCode))
						{
							StringBuffer err_msg = new StringBuffer();
							err_msg.append("ステータスコード ：" + returnCode);
							err_msg.append(" サービス契約番号：" + svcKeiNo);
							super.logPrint.printBusinessErrorLog("EKKB0010CW", 
									new String[]{ err_msg.toString() });
// OM#81837 ADD START
							// エラーフラグ設定
							JBSbatBatchInvoker.setErrFlg(true);
// OM#81837 ADD END
						}
					}
				}
			}
			
			// v11.00.00 2014/10/21 Add Start
			HashMap<String, Object> paramChildMap = new HashMap<String, Object>();
			// ++++++ v22.00.00 DEL START +++++++++
//			ArrayList<HashMap<String, Object>> paramList = null;
//			// 抽出済SYSIDリスト
//			ArrayList<String> sysidList = new ArrayList<String>();
//
//			// コントロールブレイク用SYSID（レター同梱用更新ファイルはSYSID毎に出力されている）
//			String sysid = null;
//			String targetSysid = null;
			// ++++++ v22.00.00 DEL END +++++++++
			HashMap<String, Object> targetInfoMap = new HashMap<String, Object>();
			// ++++++ v22.00.00 ADD START +++++++++
			// 抽出済サービス契約番号リスト
			ArrayList<String> letterSvcKeiNoList = new ArrayList<String>();
			// ++++++ v22.00.00 ADD END +++++++++
			
			// レター同梱リストが存在すればすべて登録
			for (int i = 0; i < letterInfoMapList.size(); i++)
			{
				// ++++++ v22.00.00 DEL START +++++++++
//				// 通知書登録CCへのパラメータを作成する
//				paramList = new ArrayList<HashMap<String, Object>>();
//				infoMap = new HashMap<String, Object>();
//				infoMap = letterInfoMapList.get(i);
				// ++++++ v22.00.00 DEL END +++++++++
				
				// SVCKEINO取得
				// ++++++ v22.00.00 MOD START +++++++++
//				sysid = (String)infoMap.get("sysid");
				svcKeiNo = (String)letterInfoMapList.get(i).get("svc_kei_no");
				// ++++++ v22.00.00 MOD END +++++++++
				// SYSIDが出力済みの場合は処理しない
//				if (sysidList.contains(sysid))
//				{
//					continue;
//				}
				// ++++++ v22.00.00 ADD START +++++++++
				if (!letterSvcKeiNoList.contains(svcKeiNo))
				{
					// サービス契約番号を元に、同じ整理番号のサービス契約番号を取得する
					Object[] letterParam = {svcKeiNo, super.opeDate, super.opeDate};
					List<JBSbatCommonDBInterface> letterList = executeKK_T_SVC_KEI_KK_SELECT_188(letterParam);
					JBSbatCommonDBInterface letterInfo = null;
					String targetSvcKeiNo = null;
					
					ArrayList<HashMap<String, Object>> paramList = new ArrayList<HashMap<String, Object>>();
					// 整理番号で取得したサービス契約情報分ループ処理
					for (int k = 0; k < letterList.size(); k++)
					{
						letterInfo = letterList.get(k);
						targetSvcKeiNo = letterInfo.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
				// ++++++ v22.00.00 ADD END +++++++++
						// ファイルに出力されているSVCKEINOを再作成対象とする
						for (int j = 0; j < letterInfoMapList.size(); j++)
						{
							targetInfoMap = letterInfoMapList.get(j);
							// ++++++ v22.00.00 DEL START +++++++++
		//					targetSysid = (String)targetInfoMap.get("sysid");
							// ++++++ v22.00.00 DEL END +++++++++
							// ファイルに出力されているSVCKEINOを再作成対象とする
							// ++++++ v22.00.00 MOD START +++++++++
		//					if (null != targetSysid && !"".equals(targetSysid) 	&& targetSysid.equals(sysid))
							if (null != targetSvcKeiNo 
									&& !"".equals(targetSvcKeiNo) 
									&& targetSvcKeiNo.equals(targetInfoMap.get("svc_kei_no")))
							{
		//						if (!sysidList.contains(targetSysid))
		//						{
		//							sysidList.add(targetSysid);
		//						}
								letterSvcKeiNoList.add(targetSvcKeiNo);
								// ++++++ v22.00.00 MOD END +++++++++
								// 通知書登録CCへのパラメータを作成する
								paramChildMap = new HashMap<String, Object>();
								// サービス契約番号
								// ++++++ v22.00.00 MOD START +++++++++
		//						paramChildMap.put("svc_kei_no", targetInfoMap.get("svc_kei_no"));
								paramChildMap.put("svc_kei_no", targetSvcKeiNo);
								// ++++++ v22.00.00 MOD END +++++++++
								// SYSID
								paramChildMap.put("sysid", targetInfoMap.get("sysid"));
								// 通知書発行コード
								paramChildMap.put("tchisho_hakko_cd", targetInfoMap.get("tchisho_hakko_cd"));
								// 申込明細番号
								paramChildMap.put("mskm_dtl_no", targetInfoMap.get("mskm_dtl_no"));
								// 申込書番号
								paramChildMap.put("mskmsho_no", targetInfoMap.get("mskmsho_no"));
								// 工事案件番号
								paramChildMap.put("kojiak_no", targetInfoMap.get("kojiak_no"));
								// 通知書登録ユーザーID
								paramChildMap.put("tchisho_add_user_id", targetInfoMap.get("tchisho_add_user_id"));
								// 通知書送付先コード
								paramChildMap.put("tchisho_sohus_cd", targetInfoMap.get("tchisho_sohus_cd"));
								// 通知書送付先名
								paramChildMap.put("tchisho_sohus_nm", targetInfoMap.get("tchisho_sohus_nm"));
								// 通知書送付先住所コード
								paramChildMap.put("tchisho_sohus_ad_cd", targetInfoMap.get("tchisho_sohus_ad_cd"));
								// 通知書送付先郵便番号
								paramChildMap.put("tchisho_sohus_pcd", targetInfoMap.get("tchisho_sohus_pcd"));
								// 通知書送付先都道府県名
								paramChildMap.put("tchisho_sohus_state_nm", targetInfoMap.get("tchisho_sohus_state_nm"));
								// 通知書送付先市区町村名
								paramChildMap.put("tchisho_sohus_city_nm", targetInfoMap.get("tchisho_sohus_city_nm"));
								// 通知書送付先大字通称名
								paramChildMap.put("tchisho_sohus_oaztsu_nm", targetInfoMap.get("tchisho_sohus_oaztsu_nm"));
								// 通知書送付先字丁目名
								paramChildMap.put("tchisho_sohus_azcho_nm", targetInfoMap.get("tchisho_sohus_azcho_nm"));
								// 通知書送付先番地号
								paramChildMap.put("tchisho_sohus_bnchigo", targetInfoMap.get("tchisho_sohus_bnchigo"));
								// 通知書送付先住所補記・建物名
								paramChildMap.put("tchisho_sohus_adrttm", targetInfoMap.get("tchisho_sohus_adrttm"));
								// 通知書送付先住所補記・部屋番号
								paramChildMap.put("tchisho_sohus_adrrm", targetInfoMap.get("tchisho_sohus_adrrm"));
								// 通知書送付先電話番号
								paramChildMap.put("tchisho_sohus_telno", targetInfoMap.get("tchisho_sohus_telno"));
								// 通知書印刷実施先コード
								paramChildMap.put("tchisho_print_jssi_sk_cd", targetInfoMap.get("tchisho_print_jssi_sk_cd"));
								// 通知完了済フラグ
								paramChildMap.put("tchi_fin_zm_flg", targetInfoMap.get("tchi_fin_zm_flg"));
								
								paramList.add(paramChildMap);
							}
						}
					// ++++++ v22.00.00 ADD START +++++++++
					}
// IT2-2021-0000020対応 20210607 星野 ADD START
					// 設定の済んだparamListから、申込明細番号の設定されたMapを探して申込明細番号・申込書番号を取得
					String mskmDtlNo = "";
					String mskmshoNo = "";
					for(HashMap<String, Object> childMap : paramList)
					{
						if( !JKKStringUtil.isNullBlank( (String)childMap.get("mskm_dtl_no") ) )
						{
							mskmDtlNo = (String)childMap.get("mskm_dtl_no");
							mskmshoNo = (String)childMap.get("mskmsho_no");
							break;
						}
					}
					
					// 申込明細番号が未設定のMapは先行処理（JBSbatKKIdTchishoDokonDataMake）で作成した既存契約分。
					// 申込明細番号・申込書番号を設定する。
					for(HashMap<String, Object> childMap : paramList)
					{
						if( JKKStringUtil.isNullBlank( (String)childMap.get("mskm_dtl_no") ) )
						{
							childMap.put("mskm_dtl_no", mskmDtlNo);
							childMap.put("mskmsho_no", mskmshoNo);
						}
					}
// IT2-2021-0000020対応 20210607 星野 ADD END
					// ++++++ v22.00.00 ADD END +++++++++
					if (!paramList.isEmpty())
					{
						HashMap<String, Object> inputMap = new HashMap<String, Object>();
						inputMap.put("trgt_data_list", paramList);
						HashMap<String, Object> dataMap = new HashMap<String, Object>();
						dataMap.put("trgt_data_list", inputMap);
						
						// ユースケースIDを格納
						HashMap<String, Object> paramMap = new HashMap<String, Object>();
						paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, USECASE_ID_KKSV0606);
	
						// サービスの処理結果の格納用MAP
						HashMap<String, Object> outputMap = new HashMap<String, Object>();
						// 通知書登録CCを呼び出す
						JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, dataMap, outputMap);
						
						String returnCode = JCCBatchEsbInterface.getReturnCode(outputMap);
						if(!RETURN_CODE_SUCCESS.equals(returnCode))
						{
							StringBuffer err_msg = new StringBuffer();
							err_msg.append("ステータスコード ：" + returnCode);
							err_msg.append(" サービス契約番号：" + svcKeiNo);
							super.logPrint.printBusinessErrorLog("EKKB0010CW", 
									new String[]{ err_msg.toString() });
// OM#81837 ADD START
							// エラーフラグ設定
							JBSbatBatchInvoker.setErrFlg(true);
// OM#81837 ADD END
						}
					}
				}
			// ++++++ v22.00.00 ADD START +++++++++
			}
			// ++++++ v22.00.00 ADD END +++++++++
			// v11.00.00 2014/10/21 Add End
			
			if (file != null)
			{
				file.close();
			}
		}
		catch(IOException ioe)
		{
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EKKB0020CE, new String[]{ioe.getMessage()});
		}
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SVC_KEI.close();
		
		// ANK-4543-00-00 ADD START
		db_KK_T_NTTORS_KEI.close();
		// ANK-4543-00-00 ADD END
		
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（通知書再作成情報抽出ファイル）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-KKIFM220-.TCHISHO_STAT			通知書再作成情報抽出ファイル.通知書ステータス
	 *			 TXT-KKIFM220-.SYSID			通知書再作成情報抽出ファイル.ＳＹＳＩＤ
	 *			 TXT-KKIFM220-.TCHISHO_HAKKO_CD			通知書再作成情報抽出ファイル.通知書発行コード
	 *			 TXT-KKIFM220-.MSKM_DTL_NO			通知書再作成情報抽出ファイル.申込明細番号
	 *			 TXT-KKIFM220-.MSKMSHO_NO			通知書再作成情報抽出ファイル.申込書番号
	 *			 TXT-KKIFM220-.KOJIAK_NO			通知書再作成情報抽出ファイル.工事案件番号
	 *			 TXT-KKIFM220-.TCHISHO_CD			通知書再作成情報抽出ファイル.通知書コード
	 *			 TXT-KKIFM220-.TCHISHO_ADD_USER_ID			通知書再作成情報抽出ファイル.通知書登録ユーザＩＤ
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_CD			通知書再作成情報抽出ファイル.通知書送付先コード
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_NM			通知書再作成情報抽出ファイル.通知書送付先名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_AD_CD			通知書再作成情報抽出ファイル.通知書送付先住所コード
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_PCD			通知書再作成情報抽出ファイル.通知書送付先郵便番号
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_STATE_NM			通知書再作成情報抽出ファイル.通知書送付先都道府県名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_CITY_NM			通知書再作成情報抽出ファイル.通知書送付先市区町村名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_OAZTSU_NM			通知書再作成情報抽出ファイル.通知書送付先大字通称名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_AZCHO_NM			通知書再作成情報抽出ファイル.通知書送付先字丁目名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_BNCHIGO			通知書再作成情報抽出ファイル.通知書送付先番地号
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_ADRTTM			通知書再作成情報抽出ファイル.通知書送付先住所補記・建物名
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_ADRRM			通知書再作成情報抽出ファイル.通知書送付先住所補記・部屋番号
	 *			 TXT-KKIFM220-.TCHISHO_SOHUS_TELNO			通知書再作成情報抽出ファイル.通知書送付先電話番号
	 *			 TXT-KKIFM220-.TCHISHO_PRINT_JSSI_SK_CD			通知書再作成情報抽出ファイル.通知書印刷実施先コード
	 *			 TXT-KKIFM220-.SVC_KEI_NO			通知書再作成情報抽出ファイル.サービス契約番号
	 *			 TXT-KKIFM220-.SVC_KEI_NO			通知書再作成情報抽出ファイル.サービス契約番号
	 *			 TXT-KKIFM220-.TCHI_FIN_ZM_FLG			通知書再作成情報抽出ファイル.通知完了済フラグ
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	@SuppressWarnings("unchecked")
	private boolean isSingleCheckKKIFM220(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 通知書ステータス項目チェック
		strValue = (String)rsMap.get("tchisho_stat");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "3"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_STAT")});
			return false;
		}

		// ＳＹＳＩＤ項目チェック
		strValue = (String)rsMap.get("sysid");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.SYSID")});
			return false;
		}

		// 通知書発行コード項目チェック
		strValue = (String)rsMap.get("tchisho_hakko_cd");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_HAKKO_CD")});
			return false;
		}

		// 申込明細番号項目チェック
		strValue = (String)rsMap.get("mskm_dtl_no");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "12"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.MSKM_DTL_NO")});
			return false;
		}

		// 申込書番号項目チェック
		strValue = (String)rsMap.get("mskmsho_no");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.MSKMSHO_NO")});
			return false;
		}

		// 工事案件番号項目チェック
		strValue = (String)rsMap.get("kojiak_no");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.KOJIAK_NO")});
			return false;
		}

		// 通知書登録ユーザＩＤ項目チェック
		strValue = (String)rsMap.get("tchisho_add_user_id");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_ADD_USER_ID")});
			return false;
		}

		// 通知書送付先コード項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_cd");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_CD")});
			return false;
		}
		
		// 通知書送付先名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_nm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "242"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_NM")});
			return false;
		}

		// 通知書送付先住所コード項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_ad_cd");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_AD_CD")});
			return false;
		}

		// 通知書送付先郵便番号項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_pcd");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "7"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_PCD")});
			return false;
		}

		// 通知書送付先都道府県名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_state_nm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_STATE_NM")});
			return false;
		}

		// 通知書送付先市区町村名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_city_nm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "24"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_CITY_NM")});
			return false;
		}

		// 通知書送付先大字通称名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_oaztsu_nm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "36"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_OAZTSU_NM")});
			return false;
		}

		// 通知書送付先字丁目名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_azcho_nm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "24"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_AZCHO_NM")});
			return false;
		}

		// 通知書送付先番地号項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_bnchigo");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "122"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_BNCHIGO")});
			return false;
		}

		// 通知書送付先住所補記・建物名項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_adrttm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "90"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_ADRTTM")});
			return false;
		}

		// 通知書送付先住所補記・部屋番号項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_adrrm");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "30"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_ADRRM")});
			return false;
		}

		// 通知書送付先電話番号項目チェック
		strValue = (String)rsMap.get("tchisho_sohus_telno");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_SOHUS_TELNO")});
			return false;
		}

		// 通知書印刷実施先コード項目チェック
		strValue = (String)rsMap.get("tchisho_print_jssi_sk_cd");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHISHO_PRINT_JSSI_SK_CD")});
			return false;
		}

		// サービス契約番号項目チェック
		strValue = (String)rsMap.get("svc_kei_no");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0060TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.SVC_KEI_NO")});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.SVC_KEI_NO")});
			return false;
		}

		// 通知完了済フラグ項目チェック
		strValue = (String)rsMap.get("tchi_fin_zm_flg");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EKKB0070TE", new String[]{
															(String)itemvalueMap.get("TXT-KKIFM220-.TCHI_FIN_ZM_FLG")});
			return false;
		}

		return true;
	}

	/**
	 * SQLKEY(KK_SELECT_188)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	予約適用年月日
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return list 取得結果リスト
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private List<JBSbatCommonDBInterface> executeKK_T_SVC_KEI_KK_SELECT_188(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_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_KK_SELECT_188);
		
		List<JBSbatCommonDBInterface> list = new ArrayList<JBSbatCommonDBInterface>();
		JBSbatCommonDBInterface resultInfo = db_KK_T_SVC_KEI.selectNext();

		while (null != resultInfo)
		{
			list.add(resultInfo);
			resultInfo = db_KK_T_SVC_KEI.selectNext();
		}

		return list;
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * エラーメッセージに関する項目値を格納された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> itemvalueMap = new HashMap<String, String>();
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_STAT", "通知書再作成情報抽出ファイル.通知書ステータス");
		itemvalueMap.put("TXT-KKIFM220-.SYSID", "通知書再作成情報抽出ファイル.ＳＹＳＩＤ");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_HAKKO_CD", "通知書再作成情報抽出ファイル.通知書発行コード");
		itemvalueMap.put("TXT-KKIFM220-.MSKM_DTL_NO", "通知書再作成情報抽出ファイル.申込明細番号");
		itemvalueMap.put("TXT-KKIFM220-.MSKMSHO_NO", "通知書再作成情報抽出ファイル.申込書番号");
		itemvalueMap.put("TXT-KKIFM220-.KOJIAK_NO", "通知書再作成情報抽出ファイル.工事案件番号");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_CD", "通知書再作成情報抽出ファイル.通知書コード");		
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_ADD_USER_ID", "通知書再作成情報抽出ファイル.通知書登録ユーザＩＤ");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_CD", "通知書再作成情報抽出ファイル.通知書送付先コード");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_AD_CD", "通知書再作成情報抽出ファイル.通知書送付先住所コード");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_PCD", "通知書再作成情報抽出ファイル.通知書送付先郵便番号");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_STATE_NM", "通知書再作成情報抽出ファイル.通知書送付先都道府県名");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_CITY_NM", "通知書再作成情報抽出ファイル.通知書送付先市区町村名");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_OAZTSU_NM", "通知書再作成情報抽出ファイル.通知書送付先大字通称名");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_AZCHO_NM", "通知書再作成情報抽出ファイル.通知書送付先字丁目名");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_BNCHIGO", "通知書再作成情報抽出ファイル.通知書送付先番地号");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_ADRTTM", "通知書再作成情報抽出ファイル.通知書送付先住所補記・建物名");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_ADRRM", "通知書再作成情報抽出ファイル.通知書送付先住所補記・部屋番号");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_SOHUS_TELNO", "通知書再作成情報抽出ファイル.通知書送付先電話番号");
		itemvalueMap.put("TXT-KKIFM220-.TCHISHO_PRINT_JSSI_SK_CD", "通知書再作成情報抽出ファイル.通知書印刷実施先コード");
		itemvalueMap.put("TXT-KKIFM220-.SVC_KEI_NO", "通知書再作成情報抽出ファイル.サービス契約番号");
		itemvalueMap.put("TXT-KKIFM220-.SVC_KEI_NO", "通知書再作成情報抽出ファイル.サービス契約番号");
		itemvalueMap.put("TXT-KKIFM220-.TCHI_FIN_ZM_FLG", "通知書再作成情報抽出ファイル.通知完了済フラグ");

		return itemvalueMap;
	}
	
	//ANK-4543-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_001)でDBアクセスを行います。<br>
	 * * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_NTTORS_KEI_KK_SELECT_001(Object[] param)  throws Exception {
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_NTTORS_KEI.selectBySqlDefine(paramList, KK_T_NTTORS_KEI_KK_SELECT_001);
	}

	/**
	 * <BR>
	 * NTT卸にサービス契約番号が存在するかのチェック処理。<BR>
	 * <BR>
	 * @param svcKeiNo
	 * @return
	 * @throws Exception
	 */
	private boolean hasNTTRecord(String svcKeiNo) throws Exception {
		Object[] setParamNTT = { svcKeiNo};
		executeKK_T_NTTORS_KEI_KK_SELECT_001(setParamNTT);
		JBSbatCommonDBInterface resultNTT = db_KK_T_NTTORS_KEI.selectNext();
		return resultNTT != null ? true : false;
	}
	//ANK-4543-00-00 ADD END

}
