/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatZMSakseiAdAreacd
*	ソースファイル名	：JBSbatZMSakseiAdAreacd.java
*	作成者				：富士通　
*	作成日				：2011年09月16日
*＜機能概要＞
*　住所−市外局番マスタデータファイル作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v2.00.00	2011/09/16	FJ）荒田	新規作成
*   v4.00.00	2012/11/14	FJ) 伊藤	【TAI-2012-0000140】品質強化対策
*	v4.01.00	2013/01/08  FJ）日野	【TAI-2012-0000142】バッチ異常終了時のメッセージについて【優先度A】
*********************************************************************/
package eo.business.service;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.model.common.check.LengthCheck;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatZMFileReaderUtil;
import eo.business.common.JZMBatCommon;
import eo.business.common.JZMBatConst;
import eo.business.util.file.JBSbatZMIFM008;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.util.JBSbatBusinessFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.util.JBSbatCheckUtil;

/**
* 住所−市外局番マスタデータファイル作成処理クラスです。 <p>
*<BR>
* @author 富士通
*/
public class JBSbatZMSakseiAdAreacd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(局番)*/
	private static final String D_TBL_NAME_ZM_M_KYOKU_NO = "ZM_M_KYOKU_NO";

	/** SQL定義キー(ZM_SELECT_001)*/
	private static final String ZM_M_KYOKU_NO_ZM_SELECT_001 = "ZM_SELECT_001";

	/** テーブルアクセスクラス(局番)*/
	private JBSbatSQLAccess db_ZM_M_KYOKU_NO = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/* ++++++++++ v1.00.00 追加開始 ++++++++++ */

	/** 局番 */
	private static final String KYOKU_NO = "KYOKU_NO";

	/** 市外局番 */
	private static final String AREACD = "AREACD";

	/** メッセージ置換文字取得Key：住所コード */
	private static final String KEY_AD_CD = "TXT-ZMIFM008-.AD_CD";

	/** メッセージ置換文字取得Key：市外局番 */
	private static final String KEY_AREACD = "TXT-ZMIFM008-.AREACD";

	/** メッセージ置換文字取得Key：番号区画コード */
	private static final String KEY_NO_KUKAKU_CD = "TXT-ZMIFM008-.NO_KUKAKU_CD";

	/** メッセージ置換文字取得Key：警察通報可否 */
	private static final String KEY_POLI_TSUHO_KH = "TXT-ZMIFM008-.POLI_TSUHO_KH";

	/** メッセージ置換文字取得Key：消防通報可否 */
	private static final String KEY_SHOBO_TSUHO_KH = "TXT-ZMIFM008-.SHOBO_TSUHO_KH";

	/** メッセージ置換文字取得Key：申込事業所名 */
	private static final String KEY_MSKM_JIGSHONM = "TXT-ZMIFM008-.MSKM_JIGSHONM";

	/** メッセージ置換文字取得Key：担当者電話番号 */
	private static final String KEY_TNTSHA_TELNO = "TXT-ZMIFM008-.TNTSHA_TELNO";

	/** メッセージ置換文字取得Key：担当者ＦＡＸ番号 */
	private static final String KEY_TNTSHA_FAX_NO = "TXT-ZMIFM008-.TNTSHA_FAX_NO";

	/** メッセージ置換文字取得Key：地域コード */
	private static final String KEY_CKI_CD = "TXT-ZMIFM008-.CKI_CD";

	/** メッセージ置換文字取得Key：天気予報グループＩＤ */
	private static final String KEY_TENKI_YOHO_GRP_ID = "TXT-ZMIFM008-.TENKI_YOHO_GRP_ID";

	/** メッセージ置換文字取得Key：住所対象番号区画適用開始年月日 */
	private static final String KEY_AD_TG_NO_KUKAKU_TSTAYMD = "TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD";

	/** メッセージ置換文字取得Key：住所対象番号区画適用終了年月日 */
	private static final String KEY_AD_TG_NO_KUKAKU_TENDYMD = "TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD";

	/** メッセージ置換文字取得Key：予約適用年月日 */
	private static final String KEY_RSV_APLY_YMD = "TXT-ZMIFM008-.RSV_APLY_YMD";

	/** メッセージ置換文字取得Key：更新年月日時分秒 */
	private static final String KEY_UPD_DTM = "TXT-ZMIFM008-.UPD_DTM";

	/** メッセージ置換文字取得Key：更新オペレータアカウント */
	private static final String KEY_UPD_OPEACNT = "TXT-ZMIFM008-.UPD_OPEACNT";

	/** メッセージ置換文字取得Key：登録年月日時分秒 */
	private static final String KEY_ADD_DTM = "TXT-ZMIFM008-.ADD_DTM";

	/** メッセージ置換文字取得Key：登録オペレータアカウント */
	private static final String KEY_ADD_OPEACNT = "TXT-ZMIFM008-.ADD_OPEACNT";

	/** メッセージ置換文字取得Key：発番順位 */
	private static final String KEY_HTB_JUN = "TXT-ZMIFM008-.HTB_JUN";

	/** メッセージ置換文字：住所コード */
	private static final String MSG_AD_CD = "有効レコード住所対象番号区画データファイル.住所コード";

	/** メッセージ置換文字：市外局番 */
	private static final String MSG_AREACD = "有効レコード住所対象番号区画データファイル.市外局番";

	/** メッセージ置換文字：番号区画コード */
	private static final String MSG_NO_KUKAKU_CD = "有効レコード住所対象番号区画データファイル.番号区画コード";

	/** メッセージ置換文字：警察通報可否 */
	private static final String MSG_POLI_TSUHO_KH = "有効レコード住所対象番号区画データファイル.警察通報可否";

	/** メッセージ置換文字：消防通報可否 */
	private static final String MSG_SHOBO_TSUHO_KH = "有効レコード住所対象番号区画データファイル.消防通報可否";

	/** メッセージ置換文字：申込事業所名 */
	private static final String MSG_MSKM_JIGSHONM = "有効レコード住所対象番号区画データファイル.申込事業所名";

	/** メッセージ置換文字：担当者電話番号 */
	private static final String MSG_TNTSHA_TELNO = "有効レコード住所対象番号区画データファイル.担当者電話番号";

	/** メッセージ置換文字：担当者ＦＡＸ番号 */
	private static final String MSG_TNTSHA_FAX_NO = "有効レコード住所対象番号区画データファイル.担当者ＦＡＸ番号";

	/** メッセージ置換文字：地域コード */
	private static final String MSG_CKI_CD = "有効レコード住所対象番号区画データファイル.地域コード";

	/** メッセージ置換文字：天気予報グループＩＤ */
	private static final String MSG_TENKI_YOHO_GRP_ID = "有効レコード住所対象番号区画データファイル.天気予報グループＩＤ";

	/** メッセージ置換文字：住所対象番号区画適用開始年月日 */
	private static final String MSG_AD_TG_NO_KUKAKU_TSTAYMD = "有効レコード住所対象番号区画データファイル.住所対象番号区画適用開始年月日";

	/** メッセージ置換文字：住所対象番号区画適用終了年月日 */
	private static final String MSG_AD_TG_NO_KUKAKU_TENDYMD = "有効レコード住所対象番号区画データファイル.住所対象番号区画適用終了年月日";

	/** メッセージ置換文字：予約適用年月日 */
	private static final String MSG_RSV_APLY_YMD = "有効レコード住所対象番号区画データファイル.予約適用年月日";

	/** メッセージ置換文字：更新年月日時分秒 */
	private static final String MSG_UPD_DTM = "有効レコード住所対象番号区画データファイル.更新年月日時分秒";

	/** メッセージ置換文字：更新オペレータアカウント */
	private static final String MSG_UPD_OPEACNT = "有効レコード住所対象番号区画データファイル.更新オペレータアカウント";

	/** メッセージ置換文字：登録年月日時分秒 */
	private static final String MSG_ADD_DTM = "有効レコード住所対象番号区画データファイル.登録年月日時分秒";

	/** メッセージ置換文字：登録オペレータアカウント */
	private static final String MSG_ADD_OPEACNT = "有効レコード住所対象番号区画データファイル.登録オペレータアカウント";

	/** メッセージ置換文字：発番順位 */
	private static final String MSG_HTB_JUN = "有効レコード住所対象番号区画データファイル.発番順位";

	/** 番ポNTT受付場所名の設定値(40byte) */
	private static final String BNPNTT_UKTKBSHO_VALUE = "****************************************";

	/** 番ポ工事NTT電話番号系の設定値(14byte) */
	private static final String BNPKUJNTT_TEL_VALUE = "**************";

	/** 番ポ工事箇所の設定値(60byte) */
	private static final String BNP_KUJ_KSHO_VALUE = "************************************************************";

	/** 入力ファイルパス */
	private String inFullPath = null;

	/** ファイル出力制御クラス */
	private JBSbatBusinessFileUtil outputFile = null;

	/** 有効レコード住所対象番号区画データファイル名称 */
	private static final String FILE_NM_ZMIFM008 = "ZMIFM008001";

	/** 市外局番　バイト数 */
	private static final Integer AREACD_BYTE = 6;

	/** 番号区画コード　バイト数 */
	private static final Integer NO_KUKAKU_CD_BYTE = 6;

	/** プログラムＩＤ　バイト数 */
	private static final Integer PRGRM_ID_BYTE = 8;

	/** レコード処理オペレータアカウント　バイト数 */
	private static final Integer RKD_OPEACNT_BYTE = 7;

	/** ハイフン編集用リスト */
	private List<HashMap<Object, String>> editList = null;
	
	/** メッセージ置換文字：KEY　住所コード */
	private static final String MSG_KEY_AD_CD = "住所コード";
	
	/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_ZM_M_KYOKU_NO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_KYOKU_NO);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
		
		executeZM_M_KYOKU_NO_ZM_SELECT_001(null);
		
		// SELECTされたデータのList取得
		editList = getSelectedDataList(db_ZM_M_KYOKU_NO);
		
		// プロパティーファイルチェック
		// 有効レコード住所対象番号区画データファイルパス取得
		String inPath = JZMBatCommon.getMidDir();
		
		super.logPrint.printDebugLog("有効レコード住所対象番号区画データファイルパス:" + inPath);
		
		inFullPath = new StringBuffer(inPath).append(FILE_NM_ZMIFM008).append(JZMBatConst.CSV).toString();
		
		// ファイル出力パス取得
		String outPath = JZMBatCommon.getGaibuSendDir(JZMBatConst.ZMIFE031_DIR);
		
		super.logPrint.printDebugLog("住所−市外局番マスタデータファイルパス:" + outPath);
		
		// 住所−市外局番マスタデータファイルの出力パスを設定する。
		StringBuffer outputFilePath = new StringBuffer();
		outputFilePath.append(outPath).append(JZMBatConst.ZMIFE031).append(JZMBatConst.CSV);
		
		// ファイル出力制御クラス生成する。
		outputFile = JZMBatCommon.createBusinessFileUtil(outputFilePath.toString(),
				JZMBatConst.SJIS,
				JZMBatConst.LF,
				JZMBatConst.CONMA);
		
		/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
		
		// 単項目チェックを呼び出す。
		callSingleCheck();

		ArrayList<String> inList = new ArrayList<String>();
		ArrayList<String> nextInList = new ArrayList<String>();

		String adCd = null;
		String noKukakuCd = null;
		String tstaymd = null;
		String tendymd = null;
		String addDtm = null;
		String addOpeacnt = null;
		String poliTsuhoKh = null;
		String shoboTsuhoKh = null;
		String mskmJigsho = null;
		String updDtm = null;
		String updOpeacnt = null;
		String tntshaTelno = null;
		String tntshaFaxNo = null;
		String nextAdCd = null;
		String nextTstaymd = null;
		String nextRsvAplyYmd = null;
		String nextNoKukakuCd = null;
		
		JBSbatZMFileReaderUtil inFile = new JBSbatZMFileReaderUtil(inFullPath);
		
		try
		{
			inList = inFile.convEscapeStringToList();
			
			while(inList != null)
			{
				
				nextInList = inFile.convEscapeStringToList();
				
				adCd = inList.get(0);
				noKukakuCd = inList.get(2);
				tstaymd = inList.get(10);
				tendymd = inList.get(11);
				poliTsuhoKh = inList.get(3);
				shoboTsuhoKh = inList.get(4);
				mskmJigsho = inList.get(5);
				addDtm = inList.get(15);
				addOpeacnt = inList.get(16);
				updDtm = inList.get(13);
				updOpeacnt = inList.get(14);
				tntshaTelno = inList.get(6);
				tntshaFaxNo = inList.get(7);
				
				// 適用終了年月日の設定
				if (nextInList != null)
				{
					nextAdCd = nextInList.get(0);
					nextNoKukakuCd = nextInList.get(2);
					nextTstaymd = nextInList.get(10);
					nextRsvAplyYmd = nextInList.get(12);
					tendymd = getOutAdTendymd(adCd, nextAdCd, tstaymd, nextTstaymd,
							noKukakuCd, nextNoKukakuCd, tendymd, nextRsvAplyYmd);
				}
				else
				{
					tendymd = getOutAdTendymd(tendymd);
				}
				
				// 警察通報不可フラグ設定
				poliTsuhoKh = invertKh(poliTsuhoKh);
				
				// 消防通報不可フラグ設定
				shoboTsuhoKh = invertKh(shoboTsuhoKh);
				
				// 番ポNTT受付場所名設定
				if(mskmJigsho == null || JZMBatConst.BLANK.equals(mskmJigsho))
				{
					mskmJigsho = BNPNTT_UKTKBSHO_VALUE;
				}
				else
				{
					mskmJigsho = JZMBatCommon.subStringKami(mskmJigsho, 20);
				}
				
				// 番ポ受付NTT電話番号設定
				if(tntshaTelno == null || JZMBatConst.BLANK.equals(tntshaTelno))
				{
					tntshaTelno = BNPKUJNTT_TEL_VALUE;
				}
				else
				{
					tntshaTelno = JZMBatCommon.editTargetNo(editList, tntshaTelno);
				}
				
				// 番ポ受付NTTFAX番号設定
				if(tntshaFaxNo == null || JZMBatConst.BLANK.equals(tntshaFaxNo))
				{
					tntshaFaxNo = BNPKUJNTT_TEL_VALUE;
				}
				else
				{
					tntshaFaxNo = JZMBatCommon.editTargetNo(editList, tntshaFaxNo);
				}
				
				// データ格納用List
				ArrayList<String> outList = new ArrayList<String>();
				
				// データを格納
				addList(adCd, outList);
				addList(padSpace(inList.get(1), AREACD_BYTE), outList);
				addList(padSpace(inList.get(2), NO_KUKAKU_CD_BYTE), outList);
				addList(poliTsuhoKh, outList);
				addList(shoboTsuhoKh, outList);
				addList(mskmJigsho, outList);
				addList(tntshaTelno, outList);
				addList(tntshaFaxNo, outList);
				addList(BNPKUJNTT_TEL_VALUE, outList);
				addList(BNPKUJNTT_TEL_VALUE, outList);
				addList(BNP_KUJ_KSHO_VALUE, outList);
				addList(inList.get(8), outList);
				addList(inList.get(9), outList);
				addList(inList.get(12), outList);
				addList(tendymd, outList);
				addList(padSpace(JZMBatCommon.subStringKami(updOpeacnt, 8), PRGRM_ID_BYTE), outList);
				addList(JZMBatCommon.subStringKami(updDtm, 14), outList);
				addList(JZMBatCommon.subStringKami(updDtm, 8), outList);
				addList(padSpace(JZMBatCommon.subStringKami(updOpeacnt, 7), RKD_OPEACNT_BYTE), outList);
				addList(padSpace(JZMBatCommon.subStringKami(addOpeacnt, 8), PRGRM_ID_BYTE), outList);
				addList(JZMBatCommon.subStringKami(addDtm, 14), outList);
				addList(JZMBatCommon.subStringKami(addDtm, 8), outList);
				addList(padSpace(JZMBatCommon.subStringKami(addOpeacnt, 7), RKD_OPEACNT_BYTE), outList);
				addList(inList.get(17), outList);
				
				// 住所マスタデータファイル出力
				JZMBatCommon.printBusinessFileUtil(outputFile, outList);
				
				inList = nextInList;
			}
		}
		finally
		{
			
			// ファイルのクローズ処理をする。
			inFile.close();
			JZMBatCommon.closeBusinessFileUtil(outputFile);
		}
		
		super.logPrint.printDebugLog("正常終了");

		return null;

		
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 文字列が指定サイズに満たない場合、後ろに半角スペースを付加します。
	 * @param String key 文字列
	 * @param Integer charSize 指定サイズ
	 * @return String 編集後の文字列
	 * @throws UnsupportedEncodingException
	 */
	private String padSpace(String key, Integer charSize) throws UnsupportedEncodingException
	{
		return JZMBatCommon.adjustCharSize(key, charSize, JZMBatConst.SJIS);
	}

	/**
	 * 文字列を囲い文字("")で囲いリストに加えます。
	 * @param String key 文字列
	 * @param ArrayList<String> outList データ格納用リスト
	 * @throws Exception
	 */
	private void addList(String key, ArrayList<String> outList)
	{
		outList.add(JZMBatCommon.addDoubleQuot(key));
	}

	/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_ZM_M_KYOKU_NO.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 *入力情報（有効レコード住所対象番号区画データファイル）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-ZMIFM008-.AD_CD			有効レコード住所対象番号区画データファイル.住所コード
	 *			 TXT-ZMIFM008-.AD_CD			有効レコード住所対象番号区画データファイル.住所コード
	 *			 TXT-ZMIFM008-.AD_CD			有効レコード住所対象番号区画データファイル.住所コード
	 *			 TXT-ZMIFM008-.AREACD			有効レコード住所対象番号区画データファイル.市外局番
	 *			 TXT-ZMIFM008-.AREACD			有効レコード住所対象番号区画データファイル.市外局番
	 *			 TXT-ZMIFM008-.AREACD			有効レコード住所対象番号区画データファイル.市外局番
	 *			 TXT-ZMIFM008-.NO_KUKAKU_CD			有効レコード住所対象番号区画データファイル.番号区画コード
	 *			 TXT-ZMIFM008-.NO_KUKAKU_CD			有効レコード住所対象番号区画データファイル.番号区画コード
	 *			 TXT-ZMIFM008-.NO_KUKAKU_CD			有効レコード住所対象番号区画データファイル.番号区画コード
	 *			 TXT-ZMIFM008-.POLI_TSUHO_KH			有効レコード住所対象番号区画データファイル.警察通報可否
	 *			 TXT-ZMIFM008-.POLI_TSUHO_KH			有効レコード住所対象番号区画データファイル.警察通報可否
	 *			 TXT-ZMIFM008-.POLI_TSUHO_KH			有効レコード住所対象番号区画データファイル.警察通報可否
	 *			 TXT-ZMIFM008-.SHOBO_TSUHO_KH			有効レコード住所対象番号区画データファイル.消防通報可否
	 *			 TXT-ZMIFM008-.SHOBO_TSUHO_KH			有効レコード住所対象番号区画データファイル.消防通報可否
	 *			 TXT-ZMIFM008-.SHOBO_TSUHO_KH			有効レコード住所対象番号区画データファイル.消防通報可否
	 *			 TXT-ZMIFM008-.MSKM_JIGSHONM			有効レコード住所対象番号区画データファイル.申込事業所名
	 *			 TXT-ZMIFM008-.MSKM_JIGSHONM			有効レコード住所対象番号区画データファイル.申込事業所名
	 *			 TXT-ZMIFM008-.TNTSHA_TELNO			有効レコード住所対象番号区画データファイル.担当者電話番号
	 *			 TXT-ZMIFM008-.TNTSHA_TELNO			有効レコード住所対象番号区画データファイル.担当者電話番号
	 *			 TXT-ZMIFM008-.TNTSHA_FAX_NO			有効レコード住所対象番号区画データファイル.担当者ＦＡＸ番号
	 *			 TXT-ZMIFM008-.TNTSHA_FAX_NO			有効レコード住所対象番号区画データファイル.担当者ＦＡＸ番号
	 *			 TXT-ZMIFM008-.CKI_CD			有効レコード住所対象番号区画データファイル.地域コード
	 *			 TXT-ZMIFM008-.CKI_CD			有効レコード住所対象番号区画データファイル.地域コード
	 *			 TXT-ZMIFM008-.CKI_CD			有効レコード住所対象番号区画データファイル.地域コード
	 *			 TXT-ZMIFM008-.TENKI_YOHO_GRP_ID			有効レコード住所対象番号区画データファイル.天気予報グループＩＤ
	 *			 TXT-ZMIFM008-.TENKI_YOHO_GRP_ID			有効レコード住所対象番号区画データファイル.天気予報グループＩＤ
	 *			 TXT-ZMIFM008-.TENKI_YOHO_GRP_ID			有効レコード住所対象番号区画データファイル.天気予報グループＩＤ
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用開始年月日
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用開始年月日
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用開始年月日
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用終了年月日
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用終了年月日
	 *			 TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD			有効レコード住所対象番号区画データファイル.住所対象番号区画適用終了年月日
	 *			 TXT-ZMIFM008-.RSV_APLY_YMD			有効レコード住所対象番号区画データファイル.予約適用年月日
	 *			 TXT-ZMIFM008-.RSV_APLY_YMD			有効レコード住所対象番号区画データファイル.予約適用年月日
	 *			 TXT-ZMIFM008-.RSV_APLY_YMD			有効レコード住所対象番号区画データファイル.予約適用年月日
	 *			 TXT-ZMIFM008-.UPD_DTM			有効レコード住所対象番号区画データファイル.更新年月日時分秒
	 *			 TXT-ZMIFM008-.UPD_DTM			有効レコード住所対象番号区画データファイル.更新年月日時分秒
	 *			 TXT-ZMIFM008-.UPD_DTM			有効レコード住所対象番号区画データファイル.更新年月日時分秒
	 *			 TXT-ZMIFM008-.UPD_OPEACNT			有効レコード住所対象番号区画データファイル.更新オペレータアカウント
	 *			 TXT-ZMIFM008-.UPD_OPEACNT			有効レコード住所対象番号区画データファイル.更新オペレータアカウント
	 *			 TXT-ZMIFM008-.UPD_OPEACNT			有効レコード住所対象番号区画データファイル.更新オペレータアカウント
	 *			 TXT-ZMIFM008-.ADD_DTM			有効レコード住所対象番号区画データファイル.登録年月日時分秒
	 *			 TXT-ZMIFM008-.ADD_DTM			有効レコード住所対象番号区画データファイル.登録年月日時分秒
	 *			 TXT-ZMIFM008-.ADD_DTM			有効レコード住所対象番号区画データファイル.登録年月日時分秒
	 *			 TXT-ZMIFM008-.ADD_OPEACNT			有効レコード住所対象番号区画データファイル.登録オペレータアカウント
	 *			 TXT-ZMIFM008-.ADD_OPEACNT			有効レコード住所対象番号区画データファイル.登録オペレータアカウント
	 *			 TXT-ZMIFM008-.ADD_OPEACNT			有効レコード住所対象番号区画データファイル.登録オペレータアカウント
	 *			 TXT-ZMIFM008-.HTB_JUN			有効レコード住所対象番号区画データファイル.発番順位
	 *			 TXT-ZMIFM008-.HTB_JUN			有効レコード住所対象番号区画データファイル.発番順位
	 *			 TXT-ZMIFM008-.HTB_JUN			有効レコード住所対象番号区画データファイル.発番順位
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckZMIFM008(HashMap<String, String> rsMap, HashMap<String, String> itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// 住所コード項目チェック
		strValue = (String)rsMap.get("AD_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_CD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_CD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_CD"), rsMap)});
			return false;
		}

		// 市外局番項目チェック
		strValue = (String)rsMap.get("AREACD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AREACD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "6"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AREACD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AREACD"), rsMap)});
			return false;
		}

		// 番号区画コード項目チェック
		strValue = (String)rsMap.get("NO_KUKAKU_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.NO_KUKAKU_CD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "6"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.NO_KUKAKU_CD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.NO_KUKAKU_CD"), rsMap)});
			return false;
		}

		// 警察通報可否項目チェック
		strValue = (String)rsMap.get("POLI_TSUHO_KH");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.POLI_TSUHO_KH"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.POLI_TSUHO_KH"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.POLI_TSUHO_KH"), rsMap)});
			return false;
		}

		// 消防通報可否項目チェック
		strValue = (String)rsMap.get("SHOBO_TSUHO_KH");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.SHOBO_TSUHO_KH"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.SHOBO_TSUHO_KH"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.SHOBO_TSUHO_KH"), rsMap)});
			return false;
		}

		// 申込事業所名項目チェック
		strValue = (String)rsMap.get("MSKM_JIGSHONM");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "121"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.MSKM_JIGSHONM"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"name_address"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.MSKM_JIGSHONM"), rsMap)});
			return false;
		}

		// 担当者電話番号項目チェック
		strValue = (String)rsMap.get("TNTSHA_TELNO");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TNTSHA_TELNO"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TNTSHA_TELNO"), rsMap)});
			return false;
		}

		// 担当者ＦＡＸ番号項目チェック
		strValue = (String)rsMap.get("TNTSHA_FAX_NO");
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "11"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TNTSHA_FAX_NO"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"tel2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TNTSHA_FAX_NO"), rsMap)});
			return false;
		}

		// 地域コード項目チェック
		strValue = (String)rsMap.get("CKI_CD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.CKI_CD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "4"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.CKI_CD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.CKI_CD"), rsMap)});
			return false;
		}

		// 天気予報グループＩＤ項目チェック
		strValue = (String)rsMap.get("TENKI_YOHO_GRP_ID");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TENKI_YOHO_GRP_ID"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "4"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TENKI_YOHO_GRP_ID"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.TENKI_YOHO_GRP_ID"), rsMap)});
			return false;
		}

		// 住所対象番号区画適用開始年月日項目チェック
		strValue = (String)rsMap.get("AD_TG_NO_KUKAKU_TSTAYMD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TSTAYMD"), rsMap)});
			return false;
		}

		// 住所対象番号区画適用終了年月日項目チェック
		strValue = (String)rsMap.get("AD_TG_NO_KUKAKU_TENDYMD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.AD_TG_NO_KUKAKU_TENDYMD"), rsMap)});
			return false;
		}

		// 予約適用年月日項目チェック
		strValue = (String)rsMap.get("RSV_APLY_YMD");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.RSV_APLY_YMD"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "8"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.RSV_APLY_YMD"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"year_month_day1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.RSV_APLY_YMD"), rsMap)});
			return false;
		}

		// 更新年月日時分秒項目チェック
		strValue = (String)rsMap.get("UPD_DTM");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_DTM"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "17"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_DTM"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"day_hour1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_DTM"), rsMap)});
			return false;
		}

		// 更新オペレータアカウント項目チェック
		strValue = (String)rsMap.get("UPD_OPEACNT");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_OPEACNT"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_OPEACNT"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.UPD_OPEACNT"), rsMap)});
			return false;
		}

		// 登録年月日時分秒項目チェック
		strValue = (String)rsMap.get("ADD_DTM");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_DTM"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "17"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_DTM"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"day_hour1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_DTM"), rsMap)});
			return false;
		}

		// 登録オペレータアカウント項目チェック
		strValue = (String)rsMap.get("ADD_OPEACNT");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_OPEACNT"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "10"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_OPEACNT"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.ADD_OPEACNT"), rsMap)});
			return false;
		}

		// 発番順位項目チェック
		strValue = (String)rsMap.get("HTB_JUN");
		// 必須チェック
		if(strValue == null || "".equals(strValue))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0030TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.HTB_JUN"), rsMap)});
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "0", "2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0050TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.HTB_JUN"), rsMap)});
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"long1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZMB0040TW", new String[]{
					createErrMsg((String)itemvalueMap.get("TXT-ZMIFM008-.HTB_JUN"), rsMap)});
			return false;
		}

		return true;
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	

	/* ++++++++++ v1.00.00 追加開始 ++++++++++ */
	
	/**
	 * SELECTされたデータのListを取得します。
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.JBSbatSQLAccessオブジェクトのselectNext()で1行分のデータを取得します。<br>
	 *
	 * 2.データが存在する場合、戻り値のListに追加します。<br>
	 * 
	 * ※ 1,2を繰り返して結果を返します。データが無ければnullを返します。<br>
	 * </pre>
	 * <p>
	 * @param tableObject JBSbatSQLAccessオブジェクト
	 * @return 取得結果データのList<HashMap<Object, String>>
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private List<HashMap<Object, String>> getSelectedDataList(JBSbatSQLAccess tableObject)  throws Exception
	{
		
		// 戻り値のList
		List<HashMap<Object, String>> selectedDataList = new ArrayList<HashMap<Object, String>>();
		
		// 引数チェック
		if (tableObject != null)
		{
			
			// データ1行の取得
			JBSbatCommonDBInterface selectedData = tableObject.selectNext();
			while (selectedData != null)
			{
				
				if(selectedData.getString(KYOKU_NO) != null && selectedData.getString(AREACD) != null)
				{
					HashMap<Object, String> dateMap = new HashMap<Object, String>();
					
					// HashMapに設定
					dateMap.put(KYOKU_NO, selectedData.getString(KYOKU_NO));
					dateMap.put(AREACD, selectedData.getString(AREACD));
					
					selectedDataList.add(dateMap);
				}
				
				// データ1行の取得
				selectedData = tableObject.selectNext();
			}
		}
		
		return selectedDataList.size() == 0 ? null : selectedDataList;
	}
	
	/**
	 * 単項目チェック呼び出し処理
	 * @throws Exception 例外
	 */
	private void callSingleCheck() throws Exception
	{
		HashMap<String, String> itemvalueMap = getItemvalueMap();
		HashMap<String, String> rsMap = new HashMap<String, String>();
		ArrayList<String> inList = new ArrayList<String>();
		JBSbatZMFileReaderUtil inFile = new JBSbatZMFileReaderUtil(inFullPath);
		
		try
		{
			while(inFile.ready())
			{
				inList = inFile.convEscapeStringToList();
				rsMap = getRsMap(inList);
				
				if(!isSingleCheckZMIFM008(rsMap, itemvalueMap) || !isGyomuCheck(rsMap, itemvalueMap))
				{
					
					// 単項目チェックでエラーが発生した場合、処理を終了する。
					throw new JBSbatBusinessException(JPCBatchMessageConstant.EZMB0060CW);
				}
			}
		}
		finally
		{
			inFile.close();
		}
	}
	
	/**
	 * 業務チェック処理
	 * 
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isGyomuCheck(HashMap<String, String> rsMap, HashMap<String, String> itemvalueMap)
	{
		
		// 業務チェックを行います
		String strValue = null;
		
		// 桁数チェック
		// 住所コード
		strValue = (String)rsMap.get(JBSbatZMIFM008.AD_CD);
		if(!LengthCheck.isLength1Check(strValue, 11))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EZMB0050TW,
					new String[]{createErrMsg((String)itemvalueMap.get(KEY_AD_CD), rsMap)});
			
			return false;
		}

		// 登録オペレータアカウント
		strValue = (String)rsMap.get(JBSbatZMIFM008.ADD_OPEACNT);
		if(!LengthCheck.isLength2Check(strValue, 6, 10))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EZMB0050TW,
					new String[]{createErrMsg((String)itemvalueMap.get(KEY_ADD_OPEACNT), rsMap)});
			
			return false;
		}
		
		// 更新オペレータアカウント
		strValue = (String)rsMap.get(JBSbatZMIFM008.UPD_OPEACNT);
		if(!LengthCheck.isLength2Check(strValue, 6, 10))
		{
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EZMB0050TW,
					new String[]{createErrMsg((String)itemvalueMap.get(KEY_UPD_OPEACNT), rsMap)});
			
			return false;
		}
		
		return true;
	}
	
	/**
	 * 入力データ格納HashMapを作成する。
	 * 
	 * @param dataList 入力データが格納されたArrayList
	 * @return HashMap<String, String> 入力データ格納HashMap
	 * @throws Exception 例外
	 */
	private HashMap<String, String> getRsMap(ArrayList<String> dataList) throws Exception
	{
		
		HashMap<String, String> outMap = new HashMap<String, String>();
		
		outMap.put(JBSbatZMIFM008.AD_CD, dataList.get(0));
		outMap.put(JBSbatZMIFM008.AREACD, dataList.get(1));
		outMap.put(JBSbatZMIFM008.NO_KUKAKU_CD, dataList.get(2));
		outMap.put(JBSbatZMIFM008.POLI_TSUHO_KH, dataList.get(3));
		outMap.put(JBSbatZMIFM008.SHOBO_TSUHO_KH, dataList.get(4));
		outMap.put(JBSbatZMIFM008.MSKM_JIGSHONM, dataList.get(5));
		outMap.put(JBSbatZMIFM008.TNTSHA_TELNO, dataList.get(6));
		outMap.put(JBSbatZMIFM008.TNTSHA_FAX_NO, dataList.get(7));
		outMap.put(JBSbatZMIFM008.CKI_CD, dataList.get(8));
		outMap.put(JBSbatZMIFM008.TENKI_YOHO_GRP_ID, dataList.get(9));
		outMap.put(JBSbatZMIFM008.AD_TG_NO_KUKAKU_TSTAYMD, dataList.get(10));
		outMap.put(JBSbatZMIFM008.AD_TG_NO_KUKAKU_TENDYMD, dataList.get(11));
		outMap.put(JBSbatZMIFM008.RSV_APLY_YMD, dataList.get(12));
		outMap.put(JBSbatZMIFM008.UPD_DTM, dataList.get(13));
		outMap.put(JBSbatZMIFM008.UPD_OPEACNT, dataList.get(14));
		outMap.put(JBSbatZMIFM008.ADD_DTM, dataList.get(15));
		outMap.put(JBSbatZMIFM008.ADD_OPEACNT, dataList.get(16));
		outMap.put(JBSbatZMIFM008.HTB_JUN, dataList.get(17));
		
		
		return outMap;
	}
	
	/**
	 * メッセージ置換用HashMapを作成する。
	 * 
	 * @return HashMap<String, String> メッセージ置換用HashMap
	 * @throws Exception 例外
	 */
	private HashMap<String, String> getItemvalueMap() throws Exception
	{
		
		HashMap<String, String> outMap = new HashMap<String, String>();
		
		outMap.put(KEY_AD_CD, MSG_AD_CD);
		outMap.put(KEY_AREACD, MSG_AREACD);
		outMap.put(KEY_NO_KUKAKU_CD, MSG_NO_KUKAKU_CD);
		outMap.put(KEY_RSV_APLY_YMD, MSG_RSV_APLY_YMD);
		outMap.put(KEY_POLI_TSUHO_KH, MSG_POLI_TSUHO_KH);
		outMap.put(KEY_SHOBO_TSUHO_KH, MSG_SHOBO_TSUHO_KH);
		outMap.put(KEY_MSKM_JIGSHONM, MSG_MSKM_JIGSHONM);
		outMap.put(KEY_TNTSHA_TELNO, MSG_TNTSHA_TELNO);
		outMap.put(KEY_TNTSHA_FAX_NO, MSG_TNTSHA_FAX_NO);
		outMap.put(KEY_CKI_CD, MSG_CKI_CD);
		outMap.put(KEY_TENKI_YOHO_GRP_ID, MSG_TENKI_YOHO_GRP_ID);
		outMap.put(KEY_AD_TG_NO_KUKAKU_TSTAYMD, MSG_AD_TG_NO_KUKAKU_TSTAYMD);
		outMap.put(KEY_AD_TG_NO_KUKAKU_TENDYMD, MSG_AD_TG_NO_KUKAKU_TENDYMD);
		outMap.put(KEY_RSV_APLY_YMD, MSG_RSV_APLY_YMD);
		outMap.put(KEY_UPD_DTM, MSG_UPD_DTM);
		outMap.put(KEY_UPD_OPEACNT, MSG_UPD_OPEACNT);
		outMap.put(KEY_ADD_DTM, MSG_ADD_DTM);
		outMap.put(KEY_ADD_OPEACNT, MSG_ADD_OPEACNT);
		outMap.put(KEY_HTB_JUN, MSG_HTB_JUN);
		
		return outMap;
	}
	
	/**
	 * 可否を反転する。
	 * 
	 * @param kh 可否
	 * @return String 反転値
	 * @throws Exception 例外
	 */
	private String invertKh(String kh) throws Exception
	{
		
		if (JZMBatConst.KH_KBN_H.equals(kh))
		{
			return JZMBatConst.KH_KBN_K;
		}
		else
		{
			return JZMBatConst.KH_KBN_H;
		}
	}
	
	/**
	 * 外部システム連携用住所適用終了年月日取得処理<br>
	 * 次レコードが存在する場合に使用する。
	 * 
	 * @param adCd 住所コード
	 * @param nextAdCd 次レコードの住所コード
	 * @param tsatymd 住所適用開始年月日
	 * @param nextTstaymd 次レコードの住所適用開始年月日
	 * @param noKukakuCd 番号区画コード
	 * @param nextNoKukakuCd 次レコードの番号区画コード
	 * @param tendymd 適用終了年月日
	 * @param nextRsvAplyYmd 次レコードの予約適用年月日
	 * @return String 決定した適用終了日
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getOutAdTendymd(String adCd, String nextAdCd, String tsatymd, String nextTstaymd,
			String noKukakuCd, String nextNoKukakuCd, String tendymd, String nextRsvAplyYmd) throws Exception
	{
		String outTendymd = null;
		
		// 適用終了年月日の決定
		if (adCd.equals(nextAdCd) && tsatymd.equals(nextTstaymd) && noKukakuCd.equals(nextNoKukakuCd))
		{
			outTendymd = JPCUtilCommon.addDay(nextRsvAplyYmd, -1);
		}
		else
		{
			outTendymd = getOutAdTendymd(tendymd);
		}
		
		return outTendymd;
	}
	
	/**
	 * 外部システム連携用住所適用終了年月日取得処理<br>
	 * 次レコードが存在しない場合に使用する。
	 * 
	 * @param tendymd 編集前の適用終了年月日。
	 * @return String 編集後の適用終了年月日
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getOutAdTendymd(String tendymd) throws Exception
	{
		String outTendymd = null;
		
		if((tendymd == null && JZMBatConst.BLANK.equals(tendymd)) ||
				JZMBatConst.IN_ENDYMD.equals(tendymd))
		{
			outTendymd = JZMBatConst.OUT_ENDYMD;
		}
		else
		{
			outTendymd = tendymd;
		}
		
		return outTendymd;
	}
	
	/**
	 * エラーメッセージ作成処理です。
	 * @param strItem 項目名
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap
	 * @return string メッセージ置換文字列
	 */
	private String createErrMsg(String strItem, HashMap<String, String> rsMap)
	{
		StringBuffer sb = new StringBuffer();
		
		sb.append(strItem);
		sb.append(JZMBatConst.KAKKO_LEFT);
		sb.append(JZMBatConst.KEY);
		sb.append(JZMBatConst.ZENKAKU_COLON);
		sb.append(MSG_KEY_AD_CD);
		sb.append(JZMBatConst.EQUAL);
		sb.append((String)rsMap.get(JBSbatZMIFM008.AD_CD));
		sb.append(JZMBatConst.KAKKO_RIGHT);
		
		return sb.toString();
	}
	/* ++++++++++ v1.00.00 追加終了 ++++++++++ */
	
	/**
	 * SQLKEY(ZM_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 executeZM_M_KYOKU_NO_ZM_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_ZM_M_KYOKU_NO.selectBySqlDefine(paramList, ZM_M_KYOKU_NO_ZM_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
