/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatZETKrkMsiDataMask
*	ソースファイル名	：JBSbatZETKrkMsiDataMask.java
*	作成者				：富士通　
*	作成日				：2012年08月23日
*＜機能概要＞
*　対応記録明細データマスク処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/08/23   富士通		新規作成
*	v4.00.01	2013/01/18   FJ)伊藤	【IT1-2013-0000083】マスク済データ格納用テーブル名変更
*	v6.00.00	2013/10/18   FJ)小林	【OM-2013-0003449】前回実行日を更新年月日の最大に変更
*	v6.00.00	2013/11/22   FJ)斉藤諭	【ANK-1637-00-00】対応記録明細にワークグループ追加対応
*********************************************************************/
package eo.business.service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JZEBatCommon;
import eo.business.util.table.JBSbatCR_MV_TAIOKRK_DTL;
import eo.common.constant.JZEStrConst;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatZETKrkMsiDataMask extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(対応記録明細)*/
	private static final String D_TBL_NAME_CR_MV_TAIOKRK_DTL = "CR_MV_TAIOKRK_DTL";

	/** テーブル(マスク設定)*/
	private static final String D_TBL_NAME_ZE_M_MASK_SETTE = "ZE_M_MASK_SETTE";

	/** テーブル(マスク条件)*/
	private static final String D_TBL_NAME_ZE_M_MASK_JKN = "ZE_M_MASK_JKN";

	/** テーブル(マスク処理実績)*/
	private static final String D_TBL_NAME_ZE_M_MASK_TRAN_JSK = "ZE_M_MASK_TRAN_JSK";

	/** テーブル(マスク済対応記録明細)*/
	private static final String D_TBL_NAME_ZE_T_MSKZM_TIOKR_DTL = "ZE_T_MSKZM_TIOKR_DTL";

	/** SQL定義キー(ZE_SELECT_001)*/
	private static final String CR_MV_TAIOKRK_DTL_ZE_SELECT_001 = "ZE_SELECT_001";

	/** SQL定義キー(ZE_SELECT_002)*/
	private static final String CR_MV_TAIOKRK_DTL_ZE_SELECT_002 = "ZE_SELECT_002";

	/** SQL定義キー(ZE_SELECT_003)*/
	private static final String CR_MV_TAIOKRK_DTL_ZE_SELECT_003 = "ZE_SELECT_003";

	/** SQL定義キー(ZE_SELECT_001)*/
	private static final String ZE_M_MASK_SETTE_ZE_SELECT_001 = "ZE_SELECT_001";

	/** SQL定義キー(ZE_SELECT_001)*/
	private static final String ZE_M_MASK_JKN_ZE_SELECT_001 = "ZE_SELECT_001";

	/** SQL定義キー(ZE_SELECT_01)*/
	private static final String ZE_M_MASK_TRAN_JSK_ZE_SELECT_01 = "ZE_SELECT_01";

	/** SQL定義キー(ZE_UPDATE_01)*/
	private static final String ZE_M_MASK_TRAN_JSK_ZE_UPDATE_01 = "ZE_UPDATE_01";

	/** SQL定義キー(ZE_INSERT_01)*/
	private static final String ZE_M_MASK_TRAN_JSK_ZE_INSERT_01 = "ZE_INSERT_01";

	/** SQL定義キー(ZE_DELETE_001)*/
	private static final String ZE_T_MSKZM_TIOKR_DTL_ZE_DELETE_001 = "ZE_DELETE_001";

	/** SQL定義キー(ZE_INSERT_001)*/
	private static final String ZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_001 = "ZE_INSERT_001";

	/** SQL定義キー(ZE_INSERT_002)*/
	private static final String ZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_002 = "ZE_INSERT_002";

	/** SQL定義キー(ZE_UPDATE_001)*/
	private static final String ZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_001 = "ZE_UPDATE_001";

	/** SQL定義キー(ZE_UPDATE_002)*/
	private static final String ZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_002 = "ZE_UPDATE_002";

	/** テーブルアクセスクラス(対応記録明細)*/
	private JBSbatSQLAccess db_CR_MV_TAIOKRK_DTL = null;

	/** テーブルアクセスクラス(マスク設定)*/
	private JBSbatSQLAccess db_ZE_M_MASK_SETTE = null;

	/** テーブルアクセスクラス(マスク条件)*/
	private JBSbatSQLAccess db_ZE_M_MASK_JKN = null;

	/** テーブルアクセスクラス(マスク処理実績)*/
	private JBSbatSQLAccess db_ZE_M_MASK_TRAN_JSK = null;

	/** テーブルアクセスクラス(マスク済対応記録明細)*/
	private JBSbatSQLAccess db_ZE_T_MSKZM_TIOKR_DTL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
	/** 定数定義 */
	/** SQL判別コード1 */
	private static final String INS_CD1  = "INS_CD1";

	/** SQL判別コード2 */
	private static final String INS_CD2  = "INS_CD2";

	/** SQL判別コード3 */
	private static final String UPD_CD1  = "UPD_CD1";

	/** SQL判別コード4 */
	private static final String UPD_CD2  = "UPD_CD2";

	/** SQL判別コード5 */
	private static final String DEL_CD  = "DEL_CD";

	/** 対応記録明細テーブル名 */
	private static final String CR_TKK_DTL_TBL_NM = "CR_T_TAIOKRK_DTL";

	/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
	/** 対応記録明細テーブル名 */
	private static final String ZE_T_MSKZM_TIOKR_DTL = "ZE_T_MSKZM_TIOKR_DTL";
	/* ++++++++++ v4.00.01 修正終了 ++++++++++ */

	/** 当日日付YMD */
	private String toDateYMD = null;

	/** 当日日付DTM */
	private String toDateDTM = null;

	/** 前回処理日付DTM */
	private String trnDTM = null;

	/** 更新年月日の最大DTM */
	private String maxUpdDTM = null;

	/** マスク条件格納リスト */
	private ArrayList<ArrayList<String>> maskJknList = null;

	/** マスク設定格納リスト */
	private ArrayList<ArrayList<String>> maskSetteiList = null;

	/** 対応記録マスク条件マップ */
	Map<String, Object> maskJknMap = null;

	/** 対応記録マスク対象項目セット*/
	private HashSet<String> maskKoumokuSet = null;

	/** 処理対象件数 */
	private int sumDataCnt = 0;
	/* ++++++++++ v4.0.0 追加終了 ++++++++++ */

	/* ++++++++++ v4.00.02 追加開始 ++++++++++ */
	/** 処理中のレコードの対応記録番号 */
	private String excTaioKrkNo = null;

	/** 処理中のレコードの対応記録明細番号 */
	private String excTaioKrkMsiNo = null;
	/* ++++++++++ v4.00.02 追加終了 ++++++++++ */

	/** 処理対象件数 */
	private int ins1TargetCnt = 0;
	/** 処理対象件数 */
	private int ins2TargetCnt = 0;
	/** 処理対象件数 */
	private int upd1TargetCnt = 0;
	/** 処理対象件数 */
	private int upd2TargetCnt = 0;
	/** 処理対象件数 */
	private int delTargetCnt = 0;

	/** 処理件数 */
	private int ins1Cnt = 0;
	/** 処理件数 */
	private int ins2Cnt = 0;
	/** 処理件数 */
	private int upd1Cnt = 0;
	/** 処理件数 */
	private int upd2Cnt = 0;
	/** 処理件数 */
	private int delCnt = 0;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CR_MV_TAIOKRK_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CR_MV_TAIOKRK_DTL);
		db_ZE_M_MASK_SETTE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZE_M_MASK_SETTE);
		db_ZE_M_MASK_JKN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZE_M_MASK_JKN);
		db_ZE_M_MASK_TRAN_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZE_M_MASK_TRAN_JSK);
		db_ZE_T_MSKZM_TIOKR_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZE_T_MSKZM_TIOKR_DTL);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
		commonItem.getLogPrint().printDebugLog("処理開始：対応記録明細データマスク処理");

		toDateYMD = JCCBatCommon.getSysDate();
		toDateDTM = JCCBatCommon.getSysDateTimeStamp();
		setMaskJknList();
		setMaskSetteiList();

		executeZE_M_MASK_TRAN_JSK_ZE_SELECT_01(new String[]{ZE_T_MSKZM_TIOKR_DTL});
		JBSbatCommonDBInterface jcb = db_ZE_M_MASK_TRAN_JSK.selectNext();
		if (jcb != null)
		{
			trnDTM = jcb.getString("MASK_TRN_DTM");
		} else {
			Calendar cal = Calendar.getInstance();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
			cal.setTime(sdf.parse(toDateYMD));
			cal.add(Calendar.DAY_OF_MONTH, -1);
			trnDTM = sdf.format(cal.getTime()) + toDateDTM.substring(8);
		}

		maskJknMap = JZEBatCommon.maskJokenSeisa(commonItem, maskJknList);
		setMaskKoumoku(maskSetteiList);

		try
		{
			setMaskDataMap();
			
			sumDataCnt = ins1TargetCnt + ins2TargetCnt + upd1TargetCnt + upd2TargetCnt + delTargetCnt;
			
			commonItem.getLogPrint().printDebugLog("");
			commonItem.getLogPrint().printDebugLog("■処理対象データ合計件数　　　　　　：" + sumDataCnt + "件");
			if (sumDataCnt == 0)
			{
				// 処理対象データ合計件数が0の場合、実績が更新されない
				return null;
			}
			
			commonItem.getLogPrint().printDebugLog("　・登録対象データ件数　　　　　　　：" + ins1TargetCnt + "件");
			commonItem.getLogPrint().printDebugLog("　・登録(論理削除済)対象データ件数　：" + ins2TargetCnt + "件");
			commonItem.getLogPrint().printDebugLog("　・更新対象データ件数　　　　　　　：" + upd1TargetCnt + "件");
			commonItem.getLogPrint().printDebugLog("　・論理削除対象データ件数　　　　　：" + upd2TargetCnt + "件");
			commonItem.getLogPrint().printDebugLog("　・物理削除対象データ件数　　　　　：" + delTargetCnt + "件");

			sumDataCnt = ins1Cnt + ins2Cnt + upd1Cnt + upd2Cnt + delCnt;

			commonItem.getLogPrint().printDebugLog("");
			commonItem.getLogPrint().printDebugLog("■反映データ合計件数　　　　　　　　：" + sumDataCnt + "件");
			commonItem.getLogPrint().printDebugLog("　・登録処理データ件数　　　　　　　：" + ins1Cnt + "件");
			commonItem.getLogPrint().printDebugLog("　・登録(論理削除済)処理データ件数　：" + ins2Cnt + "件");
			commonItem.getLogPrint().printDebugLog("　・更新処理データ件数　　　　　　　：" + upd1Cnt + "件");
			commonItem.getLogPrint().printDebugLog("　・論理削除処理データ件数　　　　　：" + upd2Cnt + "件");
			commonItem.getLogPrint().printDebugLog("　・物理削除処理データ件数　　　　　：" + delCnt + "件");
		}
		/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
		catch (Exception ex)
		{
			commonItem.getLogPrint().printBusinessErrorLog("EZEB0130KW", new String[]{"テーブル名：マスク済対応記録明細　対応記録番号："
					+ excTaioKrkNo + "　対応記録明細番号：" + excTaioKrkMsiNo});
			throw ex;
		}
		
		executeZE_M_MASK_TRAN_JSK_ZE_SELECT_01(new String[]{ZE_T_MSKZM_TIOKR_DTL});
		if (jcb != null)
		{
			executeZE_M_MASK_TRAN_JSK_ZE_UPDATE_01(new String[]{maxUpdDTM, ZE_T_MSKZM_TIOKR_DTL});
		}
		else
		{
			executeZE_M_MASK_TRAN_JSK_ZE_INSERT_01(new String[]{ZE_T_MSKZM_TIOKR_DTL, maxUpdDTM});
		}
		/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
		/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CR_MV_TAIOKRK_DTL.close();
		db_ZE_M_MASK_SETTE.close();
		db_ZE_M_MASK_JKN.close();
		db_ZE_M_MASK_TRAN_JSK.close();
		db_ZE_T_MSKZM_TIOKR_DTL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		/* ++++++++++ v4.0.0 追加開始 ++++++++++ */
		commonItem.getLogPrint().printDebugLog("処理終了：対応記録明細データマスク処理");
		/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(ZE_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 executeCR_MV_TAIOKRK_DTL_ZE_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CR_MV_TAIOKRK_DTL.selectBySqlDefine(paramList, CR_MV_TAIOKRK_DTL_ZE_SELECT_001);
	}

	/**
	 * SQLKEY(ZE_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCR_MV_TAIOKRK_DTL_ZE_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_CR_MV_TAIOKRK_DTL.selectBySqlDefine(paramList, CR_MV_TAIOKRK_DTL_ZE_SELECT_002);
	}

	/**
	 * SQLKEY(ZE_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 executeCR_MV_TAIOKRK_DTL_ZE_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_CR_MV_TAIOKRK_DTL.selectBySqlDefine(paramList, CR_MV_TAIOKRK_DTL_ZE_SELECT_003);
	}

	/**
	 * SQLKEY(ZE_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 executeZE_M_MASK_SETTE_ZE_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZE_M_MASK_SETTE.selectBySqlDefine(paramList, ZE_M_MASK_SETTE_ZE_SELECT_001);
	}

	/**
	 * SQLKEY(ZE_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 executeZE_M_MASK_JKN_ZE_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// DBアクセスを実行します
		db_ZE_M_MASK_JKN.selectBySqlDefine(paramList, ZE_M_MASK_JKN_ZE_SELECT_001);
	}

	/**
	 * SQLKEY(ZE_SELECT_01)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	マスク対象スキーマ名
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_M_MASK_TRAN_JSK_ZE_SELECT_01(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_ZE_M_MASK_TRAN_JSK.selectBySqlDefine(paramList, ZE_M_MASK_TRAN_JSK_ZE_SELECT_01);
	}

	/**
	 * SQLKEY(ZE_UPDATE_01)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	マスク処理年月日時分秒
	 *		 	マスク対象スキーマ名
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_M_MASK_TRAN_JSK_ZE_UPDATE_01(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZE_M_MASK_TRAN_JSK.executeBySqlDefine(paramList, ZE_M_MASK_TRAN_JSK_ZE_UPDATE_01);
	}

	/**
	 * SQLKEY(ZE_INSERT_01)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	マスク対象スキーマ名
	 *		 	マスク処理年月日時分秒
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_M_MASK_TRAN_JSK_ZE_INSERT_01(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_ZE_M_MASK_TRAN_JSK.executeBySqlDefine(paramList, ZE_M_MASK_TRAN_JSK_ZE_INSERT_01);
	}

	/**
	 * SQLKEY(ZE_DELETE_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 executeZE_T_MSKZM_TIOKR_DTL_ZE_DELETE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		delCnt += db_ZE_T_MSKZM_TIOKR_DTL.executeBySqlDefine(paramList, ZE_T_MSKZM_TIOKR_DTL_ZE_DELETE_001);
	}

	/**
	 * SQLKEY(ZE_INSERT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	対応記録番号
	 *		 	対応記録明細番号
	 *		 	アクションタイプコード
	 *		 	アクション開始年月日時分秒
	 *		 	アクション完了年月日時分秒
	 *		 	対応ユーザーID
	 *		 	問合せ内容
	 *		 	問合せ元名
	 *		 	回答内容
	 *		 	コンタクト先コード
	 *		 	メモ内容
	 *		 	メモタイプコード
	 *		 	編集状態フラグ
	 *		 	メール受信番号
	 *		 	メールヘッダー内タイトル
	 *		 	メールヘッダー内送信者メールアドレス
	 *		 	メールヘッダー内宛先メールアドレス
	 *		 	メールヘッダー内CCメールアドレス
	 *		 	メールヘッダー内メッセージID
	 *		 	メールヘッダー内送信年月日時分秒
	 *		 	メールヘッダー内受信年月日時分秒
	 *		 	メール送信番号
	 *		 	メールタイトル
	 *		 	メール受信本文
	 *		 	元メールアドレス
	 *		 	メールヘッダー
	 *		 	メールフッター
	 *		 	メール本文
	 *		 	送信先メールアドレス
	 *		 	送信元メールアドレス
	 *		 	CCメールアドレス
	 *		 	送信メールタイプコード
	 *		 	メール送信年月日時分秒
	 *		 	送信ユーザーID
	 *		 	送信状態コード
	 *		 	返信転送記号コード
	 *		 	登録年月日時分秒
	 *		 	登録オペレータアカウント
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	業務個別設定組織コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_T_MSKZM_TIOKR_DTL_ZE_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());

		// DBアクセスを実行します
		ins1Cnt += db_ZE_T_MSKZM_TIOKR_DTL.executeBySqlDefine(paramList, ZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_001);
	}

	/**
	 * SQLKEY(ZE_INSERT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	対応記録番号
	 *		 	対応記録明細番号
	 *		 	アクションタイプコード
	 *		 	アクション開始年月日時分秒
	 *		 	アクション完了年月日時分秒
	 *		 	対応ユーザーID
	 *		 	問合せ内容
	 *		 	問合せ元名
	 *		 	回答内容
	 *		 	コンタクト先コード
	 *		 	メモ内容
	 *		 	メモタイプコード
	 *		 	編集状態フラグ
	 *		 	メール受信番号
	 *		 	メールヘッダー内タイトル
	 *		 	メールヘッダー内送信者メールアドレス
	 *		 	メールヘッダー内宛先メールアドレス
	 *		 	メールヘッダー内CCメールアドレス
	 *		 	メールヘッダー内メッセージID
	 *		 	メールヘッダー内送信年月日時分秒
	 *		 	メールヘッダー内受信年月日時分秒
	 *		 	メール送信番号
	 *		 	メールタイトル
	 *		 	メール受信本文
	 *		 	元メールアドレス
	 *		 	メールヘッダー
	 *		 	メールフッター
	 *		 	メール本文
	 *		 	送信先メールアドレス
	 *		 	送信元メールアドレス
	 *		 	CCメールアドレス
	 *		 	送信メールタイプコード
	 *		 	メール送信年月日時分秒
	 *		 	送信ユーザーID
	 *		 	送信状態コード
	 *		 	返信転送記号コード
	 *		 	登録年月日時分秒
	 *		 	登録オペレータアカウント
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	削除年月日時分秒
	 *		 	削除オペレータアカウント
	 *		 	業務個別設定組織コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_002(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());

		// DBアクセスを実行します
		ins2Cnt += db_ZE_T_MSKZM_TIOKR_DTL.executeBySqlDefine(paramList, ZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_002);
	}

	/**
	 * SQLKEY(ZE_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	アクションタイプコード
	 *		 	アクション開始年月日時分秒
	 *		 	アクション完了年月日時分秒
	 *		 	対応ユーザーID
	 *		 	問合せ内容
	 *		 	問合せ元名
	 *		 	回答内容
	 *		 	コンタクト先コード
	 *		 	メモ内容
	 *		 	メモタイプコード
	 *		 	編集状態フラグ
	 *		 	メール受信番号
	 *		 	メールヘッダー内タイトル
	 *		 	メールヘッダー内送信者メールアドレス
	 *		 	メールヘッダー内宛先メールアドレス
	 *		 	メールヘッダー内CCメールアドレス
	 *		 	メールヘッダー内メッセージID
	 *		 	メールヘッダー内送信年月日時分秒
	 *		 	メールヘッダー内受信年月日時分秒
	 *		 	メール送信番号
	 *		 	メールタイトル
	 *		 	メール受信本文
	 *		 	元メールアドレス
	 *		 	メールヘッダー
	 *		 	メールフッター
	 *		 	メール本文
	 *		 	送信先メールアドレス
	 *		 	送信元メールアドレス
	 *		 	CCメールアドレス
	 *		 	送信メールタイプコード
	 *		 	メール送信年月日時分秒
	 *		 	送信ユーザーID
	 *		 	送信状態コード
	 *		 	返信転送記号コード
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	業務個別設定組織コード
	 *		 	対応記録番号
	 *		 	対応記録明細番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_T_MSKZM_TIOKR_DTL_ZE_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());
		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());

		// DBアクセスを実行します
		upd1Cnt += db_ZE_T_MSKZM_TIOKR_DTL.executeBySqlDefine(paramList, ZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_001);
	}

	/**
	 * SQLKEY(ZE_UPDATE_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	アクションタイプコード
	 *		 	アクション開始年月日時分秒
	 *		 	アクション完了年月日時分秒
	 *		 	対応ユーザーID
	 *		 	問合せ内容
	 *		 	問合せ元名
	 *		 	回答内容
	 *		 	コンタクト先コード
	 *		 	メモ内容
	 *		 	メモタイプコード
	 *		 	編集状態フラグ
	 *		 	メール受信番号
	 *		 	メールヘッダー内タイトル
	 *		 	メールヘッダー内送信者メールアドレス
	 *		 	メールヘッダー内宛先メールアドレス
	 *		 	メールヘッダー内CCメールアドレス
	 *		 	メールヘッダー内メッセージID
	 *		 	メールヘッダー内送信年月日時分秒
	 *		 	メールヘッダー内受信年月日時分秒
	 *		 	メール送信番号
	 *		 	メールタイトル
	 *		 	メール受信本文
	 *		 	元メールアドレス
	 *		 	メールヘッダー
	 *		 	メールフッター
	 *		 	メール本文
	 *		 	送信先メールアドレス
	 *		 	送信元メールアドレス
	 *		 	CCメールアドレス
	 *		 	送信メールタイプコード
	 *		 	メール送信年月日時分秒
	 *		 	送信ユーザーID
	 *		 	送信状態コード
	 *		 	返信転送記号コード
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	削除年月日時分秒
	 *		 	削除オペレータアカウント
	 *		 	業務個別設定組織コード
	 *		 	対応記録番号
	 *		 	対応記録明細番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_002(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());

		// DBアクセスを実行します
		upd2Cnt += db_ZE_T_MSKZM_TIOKR_DTL.executeBySqlDefine(paramList, ZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_002);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/* ++++++++++ v4.0.0 追加開始 ++++++++++ */

	/**
	 * マスク条件リストを設定する。<br>
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setMaskJknList() throws Exception
	{
		ArrayList<String> recList = null;
		maskJknList = new ArrayList<ArrayList<String>>();

		executeZE_M_MASK_JKN_ZE_SELECT_001(new String[]{});
		JBSbatCommonDBInterface rs = db_ZE_M_MASK_JKN.selectNext();

		while (rs != null)
		{
			recList = new ArrayList<String>();

			recList.add(rs.getString("MASK_SBT_CD"));
			recList.add(rs.getString("SEARCH_CHR"));
			recList.add(rs.getString("MASK_HOKO_SKBT_CD"));
			recList.add(rs.getString("ZENKAKU_CKAN_MOJI"));
			recList.add(rs.getString("HANKAKU_CKAN_MOJI"));
			recList.add(rs.getString("MASK_CKAN_JGI_CHR"));
			recList.add(rs.getString("MASK_KENSAKU_JGI_CHR"));
			recList.add(rs.getString("MASK_JGI_CHR"));
			recList.add(rs.getString("MASK_TRGT_MOJI_CNT"));
			recList.add(rs.getString("YUSEN_JUN_CD"));

			maskJknList.add(recList);
			rs = db_ZE_M_MASK_JKN.selectNext();
		}
	}

	/**
	 * マスク設定リストを設定する。<br>
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setMaskSetteiList() throws Exception
	{
		ArrayList<String> recList = null;
		maskSetteiList = new ArrayList<ArrayList<String>>();

		executeZE_M_MASK_SETTE_ZE_SELECT_001(new String[]{CR_TKK_DTL_TBL_NM, toDateYMD, toDateYMD});
		JBSbatCommonDBInterface rs = db_ZE_M_MASK_SETTE.selectNext();

		while (rs != null)
		{
			recList = new ArrayList<String>();

			recList.add(rs.getString("MASK_TG_KMK_NM"));
			maskSetteiList.add(recList);
			rs = db_ZE_M_MASK_SETTE.selectNext();
		}
	}

	/**
	 * 対応記録明細マスク対象項目設定処理
	 * 
	 * 対応記録明細マスク対象項目をMapSetに設定する
	 * また、マスク制限項目がある場合には業務エラーとする。
	 * 
	 * @param maskKoumokuList マスク項目リスト
	 * @throws Exception 例外
	 */
	private void setMaskKoumoku(List<ArrayList<String>> maskKoumokuList) throws Exception
	{
		String koumokuName = null;
		maskKoumokuSet = new HashSet<String>();

		// 項目ワークリスト
		List<String> koumokuWorkList = new ArrayList<String>();
		for(int i = 0;  i < maskKoumokuList.size(); i++)
		{
			koumokuWorkList = maskKoumokuList.get(i);
			
			// マスク項目ログ出力
			for(int j = 0; j < koumokuWorkList.size(); j++)
			{
				koumokuName = koumokuWorkList.get(j);
				super.logPrint.printDebugLog("マスク対象項目" + (i + 1) + "項目:" + koumokuName);
				
				// マスク対象項目をMapSetに設定する
				maskKoumokuSet.add(koumokuName);
			}
		}
	}

	/**
	 * 対応記録明細データ設定
	 * @param inMap 対応記録明細データ
	 * @param sqlCd 登録内容判別コード
	 * @return JBSbatServiceInterfaceMap マスク済み対応記録テーブルのデータを格納したマップ
	 * @throws Exception
	 */
	public ArrayList<String> setInsTaioKrkDtlData(JBSbatServiceInterfaceMap inMap, String sqlCd) throws Exception
	{
		ArrayList<String> paramList = new ArrayList<String>();
		
		String taiokrkData = "";

		if (INS_CD1.equals(sqlCd) || INS_CD2.equals(sqlCd))
		{
			// 対応記録番号
			if (maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO))
			{
				// マスク対象項目の場合
				taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
						commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO)));
				paramList.add(taiokrkData);
			}
			else
			{
				// マスク対象項目で無い場合
				paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO)));
			}

			// 対応記録明細番号
			if (maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO))
			{
				taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
						commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_DTL_NO)));
				paramList.add(taiokrkData);

			}
			else
			{
				// マスク対象項目で無い場合
				paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_DTL_NO)));
			}
		}

		// アクションタイプコード ACTION_TYPE_CD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ACTION_TYPE_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_TYPE_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_TYPE_CD)));
		}
		
		// アクション開始年月日時分秒 ACTION_STA_DTM
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ACTION_STA_DTM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_STA_DTM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_STA_DTM)));
		}
		
		// アクション完了年月日時分秒 ACTION_FIN_DTM
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ACTION_FIN_DTM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_FIN_DTM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ACTION_FIN_DTM)));
		}
		
		// 対応ユーザー ID TAIO_USER_ID
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.TAIO_USER_ID))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_USER_ID)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_USER_ID)));
		}
		
		// 問合せ内容 TOIAWASE_NAIYO
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_NAIYO))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_NAIYO)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_NAIYO)));
		}
		
		// 問合せ元名 TOIAWASE_MOTO_NM
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_MOTO_NM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_MOTO_NM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TOIAWASE_MOTO_NM)));
		}
		
		// 回答内容 ANS_NAIYO
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ANS_NAIYO))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ANS_NAIYO)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ANS_NAIYO)));
		}
		
		// コンタクト先コード CONTACT_SAKI_CD 
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.CONTACT_SAKI_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.CONTACT_SAKI_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.CONTACT_SAKI_CD)));
		}
		
		// メモ内容 MEMO_NAIYO
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MEMO_NAIYO))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MEMO_NAIYO)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MEMO_NAIYO)));
		}
		
		// メモタイプコード MEMO_TYPE_CD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MEMO_TYPE_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MEMO_TYPE_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MEMO_TYPE_CD)));
		}
		
		// 編集状態フラグ HENSHU_STAT_FLG
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.HENSHU_STAT_FLG))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.HENSHU_STAT_FLG)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.HENSHU_STAT_FLG)));
		}
		
		// メール受信番号 MAIL_RCV_NO
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_RCV_NO))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_RCV_NO)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_RCV_NO)));
		}
		
		// メールヘッダー内タイトル ML_HEADER_NAI_TITLE
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_TITLE))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_TITLE)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_TITLE)));
		}
		
		// メールヘッダー内送信者メールアドレス ML_HEADER_NAI_SENDER_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_SENDER_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_SENDER_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_SENDER_MLAD)));
		}
		
		// メールヘッダー内宛先メールアドレス ML_HEADER_NAI_AD_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_AD_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_AD_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_AD_MLAD)));
		}
		
		// メールヘッダー内CCメールアドレス ML_HEADER_NAI_CC_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_CC_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_CC_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_HEADER_NAI_CC_MLAD)));
		}
		
		// メールヘッダー内メッセージID MAIL_HEADER_NAI_MSG_ID
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_MSG_ID))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_MSG_ID)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_MSG_ID)));
		}
		
		// メールヘッダー内送信年月日時分秒 MAIL_HEADER_NAI_SEND_DTM 20
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_SEND_DTM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_SEND_DTM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_SEND_DTM)));
		}
		
		// メールヘッダー内受信年月日時分秒 MAIL_HEADER_NAI_RCV_DTM
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_RCV_DTM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_RCV_DTM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER_NAI_RCV_DTM)));
		}
		
		// メール送信番号 MAIL_SEND_NO
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_NO))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_NO)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_NO)));
		}
		
		// メールタイトル MAIL_TITLE
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TITLE))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TITLE)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TITLE)));
		}
		
		// メール受信本文 ML_RCV_TEXT
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.ML_RCV_TEXT))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_RCV_TEXT)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ML_RCV_TEXT)));
		}
		
		// 元メールアドレス MOTO_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MOTO_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MOTO_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MOTO_MLAD)));
		}
		
		// メールヘッダー MAIL_HEADER
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_HEADER)));
		}
		
		// メールフッター MAIL_FOOTER
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_FOOTER))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_FOOTER)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_FOOTER)));
		}
		
		// メール本文 MAIL_TEXT
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TEXT))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TEXT)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_TEXT)));
		}
		
		// 送信先メールアドレス SENDS_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.SENDS_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SENDS_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SENDS_MLAD)));
		}
		
		// 送信元メールアドレス SENDM_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.SENDM_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SENDM_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SENDM_MLAD)));
		}
		
		// CCメールアドレス CC_MLAD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.CC_MLAD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.CC_MLAD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.CC_MLAD)));
		}
		
		// 送信メールタイプコード SEND_MAIL_TYPE_CD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.SEND_MAIL_TYPE_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_MAIL_TYPE_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_MAIL_TYPE_CD)));
		}
		
		// メール送信年月日時分秒 MAIL_SEND_DTM
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_DTM))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_DTM)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.MAIL_SEND_DTM)));
		}
		
		// 送信ユーザーID SEND_USER_ID
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.SEND_USER_ID))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_USER_ID)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_USER_ID)));
		}
		
		// 送信状態コード SEND_STAT_CD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.SEND_STAT_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_STAT_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.SEND_STAT_CD)));
		}
		
		// 返信転送記号コード HNSIN_TENSO_SYMBOL_CD
		if(maskKoumokuSet.contains(JBSbatCR_MV_TAIOKRK_DTL.HNSIN_TENSO_SYMBOL_CD))
		{
			// マスク対象項目の場合
			taiokrkData = JZEBatCommon.nullToBlank(taioKrkDtlMaskMain(
					commonItem, inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.HNSIN_TENSO_SYMBOL_CD)));
			paramList.add(taiokrkData);

		}
		else
		{
			// マスク対象項目で無い場合
			paramList.add(
					JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.HNSIN_TENSO_SYMBOL_CD)));
		}

		if (INS_CD1.equals(sqlCd) || INS_CD2.equals(sqlCd))
		{
			// 登録年月日時分秒
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ADD_DTM)));
	
			// 登録オペレータアカウント
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.ADD_OPEACNT)));
		}

		// 更新年月日時分秒
		paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.UPD_DTM)));

		// 更新オペレータアカウント
		paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.UPD_OPEACNT)));

		if (INS_CD2.equals(sqlCd) || UPD_CD2.equals(sqlCd))
		{
			// 削除年月日時分秒
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.DEL_DTM)));
	
			// 削除オペレータアカウント
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.DEL_OPEACNT)));
		}

		// 業務個別設定組織コード
		paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.WKKBT_ORG_CD)));

		if (UPD_CD1.equals(sqlCd) || UPD_CD2.equals(sqlCd))
		{
			// 対応記録番号
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO)));
			paramList.add(JZEBatCommon.nullToBlank(inMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_DTL_NO)));
		}

		return paramList;
	}

	/**
	 * 対応記録明細マスクメイン処理
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKrkData 対応記録明細データ
	 * @return マスク済み対応記録明細データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private String taioKrkDtlMaskMain(JBSbatCommonItem commonItem, String taioKrkData) throws Exception
	{
		List<Map<String, Object>> kensakuMojiList = (List<Map<String, Object>>)maskJknMap.get(JZEStrConst.ZE_MASK_KBN_KENSAKUMOJI);
		List<Map<String, Object>> mailAddressList = (List<Map<String, Object>>)maskJknMap.get(JZEStrConst.ZE_MASK_KBN_MAILADDRESS);
		List<Map<String, Object>> telList = (List<Map<String, Object>>)maskJknMap.get(JZEStrConst.ZE_MASK_KBN_TEL);
		String maskLineData = taioKrkData;
		
		try
		{
			// 検索文字マスク処理
			maskLineData = JZEBatCommon.maskKensakuMoji(commonItem, maskLineData, kensakuMojiList);
			
			// 電話番号マスク処理
			maskLineData = JZEBatCommon.maskTelNamber(commonItem, maskLineData, telList);
			
			// メールアドレスマスク処理
			maskLineData = JZEBatCommon.maskMailAddress(commonItem, maskLineData, mailAddressList);
		}
		catch(JBSbatBusinessException ex)
		{
			throw ex;
		}
		return maskLineData;
	}

	/**
	 * マスク対象データを設定する。<br>
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void setMaskDataMap() throws Exception
	{
		executeCR_MV_TAIOKRK_DTL_ZE_SELECT_001(new String[]{trnDTM});
		
		JBSbatCommonDBInterface rs = db_CR_MV_TAIOKRK_DTL.selectNext();
		JBSbatServiceInterfaceMap siMap = null;

		while (rs != null)
		{
			siMap = new JBSbatServiceInterfaceMap();
			siMap.setMap(rs.getMap());
			if (isInsData(rs.getString("ADD_DTM")))
			{
				if (rs.getString("MK_FLG").equals("0"))
				{
					execDataMaskRef(siMap, INS_CD1);
				}
				else
				{
					execDataMaskRef(siMap, INS_CD2);
				}
				
			}
			else
			{
				if (rs.getString("MK_FLG").equals("0"))
				{
					execDataMaskRef(siMap, UPD_CD1);
				}
				else
				{
					execDataMaskRef(siMap, UPD_CD2);
				}
			}

			rs = db_CR_MV_TAIOKRK_DTL.selectNext();
		}

		executeCR_MV_TAIOKRK_DTL_ZE_SELECT_002(new String[]{});
		rs = db_CR_MV_TAIOKRK_DTL.selectNext();
		siMap = null;
		while (rs != null)
		{
			siMap = new JBSbatServiceInterfaceMap();
			siMap.setMap(rs.getMap());
			execDataMaskRef(siMap, DEL_CD);
			rs = db_CR_MV_TAIOKRK_DTL.selectNext();
		}

		executeCR_MV_TAIOKRK_DTL_ZE_SELECT_003(new String[]{});
		JBSbatCommonDBInterface jcb = db_CR_MV_TAIOKRK_DTL.selectNext();
		if (jcb != null)
		{
			maxUpdDTM = jcb.getString("MAX_UPD_DTM");
		}
	}

	/**
	 * マスク済みテーブルに対してデータを反映する。<br>
	 * 
	 * @param siMap データマップ
	 * @param sqlCd 対象SQL判別コード
	 * @return 処理件数
	 *
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int execDataMaskRef(JBSbatServiceInterfaceMap siMap, String sqlCd) throws Exception
	{
		int execCnt = 0;
		ArrayList<String> paramList = null;

		excTaioKrkNo = siMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_NO);
		excTaioKrkMsiNo = siMap.getString(JBSbatCR_MV_TAIOKRK_DTL.TAIO_KIROK_DTL_NO);
		
		if (INS_CD1.equals(sqlCd))
		{
			paramList = setInsTaioKrkDtlData(siMap, sqlCd);

			executeZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_001(paramList.toArray());

			ins1TargetCnt++;
		}
		else if (INS_CD2.equals(sqlCd))
		{
			paramList = setInsTaioKrkDtlData(siMap, sqlCd);

			executeZE_T_MSKZM_TIOKR_DTL_ZE_INSERT_002(paramList.toArray());

			ins2TargetCnt++;
		}
		else if (UPD_CD1.equals(sqlCd))
		{
			paramList = setInsTaioKrkDtlData(siMap, sqlCd);

			executeZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_001(paramList.toArray());

			upd1TargetCnt++;
		}
		else if (UPD_CD2.equals(sqlCd))
		{
			paramList = setInsTaioKrkDtlData(siMap, sqlCd);

			executeZE_T_MSKZM_TIOKR_DTL_ZE_UPDATE_002(paramList.toArray());

			upd2TargetCnt++;
		}
		else if (DEL_CD.equals(sqlCd))
		{
			executeZE_T_MSKZM_TIOKR_DTL_ZE_DELETE_001(new String[]{excTaioKrkNo, excTaioKrkMsiNo});

			delTargetCnt++;
		}

		return execCnt;
	}

	/**
	 * 登録対象のデータがどうかを判断する。<br>
	 * 
	 * @param insDtm 更新年月日時分秒
	 * @return 登録対象判定結果
	 *
	 */
	private boolean isInsData(String insDtm)
	{
		if (Long.parseLong(insDtm) - Long.parseLong(trnDTM) <= 0)
		{
			return false;
		}
		return true;
	}
	/* ++++++++++ v4.0.0 追加終了 ++++++++++ */
}
