/*********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *	システム名			：eo顧客基幹システム
 *	モジュール名		：JBSbatZMAdMstUpdDataSksi
 *	ソースファイル名	：JBSbatZMAdMstUpdDataSksi.java
 *	作成者				：富士通　
 *	作成日				：2011年11月30日
 *＜機能概要＞
 *　住所マスタ更新データ作成部品です。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
*	v2.00.00	2011/11/30   FJ)岩元	新規作成
 *********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JBSbatMatchServiceInterface;
import eo.business.common.JZMBatCommon;
import eo.business.common.JZMBatConst;
import eo.business.util.file.JBSbatZMIFM013;
import eo.business.util.file.JBSbatZMIFM014;
import eo.business.util.table.JBSbatZM_M_WORK_PARAM_KNRI;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatBusinessFileUtil;

/**
 * 住所マスタ更新データ作成クラスです。<p>
 *<BR>
 * @author 富士通
 */
public class JBSbatZMAdMstUpdDataSksi extends JBSbatBusinessService implements JBSbatMatchServiceInterface
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(業務パラメータ管理)*/
	private static final String D_TBL_NAME_ZM_M_WORK_PARAM_KNRI = "ZM_M_WORK_PARAM_KNRI";

	/** SQL定義キー(ZM_SELECT_003)*/
	private static final String ZM_M_WORK_PARAM_KNRI_ZM_SELECT_003 = "ZM_SELECT_003";

	/** テーブルアクセスクラス(業務パラメータ管理)*/
	private JBSbatSQLAccess db_ZM_M_WORK_PARAM_KNRI = null;

	/** キーマッチ処理フラグ*/
	private boolean matchProcFlg = false;

	/** マスタファイル処理フラグ*/
	private boolean mastProcFlg = false;

	/** トランファイル処理フラグ*/
	private boolean tranProcFlg = false;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/


	/* ++++++++++ v1.0.0 追加開始 ++++++++++ */

	/** 住所マスタ追加ファイル名称 */
	private static final String ADD_FILE_NAME = "ZMIFM015001.csv";

	/** 住所マスタ更新ファイル名称 */
	private static final String UPD_FILE_NAME = "ZMIFM016001.csv";

	/** 住所マスタ削除ファイル名称 */
	private static final String DEL_FILE_NAME = "ZMIFM017001.csv";

	/** 住所適用日補正更新ファイル名称 */
	private static final String HOSEI_APLY_FILE_NAME = "ZMIFM018001.csv";

	/** 住所情報更新結果リストデータファイル名称 */
	private static final String UPD_RSLT_FILE_NAME = "ZMIFM019001.csv";

	/** 住所情報更新エラーリストデータファイル名称 */
	private static final String UPD_ERR_FILE_NAME = "ZMIFM021001.csv";

	/** エラー種類メッセージ 「削除対象データなし」*/
	private static final String MSG_CD_NO_DEL_DATA = "850";

	/** エラー種類メッセージ 「未来登録データあり」*/
	private static final String MSG_CD_HAS_FUTURE_DATA = "810";

	/** エラー種類メッセージ 「廃止済エラー」*/
	private static final String MSG_CD_ALREADY_HAISHI = "840";

	/** エラー種類メッセージ 「登録済エラー」*/
	private static final String MSG_CD_ALREADY_ADD = "830";

	/** エラー種類メッセージ 「住所情報(地名)になし」*/
	private static final String MSG_CD_NO_AD = "820";

	/** 結果リストメッセージ 「新規登録」*/
	private static final String RSLT_MSG_CD_ADD = "210";

	/** 結果リストメッセージ 「廃止登録」*/
	private static final String RSLT_MSG_CD_HAISHI_ADD = "220";

	/** 結果リストメッセージ 「住所変更」*/
	private static final String RSLT_MSG_CD_CHG = "020";

	/** 結果リストメッセージ 「市町村合併」*/
	private static final String RSLT_MSG_CD_GAPPEI = "010";

	/** 結果リストメッセージ 「廃止」*/
	private static final String RSLT_MSG_CD_HAISHI = "230";

	/** 結果リストメッセージ 「削除」*/
	private static final String RSLT_MSG_CD_DEL = "250";

	/** 結果リストメッセージ 「廃止分復活」*/
	private static final String RSLT_MSG_CD_HISHI_HUKKATSU = "240";

	/** JBSbatBusinessFileUtil 住所マスタ追加ファイル */
	private JBSbatBusinessFileUtil fileUtilAdd = null;

	/** JBSbatBusinessFileUtil 住所マスタ更新ファイル */
	private JBSbatBusinessFileUtil fileUtilUpd = null;

	/** JBSbatBusinessFileUtil 住所マスタ削除ファイル */
	private JBSbatBusinessFileUtil fileUtilDel = null;

	/** JBSbatBusinessFileUtil 住所適用日補正更新ファイル */
	private JBSbatBusinessFileUtil fileUtilHosei = null;

	/** JBSbatBusinessFileUtil  住所情報更新結果リストデータ*/
	private JBSbatBusinessFileUtil fileUtilRslt = null;

	/** JBSbatBusinessFileUtil  住所情報更新エラーリストデータ*/
	private JBSbatBusinessFileUtil fileUtilErr = null;

	/** 住所変更種別コード 市町村合併 */
	private static final String CHG_SBT_CITY_GAPPEI = JZMBatConst.ZERO_ONE;

	/** 住所変更種別コード 住所変更 呼称郵便番号両方 */
	private static final String CHG_SBT_KOSHO_PCD_CHG = JZMBatConst.ELEVEN;

	/** 住所変更種別コード 住所変更 呼称のみ */
	private static final String CHG_SBT_KOSHO_CHG = "12";

	/** 住所変更種別コード 住所変更 郵便番号のみ */
	private static final String CHG_SBT_PCD_CHG = "13";

	/** 住所マスタ補正データ作成範囲最小値 */
	private int mstDataSksiMin = 0;

	/** 住所マスタ補正データ作成範囲最大値 */
	private int mstDataSksiMax = 99;

	/** 正規表現 数値2桁 */
	private static final String REGEX_NUMBER_TWO = "\\d{2}";

	/** 住所マスタ補正データ作成範囲最小値 項目名 */
	private static final String ZM_AD_MST_SKSI_MIN = "ZM_AD_MST_SKSI_MIN";

	/** 住所マスタ補正データ作成範囲最大値 項目名 */
	private static final String ZM_AD_MST_SKSI_MAX = "ZM_AD_MST_SKSI_MAX";

	/* ++++++++++ v1.0.0 追加終了 ++++++++++ */


	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
		/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_ZM_M_WORK_PARAM_KNRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_WORK_PARAM_KNRI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/


		/* ++++++++++ v1.0.0 追加開始 ++++++++++ */

		setAdMstSksiScope();

		// 出力クラスを生成する。
		// 住所情報追加データファイル
		// 住所情報更新データファイル
		// 住所情報削除データファイル
		// 住所適用日補正更新データファイル
		// 住所情報更新結果データファイル
		// 住所情報更新エラーデータファイル
		String path = JZMBatCommon.getMidDir();
		fileUtilAdd = getBusinessFileUtil(path, ADD_FILE_NAME);
		fileUtilUpd = getBusinessFileUtil(path, UPD_FILE_NAME);
		fileUtilDel = getBusinessFileUtil(path, DEL_FILE_NAME);
		fileUtilHosei = getBusinessFileUtil(path, HOSEI_APLY_FILE_NAME);
		fileUtilRslt = getBusinessFileUtil(path, UPD_RSLT_FILE_NAME);
		fileUtilErr = getBusinessFileUtil(path, UPD_ERR_FILE_NAME);

		/* ++++++++++ v1.0.0 追加終了 ++++++++++ */

		/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
		
	}

	/**
	 * 主処理
	 * @param mastMap　入力電文
	 * @param tranMap　入力電文
	 * @param outputInItem  入力情報
	 * @return JBSbatOutputItem 出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap, JBSbatOutputItem outputInItem) throws Exception
	{

		/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		/* ++++++++++ v1.0.0 追加開始 ++++++++++ */

		if(null == mastMap && null != tranMap)
		{
			// tranMapのみ存在する場合は住所マスタにのみ存在する場合の処理を実行する。
			onlyAdMstData(tranMap);
		}
		else if (null != mastMap && null == tranMap)
		{
			// mastMapのみ存在する場合は町字データにのみ存在する場合の処理を実行する。
			onlyChoAzaData(mastMap);
		}
		else
		{
		
			
			// 町字コードを取得
			String mastChoAzaCd = getChoAzaCd(mastMap);
						
			// 住所コードを取得
			String tranAdCd = getAdCd(tranMap);

			if(mastChoAzaCd.length() != 11)
			{
				// 町字コードが11桁以外の場合は次の町字コードを取得する。
				setMastProcFlg(true);
			}
			if(tranAdCd.length() != 11)
			{
				// 住所コードが11桁以外の場合は次の住所コードを取得する。
				setTranProcFlg(true);
			}
			if(tranProcFlg || mastProcFlg)
			{
				return outputInItem;
			}

			int ans = mastChoAzaCd.compareTo(tranAdCd);

			// 修正コードを取得
			String shuseiCd = getShuseiCd(mastMap);

			// 補正データ種別を取得
			String hoseiDataSbt = getHoseiDataSbt(mastMap);

			// 補正対象年月日
			String hoseiTgYmd = getHoseiTgYmd(mastMap);

			boolean hasHoseiTagYmd = getHasHoseiTagYmd(hoseiTgYmd);

			// 町字コードが住所コードより小さい場合、町字のみデータが存在する
			if(ans < 0)
			{
				onlyChoAzaData(mastMap);
			}

			// 町字コードが住所コードより大きい場合、住所マスタのみデータが存在する。
			else if(ans > 0)
			{
				onlyAdMstData(tranMap);
			}

			// 町字コードと住所コードが一致する場合
			else if(ans == 0)
			{
				this.setMastProcFlg(true);
				this.setTranProcFlg(true);

				// 住所修正コードの取得
				String adShuseiCd = getAdShuseiCd(tranMap);

				// 予約適用開始年月日の取得
				String rsvAplyYmd = getRsvAplyYmd(tranMap);

				boolean isFuture = false;
				if(hasHoseiTagYmd)
				{

					// 補正対象日が存在し、予約適用日 ＞＝ 補正対象日
					isFuture =  0 <= rsvAplyYmd.compareTo(hoseiTgYmd);
				}
				else
				{

					// 補正対象日が存在せず、予約適用日 ＞= バッチ運用日
					isFuture = 0 <= rsvAplyYmd.compareTo(getOpeYMD());
				}
				
				rsvAplyYmd = null;
				
				String tstaYmd = null;
				String tendYmd = null;
				String adChgSbtCd = null;

				// 住所修正コードが0,1,3の場合
				if(isZero(adShuseiCd) || isOne(adShuseiCd) || isThree(adShuseiCd))
				{

					// 修正コードが0の場合
					if(isZero(shuseiCd))
					{

						// 住所修正コードが"1","3"の場合
						if(isOne(adShuseiCd) || isThree(adShuseiCd))
						{

							// 予約登録@ 「修正コード更新」
							adChgSbtCd = JZMBatConst.BLANK;
							rsvAplyYmd = getNextDay(getOpeYMD());
							tstaYmd = getTstaYmd(tranMap);
							tendYmd = getTendYmd(tranMap);

							printRsvData(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
						}
					}
					else if(isOne(shuseiCd))
					{

						// エラーリストの出力　「登録済エラー」
						printUpdErrList(mastMap, MSG_CD_ALREADY_ADD, shuseiCd, true);
					}
					else if(isThree(shuseiCd))
					{

						// 予約適用日が未来日の場合は更新エラーリストを出力する。
						if(isFuture)
						{

							printUpdErrListMastMap(mastMap, shuseiCd);
						}
						else
						{
							
							if(isEleven(hoseiDataSbt))
							{
								if(hasHoseiTagYmd)
								{

									// 予約登録A 「住所変更」
									adChgSbtCd = getAdChgSbtCd(mastMap, tranMap);
									rsvAplyYmd = hoseiTgYmd;
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = JZMBatConst.IN_ENDYMD;
								}
								else
								{

									// 予約登録B 「住所変更」
									adChgSbtCd = getAdChgSbtCd(mastMap, tranMap);
									rsvAplyYmd = getNextDay(getOpeYMD());
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = JZMBatConst.IN_ENDYMD;
								}
							}
							else
							{
								if(hasHoseiTagYmd)
								{

									// 存在しないケース
									adChgSbtCd = JZMBatConst.BLANK;
									rsvAplyYmd = getNextDay(getOpeYMD());
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = JZMBatConst.IN_ENDYMD;
								}
								else
								{

									// 予約登録C 「住所変更」
									adChgSbtCd = JZMBatConst.BLANK;
									rsvAplyYmd = getNextDay(getOpeYMD());
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = JZMBatConst.IN_ENDYMD;
								}
							}
							
							// 登録内容、登録結果を出力する。
							printRsvData(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
							printUpdRsltList(mastMap, RSLT_MSG_CD_CHG, rsvAplyYmd, tendYmd);
							
						}
					}
					else if(isFive(shuseiCd))
					{

						// 予約適用日が未来日の場合は更新エラーリストを出力する。
						if(isFuture)
						{

							printUpdErrListMastMap(mastMap, shuseiCd);
						}
						else
						{

							if(isZeroOne(hoseiDataSbt))
							{
								if(hasHoseiTagYmd)
								{

									// 予約登録D 「市町村合併」
									adChgSbtCd = CHG_SBT_CITY_GAPPEI;
									rsvAplyYmd = hoseiTgYmd;
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = hoseiTgYmd;
								}
								else
								{

									// 予約登録E 「市町村合併」
									adChgSbtCd = CHG_SBT_CITY_GAPPEI;
									rsvAplyYmd = getOpeYMD();
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = getOpeYMD();
								}
								printUpdRsltList(mastMap, RSLT_MSG_CD_GAPPEI, rsvAplyYmd, tendYmd);
							}
							else
							{
								if(hasHoseiTagYmd)
								{

									// 存在しないケース
									adChgSbtCd = JZMBatConst.BLANK;
									rsvAplyYmd = getOpeYMD();
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = getOpeYMD();
								}
								else
								{

									// 予約登録F 「廃止」
									adChgSbtCd = JZMBatConst.BLANK;
									rsvAplyYmd = getOpeYMD();
									tstaYmd = getTstaYmd(tranMap);
									tendYmd = getOpeYMD();
								}
								printUpdRsltList(mastMap, RSLT_MSG_CD_HAISHI, rsvAplyYmd, tendYmd);
							}
							printRsvData(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
						}
					}
					else if(isNine(shuseiCd))
					{

						// 論理削除@ 「削除」
						printDelData(mastMap, null, null, null, null, null);
						printUpdRsltListDel(mastMap, shuseiCd, RSLT_MSG_CD_DEL);
					}
				}
				else if(isFive(adShuseiCd))
				{
					if(isZero(shuseiCd) ||
							isFive(shuseiCd))
					{

						// 処理なし
					}
					else if(isOne(shuseiCd))
					{

						// エラーリストの出力　「廃止済エラー」
						printUpdErrList(mastMap, MSG_CD_ALREADY_HAISHI, shuseiCd, true);
					}
					else if(isThree(shuseiCd))
					{

						// 予約適用日が未来日の場合は更新エラーリストを出力する。
						if(isFuture)
						{

							printUpdErrListMastMap(mastMap, shuseiCd);
						}
						else
						{

							rsvAplyYmd = getNextDay(getOpeYMD());
							tstaYmd = getTstaYmd(tranMap);
							tendYmd = JZMBatConst.IN_ENDYMD;

							// 論理削除A 「廃止分復活」
							// 予約登録C
							printDelData(mastMap, null, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
							printUpdRsltList(mastMap, RSLT_MSG_CD_HISHI_HUKKATSU, rsvAplyYmd, tendYmd);
							
							rsvAplyYmd = null;
						}

					}
					else if(isNine(shuseiCd))
					{

						// 論理削除@ 「削除」
						printDelData(mastMap, null, null, null, null, null);
						printUpdRsltListDel(mastMap, adShuseiCd, RSLT_MSG_CD_DEL);
					}
				}
				printAdHoseiAplyUpdData(mastMap, rsvAplyYmd);
			}
			
		}
		
		return outputInItem;
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/

		/* ++++++++++ v1.0.0 追加終了 ++++++++++ */
	}

	/**
	 * 更新エラーリストを出力します。
	 * @param mastMap 入力電文
	 * @param shuseiCd 修正コード
	 * @throws Exception
	 */
	private void printUpdErrListMastMap(JBSbatServiceInterfaceMap mastMap, String shuseiCd) throws Exception
	{
		// エラーリストの出力　「未来登録データあり」
		printUpdErrList(mastMap, MSG_CD_HAS_FUTURE_DATA, shuseiCd, true);
	}

	/* ++++++++++ v1.0.0 追加開始 ++++++++++ */

	/**
	 * 住所マスタにのみ存在する場合の処理です。
	 * @param tranMap 入力電文
	 * @throws Exception 
	 */
	private void onlyAdMstData(JBSbatServiceInterfaceMap tranMap) throws Exception
	{

		this.setTranProcFlg(true);

		// エラーリスト出力　「住所情報(地名)になし」
		printUpdErrList(tranMap, MSG_CD_NO_AD, getAdShuseiCd(tranMap), false);

	}

	/**
	 * 町字データにのみ存在する場合の処理です。
	 * @param mastMap 入力電文
	 * @throws Exception 
	 */
	private void onlyChoAzaData(JBSbatServiceInterfaceMap mastMap) throws Exception
	{

		this.setMastProcFlg(true);

		// 修正コードを取得
		String shuseiCd = getShuseiCd(mastMap);

		// 補正データ種別を取得
		String hoseiDataSbt = getHoseiDataSbt(mastMap);

		// 補正対象年月日
		String hoseiTgYmd = getHoseiTgYmd(mastMap);

		boolean hasHoseiTagYmd = getHasHoseiTagYmd(hoseiTgYmd);

		// 〔住所マスタ〕で管理していない住所コードであるため、新規登録を行う。						
		// ただし、〔町字データ〕の「修正コード」が"9"(削除)の場合は、〔住所マスタ〕に存在しないデータの削除は行えないため、
		// 新規登録は行わずエラーリストへ出力する。						

		String tstaYmd = null;
		String tendYmd = null;
		String rsvAplyYmd = null;
		String adChgSbtCd = null;

		if(isZero(shuseiCd) ||
				isOne(shuseiCd) ||
				isThree(shuseiCd))
		{

			if(JZMBatConst.ZERO_TWO.equals(hoseiDataSbt))
			{
				
				if(hasHoseiTagYmd)
				{

					// 新規登録@
					adChgSbtCd = CHG_SBT_CITY_GAPPEI;
					rsvAplyYmd = getNextDay(hoseiTgYmd);
					tstaYmd = getNextDay(hoseiTgYmd);
					tendYmd = JZMBatConst.IN_ENDYMD;

				}
				else
				{

					// 新規登録A
					adChgSbtCd = CHG_SBT_CITY_GAPPEI;
					rsvAplyYmd = getNextDay(getOpeYMD());
					tstaYmd = getNextDay(getOpeYMD());
					tendYmd = JZMBatConst.IN_ENDYMD;

				}
			}
			else
			{
				if(hasHoseiTagYmd)
				{

					// 存在しないケース
					adChgSbtCd = JZMBatConst.BLANK;
					rsvAplyYmd = getNextDay(getOpeYMD());
					tstaYmd = getNextDay(getOpeYMD());
					tendYmd = JZMBatConst.IN_ENDYMD;

				}
				else
				{

					// 新規登録B
					adChgSbtCd = JZMBatConst.BLANK;
					rsvAplyYmd = getNextDay(getOpeYMD());
					tstaYmd = getNextDay(getOpeYMD());
					tendYmd = JZMBatConst.IN_ENDYMD;

				}
			}
			printAddData(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
			printUpdRsltList(mastMap, RSLT_MSG_CD_ADD, rsvAplyYmd, tendYmd);
		}
		else if(isFive(shuseiCd))
		{

			// 新規登録C
			adChgSbtCd = JZMBatConst.BLANK;
			rsvAplyYmd = getOpeYMD();
			tstaYmd = getOpeYMD();
			tendYmd = getOpeYMD();
			printAddData(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);
			printUpdRsltList(mastMap, RSLT_MSG_CD_HAISHI_ADD, rsvAplyYmd, tendYmd);
		}
		else if(isNine(shuseiCd))
		{

			// エラーリストの出力　「削除対象データなし」
			printUpdErrList(mastMap, MSG_CD_NO_DEL_DATA, shuseiCd, true);
		}
	}

	/**
	 * 論理削除データを出力します。
	 * @param mastMap 入力電文
	 * @param adChgSbtCd 住所種別コード
	 * @param hoseiTgYmd 補正対象年月日
	 * @param rsvAplyYmd 予約適用年月日
	 * @param tstaYmd 適用開始年月日
	 * @param tendYmd 適用終了年月日
	 * @throws Exception 例外
	 */
	private void printDelData(JBSbatServiceInterfaceMap mastMap, 
			String adChgSbtCd, 
			String hoseiTgYmd,
			String rsvAplyYmd,
			String tstaYmd,
			String tendYmd) throws Exception
	{

		ArrayList<String> outputList = getAddList(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);

		JZMBatCommon.printBusinessFileUtil(fileUtilDel, outputList);
	}

	/**
	 * 予約登録データを出力します。
	 * @param mastMap 入力電文
	 * @param adChgSbtCd 住所変更種別コード
	 * @param hoseiTgYmd 補正対象年月日
	 * @param rsvAplyYmd 予約適用年月日
	 * @param tstaYmd 適用開始年月日
	 * @param tendYmd 適用終了年月日
	 * @throws Exception
	 */
	private void printRsvData(JBSbatServiceInterfaceMap mastMap, 
			String adChgSbtCd, 
			String hoseiTgYmd,
			String rsvAplyYmd,
			String tstaYmd,
			String tendYmd) throws Exception
	{
		ArrayList<String> outputList = getAddList(mastMap, adChgSbtCd, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);

		JZMBatCommon.printBusinessFileUtil(fileUtilUpd, outputList);
	}


	/**
	 * 新規登録データを出力します。
	 * @param mastMap 入力電文
	 * @param adChgSbt 住所変更種別
	 * @param hoseiTgYmd 補正対象年月日
	 * @param rsvAplyYmd 予約適用年月日
	 * @param tstaYmd 適用開始年月日
	 * @param tendYmd 適用終了年月日
	 * @throws Exception
	 */
	private void printAddData(JBSbatServiceInterfaceMap mastMap, 
			String adChgSbt, 
			String hoseiTgYmd,
			String rsvAplyYmd,
			String tstaYmd,
			String tendYmd) throws Exception
	{
		ArrayList<String> outputList = getAddList(mastMap, adChgSbt, hoseiTgYmd, rsvAplyYmd, tstaYmd, tendYmd);

		JZMBatCommon.printBusinessFileUtil(fileUtilAdd, outputList);
	}


	/**
	 * 更新結果リストの書き込みを行います。
	 * @param mastMap 入力電文
	 * @param msg 処理結果分類コード
	 * @param rsvAplyYmd 予約適用年月日
	 * @param tendYmd 適用終了年月日
	 * @throws Exception 
	 */
	private void printUpdRsltList(JBSbatServiceInterfaceMap mastMap, String msg, String rsvAplyYmd, String tendYmd) throws Exception
	{

		// 住所マスタ補正対象データ対象外の場合は処理を実行しない。
		if(!isScope(getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD).substring(0, 2)))
		{
			return;
		}


		String shuseiCd = getShuseiCd(mastMap);

		ArrayList<String> list = new ArrayList<String>();
		list.add(msg);
		list.add(shuseiCd);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.NEW_CHO_AZA_CD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.PCD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.SEKOU_YM));
		list.add(rsvAplyYmd);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.HAISHI_YM));
		list.add(tendYmd);

		if(isAdChg(shuseiCd))
		{
			list.add(rsvAplyYmd);
		}
		else
		{
			list.add(JZMBatConst.BLANK);
		}
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_NM));

		JZMBatCommon.printBusinessFileUtil(fileUtilRslt, list);
	}


	/**
	 * 更新結果リストへの出力を行います。
	 * @param mastMap 入力電文
	 * @param shuseiCd 修正コード
	 * @param msg 処理結果分類コード
	 * @throws Exception
	 */
	private void printUpdRsltListDel(JBSbatServiceInterfaceMap mastMap, String shuseiCd, String msg) throws Exception
	{

		// 住所マスタ補正対象データ対象外の場合は処理を実行しない。
		if(!isScope(getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD).substring(0, 2)))
		{
			return;
		}

		ArrayList<String> list = new ArrayList<String>();
		list.add(msg);
		list.add(shuseiCd);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.NEW_CHO_AZA_CD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.PCD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.SEKOU_YM));
		list.add(JZMBatConst.BLANK);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.HAISHI_YM));
		list.add(JZMBatConst.BLANK);
		list.add(JZMBatConst.BLANK);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_NM));

		JZMBatCommon.printBusinessFileUtil(fileUtilRslt, list);
	}

	/**
	 * 住所適用日補正更新データを出力します。
	 * @param mastMap 入力電文
	 * @param rsvAplyYmd 予約適用開始年月日
	 * @param hoseiTgYmd 補正対象年月日
	 * @throws Exception 
	 */
	private void printAdHoseiAplyUpdData(JBSbatServiceInterfaceMap mastMap, String rsvAplyYmd) throws Exception
	{

		if(mastMap == null)
		{
			return;
		}
		String choAzaCd = getChoAzaCd(mastMap);
		if(choAzaCd.length() != 11)
		{
			return;
		}
		String shuseiCd = getShuseiCd(mastMap);
		String hoseiDataSbt = getHoseiDataSbt(mastMap);

		// 修正コードが"3"かつ補正データ種別が"11" の時、または修正コード"5"かつ補正データ種別が"01"の時のみ処理を行う
		if(isThree(shuseiCd) && isEleven(hoseiDataSbt) ||
				(isFive(shuseiCd) && isZeroOne(hoseiDataSbt)))

		{

			ArrayList<String> outputList = new ArrayList<String>();
			outputList.add(choAzaCd.substring(0, 5));
			outputList.add(choAzaCd.substring(5, 11));
			outputList.add(getInMapData(mastMap, JBSbatZMIFM013.TRN_YM));
			outputList.add(JZMBatConst.ONE);
			if(rsvAplyYmd == null)
			{
				outputList.add(null);
			}
			else
			{
				outputList.add(rsvAplyYmd);
			}
			JZMBatCommon.printBusinessFileUtil(fileUtilHosei, outputList);
		}
	}

	/**
	 * 更新エラーリストに書き込みを行います。
	 * @param inMap 入力電文
	 * @param msg エラー種類
	 * @param shuseiCd 修正コード
	 * @param isMast 入力電文判定フラグ
	 * @throws Exception 
	 */
	private void printUpdErrList(JBSbatServiceInterfaceMap inMap, String msg, String shuseiCd, boolean isMast) throws Exception
	{

		// 住所コードを取得する
		String adCd = isMast ? getChoAzaCd(inMap) : getAdCd(inMap);

		// 住所マスタ補正対象データ対象外の場合は処理を実行しない。
		if(!isScope(adCd.substring(0, 2)))
		{
			return;
		}

		// エラーリスト出力フラグをTrueにする。
		ArrayList<String> list = new ArrayList<String>();
		list.add(msg);
		list.add(shuseiCd);
		list.add(adCd);
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.NEW_CHO_AZA_CD : JBSbatZMIFM014.NEW_AD_CD)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.PCD : JBSbatZMIFM014.PCD)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.SEKOU_YM : JBSbatZMIFM014.EXEC_YM)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.HAISHI_YM : JBSbatZMIFM014.HAISHI_YM)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.STATE_NM : JBSbatZMIFM014.STATE_NM)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.CITY_NM : JBSbatZMIFM014.CITY_NM)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.OAZTSU_NM : JBSbatZMIFM014.OAZTSU_NM)));
		list.add(getInMapData(inMap, (isMast ? JBSbatZMIFM013.AZCHO_NM : JBSbatZMIFM014.AZCHO_NM)));
		JZMBatCommon.printBusinessFileUtil(fileUtilErr, list);
	}

	/**
	 * 新規登録・予約登録時の出力用リストを返します。
	 * @param mastMap 入力電文
	 * @param adChgSbt 住所変更種別
	 * @param hoseiTgYmd 補正対象年月日
	 * @param rsvAplyYmd 予約適用開始年月日
	 * @param tstaYmd 適用開始年月日
	 * @param tendYmd 適用終了年月日
	 * @return 出力リスト
	 */
	private ArrayList<String> getAddList(JBSbatServiceInterfaceMap mastMap, 
			String adChgSbt, 
			String hoseiTgYmd,
			String rsvAplyYmd,
			String tstaYmd,
			String tendYmd)
	{
		ArrayList<String> list = new ArrayList<String>();

		list.add(getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD));
		list.add(JZMBatConst.BLANK);
		list.add(getInMapData(mastMap, JBSbatZMIFM013.PCD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_NM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_NM_KANJI_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_NM_KANJI_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_NM_KANJI_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_NM_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.TTL_KANJI_MOJI_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_KANA));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_KANA));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_KANA));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_KANA));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.STATE_KANA_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CITY_KANA_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.OAZTSU_KANA_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.AZCHO_KANA_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.TTL_KANA_MOJI_CNT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.TORINA_SKBT));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.TUSHO_FLG));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.SEKOU_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.HAISHI_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.KOSHO_CHG_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.PCD_CHG_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.TUSHO_FLG_CHG_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.CHIBAN_CHG_YM));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.SHUSEI_CD));
		list.add(getInMapData(mastMap, JBSbatZMIFM013.NEW_CHO_AZA_CD));
		list.add(adChgSbt);
		list.add(hoseiTgYmd);
		list.add(JZMBatConst.BLANK);
		list.add(JZMBatConst.BLANK);
		list.add(rsvAplyYmd);
		list.add(tstaYmd);
		list.add(tendYmd);
		list.add(JZMBatCommon.getSysDateTimeStamp());
		list.add(commonItem.getBatchUserId());
		list.add(JZMBatCommon.getSysDateTimeStamp());
		list.add(commonItem.getBatchUserId());
		list.add(JZMBatConst.BLANK);
		list.add(JZMBatConst.BLANK);
		list.add(JZMBatConst.ZERO);
		return list;
	}

	/**
	 * 住所変更種別コードを取得します。
	 * @param mastMap 入力電文
	 * @param tranMap 入力電文
	 * @return 住所変更種別コード
	 */
	private String getAdChgSbtCd(JBSbatServiceInterfaceMap mastMap, JBSbatServiceInterfaceMap tranMap)
	{
		String mastKoshoChgYmd = getInMapDataReplaceBlankToZero(mastMap, JBSbatZMIFM013.KOSHO_CHG_YM);
		String mastPcdChgYmd = getInMapDataReplaceBlankToZero(mastMap, JBSbatZMIFM013.PCD_CHG_YM);
		String tranKoshoChgYmd = getInMapDataReplaceBlankToZero(tranMap, JBSbatZMIFM014.KOSHO_CHG_YM);
		String tranPcdChgYmd = getInMapDataReplaceBlankToZero(tranMap, JBSbatZMIFM014.PCD_CHG_YM);

		int cmpKosho = tranKoshoChgYmd.compareTo(mastKoshoChgYmd);
		int cmpPcd = tranPcdChgYmd.compareTo(mastPcdChgYmd);

		if(0 > cmpKosho && 0 > cmpPcd)
		{
			return CHG_SBT_KOSHO_PCD_CHG;
		}
		else if(0 > cmpKosho)
		{
			return CHG_SBT_KOSHO_CHG;

		}
		else if(0 > cmpPcd)
		{
			return CHG_SBT_PCD_CHG;
		}
		return JZMBatConst.BLANK;
	}

	/**
	 * 入力電文からキーの値を取得し返却します。ブランクの場合は0にして返却します。
	 * @param inMap 入力電文
	 * @param key キー
	 * @return 取得値
	 */
	private String getInMapDataReplaceBlankToZero(JBSbatServiceInterfaceMap inMap, String key)
	{
		String rtn = getInMapData(inMap, key);
		if(JZMBatConst.SIX_ZERO.equals(rtn) || JZMBatConst.BLANK.equals(rtn))
		{
			rtn = JZMBatConst.ZERO;
		}
		return rtn;
	}


	/**
	 * 運用年月日を取得します。
	 * @return 運用年月日
	 */
	private String getOpeYMD()
	{
		return commonItem.getOpeDate();
	}
	
	/**
	 * 引数の翌日を取得します。
	 * @param ymd
	 * @return ymd+1
	 */
	private String getNextDay(String ymd)
	{
		return JZMBatCommon.addDay(ymd, 1);
	}

	/**
	 * 修正コードが"修正"かどうかを返します。
	 * @param shuseiCd 修正コード
	 * @return 判定値
	 */
	private boolean isAdChg(String shuseiCd)
	{
		return isThree(shuseiCd);
	}

	/**
	 * 入力電文のkeyに該当する値を取得します。
	 * @param inMap 
	 * @param key inMapのキー項目名
	 * @return 取得値
	 */
	private String getInMapData(JBSbatServiceInterfaceMap inMap, String key)
	{

		return JZMBatCommon.getInMapData(inMap, key);
	}

	/**
	 * 入力電文から町字コードを取得します。
	 * @param mastMap 入力電文
	 * @return 町字コード
	 */
	private String getChoAzaCd(JBSbatServiceInterfaceMap mastMap)
	{
		return JZMBatCommon.getInMapData(mastMap, JBSbatZMIFM013.CHO_AZA_CD);
	}

	/**
	 * 入力電文から住所コードを取得します。
	 * @param tranMap 入力電文
	 * @return 住所コード
	 */
	private String getAdCd(JBSbatServiceInterfaceMap tranMap)
	{
		return JZMBatCommon.getInMapData(tranMap, JBSbatZMIFM014.AD_CD);
	}

	/**
	 * 入力電文から補正データ種別を取得します。
	 * @param mastMap 入力電文
	 * @return 補正データ種別
	 */
	private String getHoseiDataSbt(JBSbatServiceInterfaceMap mastMap)
	{
		return JZMBatCommon.getInMapData(mastMap, JBSbatZMIFM013.HOSEI_DATA_SBT);
	}

	/**
	 * 入力電文から補正対象年月日を取得します。
	 * @param mastMap 入力電文
	 * @return 補正対象年月日
	 */
	private String getHoseiTgYmd(JBSbatServiceInterfaceMap mastMap)
	{
		return JZMBatCommon.getInMapData(mastMap, JBSbatZMIFM013.HOSEI_TG_YMD);
	}

	/**
	 * 入力電文から修正コードを取得します。
	 * @param mastMap 入力電文
	 * @return 修正コード
	 */
	private String getShuseiCd(JBSbatServiceInterfaceMap mastMap)
	{
		return JZMBatCommon.getInMapData(mastMap, JBSbatZMIFM013.SHUSEI_CD);
	}

	/**
	 * 入力電文から予約適用年月日を取得します。
	 * @param tranMap 入力電文
	 * @return 予約適用年月日
	 */
	private String getRsvAplyYmd(JBSbatServiceInterfaceMap tranMap)
	{
		return getInMapData(tranMap, JBSbatZMIFM014.RSV_APLY_YMD);
	}

	/**
	 * 入力電文から住所修正コードを取得します。
	 * @param tranMap 入力電文
	 * @return 住所修正コード
	 */
	private String getAdShuseiCd(JBSbatServiceInterfaceMap tranMap)
	{
		return getInMapData(tranMap, JBSbatZMIFM014.AD_SHUSEI_CD);
	}

	/**
	 * 補正対象年月日が存在するかどうかを返します
	 * @param hoseiTgYMD 補正対象年月日
	 * @return 補正対象年月日
	 * 
	 */
	private boolean getHasHoseiTagYmd(String hoseiTgYMD)
	{
		return !JZMBatConst.BLANK.equals(hoseiTgYMD);
	}

	/**
	 * 入力電文から住所適用開始年月日を取得します。
	 * @param tranMap 入力電文
	 * @return 住所適用開始年月日
	 */
	private String getTstaYmd(JBSbatServiceInterfaceMap tranMap)
	{
		return getInMapData(tranMap, JBSbatZMIFM014.AD_TSTAYMD);
	}

	/**
	 * 入力電文から住所適用終了年月日を取得します。
	 * @param tranMap 入力電文
	 * @return 住所適用終了年月日
	 */
	private String getTendYmd(JBSbatServiceInterfaceMap tranMap)
	{
		return JZMBatCommon.getInMapData(tranMap, JBSbatZMIFM014.AD_TENDYMD);
	}


	/**
	 * 引数が0かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isZero(String value)
	{
		return JZMBatConst.ZERO.equals(value);
	}


	/**
	 * 引数が1かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isOne(String value)
	{
		return JZMBatConst.ONE.equals(value);
	}


	/**
	 * 引数が3かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isThree(String value)
	{
		return JZMBatConst.THREE.equals(value);
	}


	/**
	 * 引数が5かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isFive(String value)
	{
		return JZMBatConst.FIVE.equals(value);
	}


	/**
	 * 引数が9かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isNine(String value)
	{
		return JZMBatConst.NINE.equals(value);
	}


	/**
	 * 修正コードが01かを判定します。
	 * @param value
	 * @return 判定結果
	 */
	private boolean isZeroOne(String value)
	{
		return JZMBatConst.ZERO_ONE.equals(value);
	}


	/**
	 * 引数が11かを判定します。
	 * @param value 判定値
	 * @return 判定結果
	 */
	private boolean isEleven(String value)
	{
		return JZMBatConst.ELEVEN.equals(value);
	}


	/**
	 * ファイル出力クラスを生成します。
	 * @param path ファイルパス
	 * @param fileName ファイル名
	 * @return ファイル出力クラス
	 * @throws Exception
	 */
	private JBSbatBusinessFileUtil getBusinessFileUtil(String path, String fileName) throws Exception
	{

		String outputFilePath = path + fileName;

		// ファイル出力クラス
		JBSbatBusinessFileUtil outputFile = JZMBatCommon.createBusinessFileUtil(outputFilePath,
				JZMBatConst.SJIS,
				JZMBatConst.CRLF,
				JZMBatConst.CONMA);
		return outputFile;
	}

	/**
	 * ファイル出力制御クラスのクローズ処理を行います。
	 * @param fileUtil
	 * @throws Exception 
	 */
	private void closeBusinessFileUtil(JBSbatBusinessFileUtil fileUtil) throws Exception
	{
		if(fileUtil != null)
		{
			fileUtil.close();
		}
	}


	/**
	 * 住所マスタ補正データ作成範囲を取得します。
	 * @throws Exception
	 */
	private void setAdMstSksiScope() throws Exception
	{

		String opeDate = commonItem.getOpeDate();
		String[] param = {opeDate, opeDate};
		executeZM_M_WORK_PARAM_KNRI_ZM_SELECT_003(param);

		JBSbatCommonDBInterface dbif = db_ZM_M_WORK_PARAM_KNRI.selectNext();

		String id = null;
		String val = null;
		while(dbif != null)
		{

			id = dbif.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_ID);
			val = dbif.getString(JBSbatZM_M_WORK_PARAM_KNRI.WORK_PARAM_SETTE_VALUE);
			if(ZM_AD_MST_SKSI_MIN.equals(id))
			{
				if(val.matches(REGEX_NUMBER_TWO))
				{
					mstDataSksiMin = Integer.parseInt(val);
				}
			}
			else if(ZM_AD_MST_SKSI_MAX.equals(id))
			{
				if(val.matches(REGEX_NUMBER_TWO))
				{
					mstDataSksiMax = Integer.parseInt(val);
				}
			}
			dbif = db_ZM_M_WORK_PARAM_KNRI.selectNext();
		}
	}

	/**
	 * 引数が住所マスタ補正データ作成範囲内かどうかを判定します。
	 * @param val 判定値
	 * @return 判定結果
	 */
	private boolean isScope(String val)
	{
		int target = 0;
		if(val.matches(REGEX_NUMBER_TWO))
		{
			target = Integer.parseInt(val);
		}
		else
		{
			return false;
		}

		return mstDataSksiMin <= target && target <= mstDataSksiMax;
	}

	/* ++++++++++ v1.0.0 追加終了 ++++++++++ */

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
		/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		/* ++++++++++ v1.0.0 追加開始 ++++++++++ */
		
		closeBusinessFileUtil(fileUtilAdd);
		closeBusinessFileUtil(fileUtilDel);
		closeBusinessFileUtil(fileUtilHosei);
		closeBusinessFileUtil(fileUtilRslt);
		closeBusinessFileUtil(fileUtilUpd);
		closeBusinessFileUtil(fileUtilErr);

		/* ++++++++++ v1.0.0 追加終了 ++++++++++ */
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_ZM_M_WORK_PARAM_KNRI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * @return mastProcFlg を戻します。
	 */
	public boolean isMastProcFlg()
	{
		return mastProcFlg;
	}

	/**
	 * @return matchProcFlg を戻します。
	 */
	public boolean isMatchProcFlg()
	{
		return matchProcFlg;
	}

	/**
	 * @return tranProcFlg を戻します。
	 */
	public boolean isTranProcFlg()
	{
		return tranProcFlg;
	}

	/**
	 * @param mast_ProcFlg 設定する mastProcFlg。
	 */
	public void setMastProcFlg(boolean mast_ProcFlg)
	{
		this.mastProcFlg = mast_ProcFlg;
	}

	/**
	 * @param match_ProcFlg 設定する matchProcFlg。
	 */
	public void setMatchProcFlg(boolean match_ProcFlg)
	{
		this.matchProcFlg = match_ProcFlg;
	}

	/**
	 * @param tran_ProcFlg 設定する tranProcFlg。
	 */
	public void setTranProcFlg(boolean tran_ProcFlg)
	{
		this.tranProcFlg = tran_ProcFlg;
	}

	/**
	 * SQLKEY(ZM_SELECT_003)で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_WORK_PARAM_KNRI_ZM_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZM_M_WORK_PARAM_KNRI.selectBySqlDefine(paramList, ZM_M_WORK_PARAM_KNRI_ZM_SELECT_003);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
