/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatZMAdDataSet
*	ソースファイル名	：JBSbatZMAdDataSet.java
*	作成者				：富士通　
*	作成日				：2012年11月14日
*＜機能概要＞
*　住所情報更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/11/14	富士通		新規作成
*   v4.00.00	2012/11/14	FJ) 伊藤	【TAI-2012-0000140】品質強化対策
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatZMFileReaderUtil;
import eo.business.common.JZMBatCommon;
import eo.business.common.JZMBatConst;
import eo.business.util.table.JBSbatZM_M_AD;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatZMAdDataSet extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(住所)*/
	private static final String D_TBL_NAME_ZM_M_AD = "ZM_M_AD";

	/** テーブル(住所適用日補正)*/
	private static final String D_TBL_NAME_ZM_T_AD_APLY_HOSEI = "ZM_T_AD_APLY_HOSEI";

	/** SQL定義キー(ZM_INSERT_001)*/
	private static final String ZM_M_AD_ZM_INSERT_001 = "ZM_INSERT_001";

	/** SQL定義キー(ZM_UPDATE_001)*/
	private static final String ZM_M_AD_ZM_UPDATE_001 = "ZM_UPDATE_001";

	/** SQL定義キー(ZM_SELECT_004)*/
	private static final String ZM_M_AD_ZM_SELECT_004 = "ZM_SELECT_004";

	/** SQL定義キー(ZM_UPDATE_001)*/
	private static final String ZM_T_AD_APLY_HOSEI_ZM_UPDATE_001 = "ZM_UPDATE_001";

	/** テーブルアクセスクラス(住所)*/
	private JBSbatSQLAccess db_ZM_M_AD = null;

	/** テーブルアクセスクラス(住所適用日補正)*/
	private JBSbatSQLAccess db_ZM_T_AD_APLY_HOSEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
	/** ファイルリーダー */
	private JBSbatZMFileReaderUtil fr = null;

	/** 住所情報追加データファイルパス（CSVファイル） */
	private String inpFileZmife150 = null;

	/** 住所情報更新データファイルパス（CSVファイル） */
	private String inpFileZmife160 = null;

	/** 住所情報削除データファイルパス（CSVファイル） */
	private String inpFileZmife170 = null;

	/** 住所適用日補正更新データファイルパス（CSVファイル） */
	private String inpFileZmife180 = null;

	/** 住所情報追加データファイル名（CSVファイル） */
	private static final String ZMIFM150_NM = "ZMIFM015001.csv";

	/** 住所情報更新データファイル名（CSVファイル） */
	private static final String ZMIFM160_NM = "ZMIFM016001.csv";

	/** 住所情報削除データファイル名（CSVファイル） */
	private static final String ZMIFM170_NM = "ZMIFM017001.csv";

	/** 住所適用日補正更新データファイル名（CSVファイル） */
	private static final String ZMIFM180_NM = "ZMIFM018001.csv";
	/* ++++++++++ v4.0.0 追加終了 ++++++++++ */

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_ZM_M_AD = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_AD);
		db_ZM_T_AD_APLY_HOSEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_AD_APLY_HOSEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/

		/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
		String midDirPath = JZMBatCommon.getMidDir();
		inpFileZmife150 = midDirPath + ZMIFM150_NM;
		inpFileZmife160 = midDirPath + ZMIFM160_NM;
		inpFileZmife170 = midDirPath + ZMIFM170_NM;
		inpFileZmife180 = midDirPath + ZMIFM180_NM;
		/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
		addAdMstData();
		updAdMstData();
		delAdMstData();
		updAdHoseiData();
		/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_ZM_M_AD.close();
		db_ZM_T_AD_APLY_HOSEI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * SQLKEY(ZM_INSERT_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_AD_ZM_INSERT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());
		paramList.setValue(param[14].toString());
		paramList.setValue(param[15].toString());
		paramList.setValue(param[16].toString());
		paramList.setValue(param[17].toString());
		paramList.setValue(param[18].toString());
		paramList.setValue(param[19].toString());
		paramList.setValue(param[20].toString());
		paramList.setValue(param[21].toString());
		paramList.setValue(param[22].toString());
		paramList.setValue(param[23].toString());
		paramList.setValue(param[24].toString());
		paramList.setValue(param[25].toString());
		paramList.setValue(param[26].toString());
		paramList.setValue(param[27].toString());
		paramList.setValue(param[28].toString());
		paramList.setValue(param[29].toString());
		paramList.setValue(param[30].toString());
		paramList.setValue(param[31].toString());
		paramList.setValue(param[32].toString());
		paramList.setValue(param[33].toString());
		paramList.setValue(param[34].toString());
		paramList.setValue(param[35].toString());
		paramList.setValue(param[36].toString());
		paramList.setValue(param[37].toString());
		paramList.setValue(param[38].toString());
		paramList.setValue(param[39].toString());
		paramList.setValue(param[40].toString());
		paramList.setValue(param[41].toString());
		paramList.setValue(param[42].toString());
		paramList.setValue(param[43].toString());
		paramList.setValue(param[44].toString());

		// DBアクセスを実行します
		db_ZM_M_AD.executeBySqlDefine(paramList, ZM_M_AD_ZM_INSERT_001);
	}

	/**
	 * SQLKEY(ZM_UPDATE_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_AD_ZM_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_AD.executeBySqlDefine(paramList, ZM_M_AD_ZM_UPDATE_001);
	}

	/**
	 * SQLKEY(ZM_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	住所コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_AD_ZM_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZM_M_AD.selectBySqlDefine(paramList, ZM_M_AD_ZM_SELECT_004);
	}

	/**
	 * SQLKEY(ZM_UPDATE_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_T_AD_APLY_HOSEI_ZM_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_ZM_T_AD_APLY_HOSEI.executeBySqlDefine(paramList, ZM_T_AD_APLY_HOSEI_ZM_UPDATE_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/* ++++++++++ v4.0.0 追加開始 ++++++++++ */

	/**
	 * 住所情報追加データファイルの情報を住所マスタに取込みます。
	 * @return 実行結果
	 * @throws Exception
	 */
	private boolean addAdMstData() throws Exception
	{
		boolean ret = false;

		try
		{
			fr = new JBSbatZMFileReaderUtil(inpFileZmife150);

			if(fr != null)
			{
				String data = fr.readLine();
				String[] strArr = null;
				String sysDateTimeStamp = JZMBatCommon.getSysDateTimeStamp();

				while(data != null)
				{
					strArr = null;

					strArr = data.split(",");
					strArr[1] = sysDateTimeStamp;
					strArr[24] = getReplaceSixZero(strArr[24]);
					strArr[25] = getReplaceSixZero(strArr[25]);
					strArr[26] = getReplaceSixZero(strArr[26]);
					strArr[27] = getReplaceSixZero(strArr[27]);
					strArr[28] = getReplaceSixZero(strArr[28]);

					executeZM_M_AD_ZM_INSERT_001(strArr);
					data = fr.readLine();
				}
			}
			ret = true;
		}
		catch(Exception ex)
		{
			throw ex;
		}
		finally
		{
			if(fr != null)
			{
				fr.close();
			}
		}
		return ret;
	}

	/**
	 * 住所情報更新データファイルの情報を住所マスタに取込みます。
	 * @return 実行結果
	 * @throws Exception
	 */
	private boolean updAdMstData() throws Exception
	{
		boolean ret = false;

		try
		{
			fr = new JBSbatZMFileReaderUtil(inpFileZmife160);

			if(fr != null)
			{
				String data = fr.readLine();
				String[] strArr = null;
				String adCd = null;
				String tstaymd = null;
				String tendymd = null;
				String[] values = null;
				JBSbatCommonDBInterface dbif = null;
				String sysDateTimeStamp = JZMBatCommon.getSysDateTimeStamp();

				while(data != null)
				{
					strArr = null;

					strArr = data.split(",");
					strArr[1] = JZMBatCommon.addMillSec(sysDateTimeStamp, 1);
					strArr[24] = getReplaceSixZero(strArr[24]);
					strArr[25] = getReplaceSixZero(strArr[25]);
					strArr[26] = getReplaceSixZero(strArr[26]);
					strArr[27] = getReplaceSixZero(strArr[27]);
					strArr[28] = getReplaceSixZero(strArr[28]);

					adCd = strArr[0];
					executeZM_M_AD_ZM_SELECT_004(new String[]{adCd});
					executeZM_M_AD_ZM_UPDATE_001(new String[]{adCd});
					dbif = db_ZM_M_AD.selectNext();
					
					int cnt = 0;
					while(dbif != null)
					{
						values = null;
						values = new String[45];
						tstaymd = strArr[36];
						tendymd = strArr[37];
						values[0] = getString(dbif, JBSbatZM_M_AD.AD_CD);
						values[1] = JZMBatCommon.addMillSec(sysDateTimeStamp, -1 * cnt);
						values[2] = getString(dbif, JBSbatZM_M_AD.PCD);
						values[3] = getString(dbif, JBSbatZM_M_AD.STATE_NM);
						values[4] = getString(dbif, JBSbatZM_M_AD.CITY_NM);
						values[5] = getString(dbif, JBSbatZM_M_AD.OAZTSU_NM);
						values[6] = getString(dbif, JBSbatZM_M_AD.AZCHO_NM);
						values[7] = getString(dbif, JBSbatZM_M_AD.STATE_KANJI_CNT);
						values[8] = getString(dbif, JBSbatZM_M_AD.CITY_KANJI_CNT);
						values[9] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANJI_CNT);
						values[10] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANJI_CNT);
						values[11] = getString(dbif, JBSbatZM_M_AD.AD_KANJI_CNT);
						values[12] = getString(dbif, JBSbatZM_M_AD.STATE_KANA);
						values[13] = getString(dbif, JBSbatZM_M_AD.CITY_KANA);
						values[14] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANA);
						values[15] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANA);
						values[16] = getString(dbif, JBSbatZM_M_AD.STATE_KANA_CNT);
						values[17] = getString(dbif, JBSbatZM_M_AD.CITY_KANA_CNT);
						values[18] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANA_CNT);
						values[19] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANA_CNT);
						values[20] = getString(dbif, JBSbatZM_M_AD.AD_KANA_CNT);
						values[21] = getString(dbif, JBSbatZM_M_AD.TORINA_SKBT_FLG);
						values[22] = getString(dbif, JBSbatZM_M_AD.TUSHO_CD);
						values[23] = getString(dbif, JBSbatZM_M_AD.EXEC_YM);
						values[24] = getString(dbif, JBSbatZM_M_AD.HAISHI_YM);
						values[25] = getString(dbif, JBSbatZM_M_AD.KOSHO_CHG_YM);
						values[26] = getString(dbif, JBSbatZM_M_AD.PCD_CHG_YM);
						values[27] = getString(dbif, JBSbatZM_M_AD.TUSHO_CD_CHG_YM);
						values[28] = getString(dbif, JBSbatZM_M_AD.CHIBAN_CHG_YM);
						values[29] = getString(dbif, JBSbatZM_M_AD.AD_SHUSEI_CD);
						values[30] = getString(dbif, JBSbatZM_M_AD.NEW_AD_CD);
						values[31] = getString(dbif, JBSbatZM_M_AD.AD_CHG_SBT_CD);
						values[32] = getString(dbif, JBSbatZM_M_AD.HOSEI_TG_YMD);
						values[33] = getString(dbif, JBSbatZM_M_AD.AZCHO_TAIHI);
						values[34] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANJI_CNT_TAIHI);
						values[35] = getString(dbif, JBSbatZM_M_AD.RSV_APLY_YMD);
						values[36] = tstaymd;
						values[37] = tendymd;
						values[38] = getString(dbif, JBSbatZM_M_AD.ADD_DTM);
						values[39] = getString(dbif, JBSbatZM_M_AD.ADD_OPEACNT);
						values[40] = getString(dbif, JBSbatZM_M_AD.UPD_DTM);
						values[41] = getString(dbif, JBSbatZM_M_AD.UPD_OPEACNT);
						values[42] = getString(dbif, JBSbatZM_M_AD.DEL_DTM);
						values[43] = getString(dbif, JBSbatZM_M_AD.DEL_OPEACNT);
						values[44] = JZMBatConst.ZERO;
						
						executeZM_M_AD_ZM_INSERT_001(values);
						
						dbif = db_ZM_M_AD.selectNext();
						cnt++;
					}
					executeZM_M_AD_ZM_INSERT_001(strArr);
					data = fr.readLine();
				}
			}
			ret = true;
		}
		catch(Exception ex)
		{
			throw ex;
		}
		finally
		{
			if(fr != null)
			{
				fr.close();
			}
		}
		return ret;
	}

	/**
	 * 住所情報削除データファイルの情報を住所マスタに取込みます。
	 * @return 実行結果
	 * @throws Exception
	 */
	private boolean delAdMstData() throws Exception
	{
		boolean ret = false;

		try
		{
			fr = new JBSbatZMFileReaderUtil(inpFileZmife170);

			if(fr != null)
			{
				String data = fr.readLine();
				String[] strArr = null;
				String tstaymd = null;
				String tendymd = null;
				String adCd = null;
				String[] values = null;
				JBSbatCommonDBInterface dbif = null;
				String sysDateTimeStamp = JZMBatCommon.getSysDateTimeStamp();
				String shuseiCd = null;

				while(data != null)
				{
					strArr = null;

					strArr = data.split(",");
					strArr[1] = JZMBatCommon.addMillSec(sysDateTimeStamp, 1);
					strArr[24] = getReplaceSixZero(strArr[24]);
					strArr[25] = getReplaceSixZero(strArr[25]);
					strArr[26] = getReplaceSixZero(strArr[26]);
					strArr[27] = getReplaceSixZero(strArr[27]);
					strArr[28] = getReplaceSixZero(strArr[28]);

					adCd = strArr[0];
					shuseiCd = strArr[29];
					executeZM_M_AD_ZM_SELECT_004(new String[]{adCd});
					executeZM_M_AD_ZM_UPDATE_001(new String[]{adCd});
					dbif = db_ZM_M_AD.selectNext();
					dbif = db_ZM_M_AD.selectNext();
					
					int cnt = 0;
					
					if(JZMBatConst.NINE.equals(shuseiCd))
					{
						executeZM_M_AD_ZM_UPDATE_001(new String[]{adCd});
					}
					else if(JZMBatConst.THREE.equals(shuseiCd))
					{
						while(dbif != null)
						{
							values = null;
							values = new String[45];
							tstaymd = strArr[36];
							tendymd = strArr[37];
							values[0] = getString(dbif, JBSbatZM_M_AD.AD_CD);
							values[1] = JZMBatCommon.addMillSec(sysDateTimeStamp, -1 * cnt);
							values[2] = getString(dbif, JBSbatZM_M_AD.PCD);
							values[3] = getString(dbif, JBSbatZM_M_AD.STATE_NM);
							values[4] = getString(dbif, JBSbatZM_M_AD.CITY_NM);
							values[5] = getString(dbif, JBSbatZM_M_AD.OAZTSU_NM);
							values[6] = getString(dbif, JBSbatZM_M_AD.AZCHO_NM);
							values[7] = getString(dbif, JBSbatZM_M_AD.STATE_KANJI_CNT);
							values[8] = getString(dbif, JBSbatZM_M_AD.CITY_KANJI_CNT);
							values[9] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANJI_CNT);
							values[10] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANJI_CNT);
							values[11] = getString(dbif, JBSbatZM_M_AD.AD_KANJI_CNT);
							values[12] = getString(dbif, JBSbatZM_M_AD.STATE_KANA);
							values[13] = getString(dbif, JBSbatZM_M_AD.CITY_KANA);
							values[14] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANA);
							values[15] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANA);
							values[16] = getString(dbif, JBSbatZM_M_AD.STATE_KANA_CNT);
							values[17] = getString(dbif, JBSbatZM_M_AD.CITY_KANA_CNT);
							values[18] = getString(dbif, JBSbatZM_M_AD.OAZTSU_KANA_CNT);
							values[19] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANA_CNT);
							values[20] = getString(dbif, JBSbatZM_M_AD.AD_KANA_CNT);
							values[21] = getString(dbif, JBSbatZM_M_AD.TORINA_SKBT_FLG);
							values[22] = getString(dbif, JBSbatZM_M_AD.TUSHO_CD);
							values[23] = getString(dbif, JBSbatZM_M_AD.EXEC_YM);
							values[24] = getString(dbif, JBSbatZM_M_AD.HAISHI_YM);
							values[25] = getString(dbif, JBSbatZM_M_AD.KOSHO_CHG_YM);
							values[26] = getString(dbif, JBSbatZM_M_AD.PCD_CHG_YM);
							values[27] = getString(dbif, JBSbatZM_M_AD.TUSHO_CD_CHG_YM);
							values[28] = getString(dbif, JBSbatZM_M_AD.CHIBAN_CHG_YM);
							values[29] = getString(dbif, JBSbatZM_M_AD.AD_SHUSEI_CD);
							values[30] = getString(dbif, JBSbatZM_M_AD.NEW_AD_CD);
							values[31] = getString(dbif, JBSbatZM_M_AD.AD_CHG_SBT_CD);
							values[32] = getString(dbif, JBSbatZM_M_AD.HOSEI_TG_YMD);
							values[33] = getString(dbif, JBSbatZM_M_AD.AZCHO_TAIHI);
							values[34] = getString(dbif, JBSbatZM_M_AD.AZCHO_KANJI_CNT_TAIHI);
							values[35] = getString(dbif, JBSbatZM_M_AD.RSV_APLY_YMD);
							values[36] = tstaymd;
							values[37] = tendymd;
							values[38] = getString(dbif, JBSbatZM_M_AD.ADD_DTM);
							values[39] = getString(dbif, JBSbatZM_M_AD.ADD_OPEACNT);
							values[40] = getString(dbif, JBSbatZM_M_AD.UPD_DTM);
							values[41] = getString(dbif, JBSbatZM_M_AD.UPD_OPEACNT);
							values[42] = getString(dbif, JBSbatZM_M_AD.DEL_DTM);
							values[43] = getString(dbif, JBSbatZM_M_AD.DEL_OPEACNT);
							values[44] = JZMBatConst.ZERO;
							
							executeZM_M_AD_ZM_INSERT_001(values);
							
							dbif = db_ZM_M_AD.selectNext();
							cnt++;
						}
						executeZM_M_AD_ZM_INSERT_001(strArr);
					}
					data = fr.readLine();
				}
			}
			ret = true;
		}
		catch(Exception ex)
		{
			throw ex;
		}
		finally
		{
			if(fr != null)
			{
				fr.close();
			}
		}
		return ret;
	}

	/**
	 * 住所適用日補正更新データファイルの情報を住所適用日補正に取込みます。
	 * @return 実行結果
	 * @throws Exception
	 */
	private boolean updAdHoseiData() throws Exception
	{
		boolean ret = false;

		try
		{
			fr = new JBSbatZMFileReaderUtil(inpFileZmife180);

			if(fr != null)
			{
				String data = fr.readLine();
				String[] strArr = null;
				ArrayList<String> retList = new ArrayList<String>();

				while(data != null)
				{
					strArr = null;
					retList.clear();

					strArr = data.split(",");

					retList.add(strArr[3]);
					if(strArr.length == 5 )
					{
						retList.add(strArr[4]);
					}
					else
					{
						retList.add(JZMBatConst.BLANK);
					}
					retList.add(strArr[0]);
					retList.add(strArr[1]);
					retList.add(strArr[2]);

					executeZM_T_AD_APLY_HOSEI_ZM_UPDATE_001(retList.toArray());
					data = fr.readLine();
				}
			}
			ret = true;
		}
		catch(Exception ex)
		{
			throw ex;
		}
		finally
		{
			if(fr != null)
			{
				fr.close();
			}
		}
		return ret;
	}

	/**
	 * DBIFから値を取得しnullの場合ブランクに置換します。
	 * @param dbif DBIF
	 * @param columnName 項目名
	 * @return String 取得値
	 * @throws Exception
	 */
	private String getString(JBSbatCommonDBInterface dbif, String columnName) throws Exception
	{
		return JZMBatCommon.nullToBlank(dbif.getString(columnName));
	}

	/**
	 * 値が"000000"の場合、ブランクに置換します。
	 * @param rtn 値
	 * @return String 設定用データ
	 */
	private String getReplaceSixZero(String rtn)
	{
		if(JZMBatConst.SIX_ZERO.equals(rtn))
		{
			return JZMBatConst.BLANK;
		}
		return rtn;
	}
	/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
}
