/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatDKSavePrdDataDel
*	ソースファイル名	：JBSbatDKSavePrdDataDel.java
*	作成者				：富士通　
*	作成日				：2011年09月20日
*＜機能概要＞
*　保存経過データ削除（機器）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/20   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JDKBatOutputFileUtil;
import eo.business.util.file.JBSbatDKIFM013001;
import eo.business.util.file.JBSbatDKIFM013002;
import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.file.JBSbatOutputFileUtil;
import eo.framework.util.JBSbatAplConst;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatDKSavePrdDataDel extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(予備機器配送)*/
	private static final String D_TBL_NAME_DK_T_YBKIKI_HAISO = "DK_T_YBKIKI_HAISO";

	/** テーブル(予備機器配送内訳)*/
	private static final String D_TBL_NAME_DK_T_YBKKHAI_UCWK = "DK_T_YBKKHAI_UCWK";

	/** テーブル(予備機器配送対象物品)*/
	private static final String D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN = "DK_T_YBKKHAI_TG_BPIN";

	/** テーブル(倉庫棚移動)*/
	private static final String D_TBL_NAME_DK_T_SOKODNA_MOVE = "DK_T_SOKODNA_MOVE";

	/** テーブル(倉庫棚移動内訳)*/
	private static final String D_TBL_NAME_DK_T_SDNAMV_UCWK = "DK_T_SDNAMV_UCWK";

	/** テーブル(倉庫棚移動対象機器)*/
	private static final String D_TBL_NAME_DK_T_SDNAMV_TG_KIKI = "DK_T_SDNAMV_TG_KIKI";

	/** テーブル(発注)*/
	private static final String D_TBL_NAME_DK_T_HATTCHU = "DK_T_HATTCHU";

	/** テーブル(発注明細)*/
	private static final String D_TBL_NAME_DK_T_HATTCHU_DTL = "DK_T_HATTCHU_DTL";

	/** テーブル(入荷)*/
	private static final String D_TBL_NAME_DK_T_NYUKA = "DK_T_NYUKA";

	/** テーブル(入荷明細)*/
	private static final String D_TBL_NAME_DK_T_NYUKA_DTL = "DK_T_NYUKA_DTL";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_YBKKHAI_UCWK_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_YBKKHAI_TG_BPIN_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_SDNAMV_UCWK_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_SDNAMV_TG_KIKI_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_HATTCHU_DTL_DK_SELECT_001 = "DK_SELECT_001";

	/** SQL定義キー(DK_SELECT_001)*/
	private static final String DK_T_NYUKA_DTL_DK_SELECT_001 = "DK_SELECT_001";

	/** テーブルアクセスクラス(予備機器配送)*/
	private JBSbatSQLAccess db_DK_T_YBKIKI_HAISO = null;

	/** テーブルアクセスクラス(予備機器配送内訳)*/
	private JBSbatSQLAccess db_DK_T_YBKKHAI_UCWK = null;

	/** テーブルアクセスクラス(予備機器配送対象物品)*/
	private JBSbatSQLAccess db_DK_T_YBKKHAI_TG_BPIN = null;

	/** テーブルアクセスクラス(倉庫棚移動)*/
	private JBSbatSQLAccess db_DK_T_SOKODNA_MOVE = null;

	/** テーブルアクセスクラス(倉庫棚移動内訳)*/
	private JBSbatSQLAccess db_DK_T_SDNAMV_UCWK = null;

	/** テーブルアクセスクラス(倉庫棚移動対象機器)*/
	private JBSbatSQLAccess db_DK_T_SDNAMV_TG_KIKI = null;

	/** テーブルアクセスクラス(発注)*/
	private JBSbatSQLAccess db_DK_T_HATTCHU = null;

	/** テーブルアクセスクラス(発注明細)*/
	private JBSbatSQLAccess db_DK_T_HATTCHU_DTL = null;

	/** テーブルアクセスクラス(入荷)*/
	private JBSbatSQLAccess db_DK_T_NYUKA = null;

	/** テーブルアクセスクラス(入荷明細)*/
	private JBSbatSQLAccess db_DK_T_NYUKA_DTL = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 保存期間経過データ物理削除中間ファイル/CSV出力用デリミタ */
	private static final String CSV_DELIMITER = ",";

	/** 保存期間経過データ物理削除中間ファイル名*/
	private static final String KEP_TRM_OVR_INF_MIDFN = "DKIFM013001";

	/** 保存期間経過データ物理削除中間ファイル名*/
	private static final String DEF_KEP_TRM_OVR_INF = "DKIFM013002.def";

	/** 削除結果（機器）ファイル名*/
	private static final String KEP_TRM_OVR_INF_FN = "delete_rslt_kiki_";
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_DK_T_YBKIKI_HAISO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_YBKIKI_HAISO);
		db_DK_T_YBKKHAI_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_YBKKHAI_UCWK);
		db_DK_T_YBKKHAI_TG_BPIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN);
		db_DK_T_SOKODNA_MOVE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SOKODNA_MOVE);
		db_DK_T_SDNAMV_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SDNAMV_UCWK);
		db_DK_T_SDNAMV_TG_KIKI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_SDNAMV_TG_KIKI);
		db_DK_T_HATTCHU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HATTCHU);
		db_DK_T_HATTCHU_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_HATTCHU_DTL);
		db_DK_T_NYUKA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_NYUKA);
		db_DK_T_NYUKA_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_DK_T_NYUKA_DTL);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 1.2.2.1 中間ファイル格納ディレクトリプロパティー定義値を取得し、中間ファイルを取得する。
		// 中間ファイルパス（パス）の取得
		String midFilePath = inspection(JBSbatAplConst.getAplConstValue(JDKStrConst.ENV_MID_DIR)) + "/";
		
		// 外部出力ファイルパス（パス + ファイル名）
		JBSbatOutputFileUtil outFile = null;

		// 指定フォルダよりファイルの有無確認を行う
		File file = new File(midFilePath);
		// ファイルの一覧を取得する(ファイル名で絞り込み)
		String[] fileList = getTargetFile(file.list());
		if (null == fileList || 1 > fileList.length)
		{
			return null;
		}
			
		// 1.2.2.1.(2) 入出力データ格納マップを作成
		JBSbatServiceInterfaceMap outDataMap = new JBSbatServiceInterfaceMap();

		// 1.2.2.1.(3) 入出力データ格納リストを作成する。
		ArrayList<String[]> outDataList = new ArrayList<String[]>();
		
		// 外部出力ファイルパス（パス + ファイル名）の取得
		String outFilePath = rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.ENV_BUS_LOG_DIR_DK), "")
		+ "/" + KEP_TRM_OVR_INF_FN 	+ getOpeDateTime()	+ ".csv";

		//1.2.2.2 ファイル出力制御クラスを生成する。
		
		try{

			// 外部出力ファイルパス（パス + ファイル名）
			outFile = new JBSbatOutputFileUtil(outFilePath);
			outFile.setEncode(JDKStrConst.ENCODE_SJIS);		// 文字コード
			outFile.setLine(JDKStrConst.LINE_LF);			// 改行コード

			// 1.2.2.3 削除結果（機器）ファイルを作成
			outFile.createWriter();

		}
		catch (IOException ex)
		{
			// 削除結果（機器）ファイル作成失敗
			commonItem.getConnection().rollback();
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0030CE,
					new String[] {midFilePath});
			throw ex;
		}

		JBSbatInputFileUtil inputFile = null;
		String[] recArray = null;
		String readFileName = null;

		try
		{
			
			// ファイルの読み込み
			for (int i = 0; i < fileList.length; i++)
			{
				// 1.2.2.5 ファイル入力制御クラスを生成する
				inputFile = new JBSbatInputFileUtil(midFilePath + fileList[i]);
				readFileName = fileList[i];
				
					// テキストファイルの読み込み
					inputFile.setEncode(JDKStrConst.ENCODE_SJIS2);
					inputFile.createReader();
				
					String recLine = null;		// 行レコード
					while(inputFile.ready())
					{
						// 1行読み込み
						recLine = inputFile.readLine();
	
						// 配列に格納
						recArray = getCsvStrArray(recLine, CSV_DELIMITER, "\"");
						
						// 配列[0]番目のデータが、"DK_T_YBKIKI_HAISO"の場合、予備機器配送テーブルから情報抽出
						if (recArray[0].equals(D_TBL_NAME_DK_T_YBKIKI_HAISO))
						{
							// 予備機器配送関連テーブル抽出処理
							outDataList = ybkikiHaisoSer(recArray[1]);
							
							// 予備機器配送関連テーブル削除処理
							ybkikiHaisoDel(outDataList);
							
							// ファイル出力処理
							outMidFile(outDataList, outDataMap, outFile, outFilePath);
							
							// 入出力データ格納リストをクリアする。
							outDataList.clear();
							
							// 関連テーブル１セット処理後、コミットを切る。
							commonItem.getConnection().commit();
	 					};
						
						// 配列[0]番目のデータが、"DK_T_SOKODNA_MOVE"の場合、倉庫棚移動テーブルから情報抽出
						if (recArray[0].equals(D_TBL_NAME_DK_T_SOKODNA_MOVE))
						{
							// 倉庫棚移動関連テーブル抽出処理
							outDataList = sokodanaMoveSer(recArray[1]);
							
							// 倉庫棚移動関連テーブル削除処理
							sokodanaMovDel(outDataList);
							
							// ファイル出力処理
							outMidFile(outDataList, outDataMap, outFile, outFilePath);
							
							// 入出力データ格納リストをクリアする。
							outDataList.clear();
							
							// 関連テーブル１セット処理後、コミットを切る。
							commonItem.getConnection().commit();
						};
						
						// 配列[0]番目のデータが、"DK_T_HATTCHU"の場合、発注テーブルから情報抽出
						if (recArray[0].equals(D_TBL_NAME_DK_T_HATTCHU))
						{
							// 発注関連テーブル抽出処理
							outDataList = hatthcuSer(recArray[1]);
							
							// 発注関連テーブル削除処理
							hattchuDel(outDataList);
							
							// ファイル出力処理
							outMidFile(outDataList, outDataMap, outFile, outFilePath);
							
							// 入出力データ格納リストをクリアする。
							outDataList.clear();
							
							// 関連テーブル１セット処理後、コミットを切る。
							commonItem.getConnection().commit();
						}
						
						// 配列[0]番目のデータが、"DK_T_NYUKA"の場合、入荷テーブルから情報抽出
						if (recArray[0].equals(D_TBL_NAME_DK_T_NYUKA))
						{
							// 入荷関連テーブル抽出処理
							outDataList = NyukaSer(recArray[1]);
							
							// 入荷関連テーブル削除処理
							NyukaDel(outDataList);
							
							// ファイル出力処理
							outMidFile(outDataList, outDataMap, outFile, outFilePath);
							
							// 入出力データ格納リストをクリアする。
							outDataList.clear();
							
							// 入荷テーブルの発注ロット番号が取得できている場合、入荷テーブルの発注ロット番号でも
							// 発注関連テーブルの削除を行う。
							
							if (!isEmpty(recArray[2]))
							{
								// 発注関連テーブル抽出処理
								outDataList = hatthcuSer(recArray[2]);
								
								// 発注関連テーブル削除処理
								hattchuDel(outDataList);
								
								// ファイル出力処理
								outMidFile(outDataList, outDataMap, outFile, outFilePath);
								
								// 入出力データ格納リストをクリアする。
								outDataList.clear();
								
							};
							
							// 関連テーブル１セット処理後、コミットを切る。
							commonItem.getConnection().commit();
	
						};
					}
			}
		}
		catch (IOException ex)
		{
			commonItem.getConnection().rollback();

			// 読み込んだファイルを閉じる
			try
			{
				inputFile.close();
			}
			catch (NullPointerException e)
			{
				super.logPrint.printDebugLog("ファイルクローズはインスタンスがNull:" + midFilePath + readFileName);
			}

			super.logPrint.printDebugLog("保存期間経過データ削除中間ファイル読み込み失敗:" + midFilePath +  readFileName);
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0660CE,
					new String[] {midFilePath + readFileName});
			throw ex;
		}

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_DK_T_YBKIKI_HAISO.close();
		db_DK_T_YBKKHAI_UCWK.close();
		db_DK_T_YBKKHAI_TG_BPIN.close();
		db_DK_T_SOKODNA_MOVE.close();
		db_DK_T_SDNAMV_UCWK.close();
		db_DK_T_SDNAMV_TG_KIKI.close();
		db_DK_T_HATTCHU.close();
		db_DK_T_HATTCHU_DTL.close();
		db_DK_T_NYUKA.close();
		db_DK_T_NYUKA_DTL.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	YBKIKI_HAISO_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeDK_T_YBKIKI_HAISO_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("YBKIKI_HAISO_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_DK_T_YBKIKI_HAISO.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_YBKKHAI_UCWK_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_YBKKHAI_UCWK.selectBySqlDefine(paramList, DK_T_YBKKHAI_UCWK_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_YBKKHAI_TG_BPIN_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_YBKKHAI_TG_BPIN.selectBySqlDefine(paramList, DK_T_YBKKHAI_TG_BPIN_DK_SELECT_001);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	YBKIKI_HAISO_NO
	 *		 	YBKIKI_HAISO_TAIBPIN_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_YBKKHAI_TG_BPIN_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("YBKIKI_HAISO_NO", whereParam[0]);
		whereMap.setValue("YBKIKI_HAISO_TAIBPIN_NO", whereParam[1]);

		// DBアクセスを実行します
		db_DK_T_YBKKHAI_TG_BPIN.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	YBKIKI_HAISO_NO
	 *		 	YBKIKI_HAISO_UCWK_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_YBKKHAI_UCWK_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("YBKIKI_HAISO_NO", whereParam[0]);
		whereMap.setValue("YBKIKI_HAISO_UCWK_NO", whereParam[1]);

		// DBアクセスを実行します
		db_DK_T_YBKKHAI_UCWK.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	YBKIKI_HAISO_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_YBKIKI_HAISO_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("YBKIKI_HAISO_NO", whereParam[0]);

		// DBアクセスを実行します
		db_DK_T_YBKIKI_HAISO.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SOKODNA_MOVE_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeDK_T_SOKODNA_MOVE_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SOKODNA_MOVE_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_DK_T_SOKODNA_MOVE.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_SDNAMV_UCWK_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_SDNAMV_UCWK.selectBySqlDefine(paramList, DK_T_SDNAMV_UCWK_DK_SELECT_001);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_SDNAMV_TG_KIKI_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_SDNAMV_TG_KIKI.selectBySqlDefine(paramList, DK_T_SDNAMV_TG_KIKI_DK_SELECT_001);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SOKODNA_MOVE_NO
	 *		 	SOKODNA_MOVE_TAIKIKI_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SDNAMV_TG_KIKI_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SOKODNA_MOVE_NO", whereParam[0]);
		whereMap.setValue("SOKODNA_MOVE_TAIKIKI_NO", whereParam[1]);

		// DBアクセスを実行します
		db_DK_T_SDNAMV_TG_KIKI.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SOKODNA_MOVE_NO
	 *		 	SOKODNA_MOVE_UCWK_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SDNAMV_UCWK_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SOKODNA_MOVE_NO", whereParam[0]);
		whereMap.setValue("SOKODNA_MOVE_UCWK_NO", whereParam[1]);

		// DBアクセスを実行します
		db_DK_T_SDNAMV_UCWK.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SOKODNA_MOVE_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_SOKODNA_MOVE_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SOKODNA_MOVE_NO", whereParam[0]);

		// DBアクセスを実行します
		db_DK_T_SOKODNA_MOVE.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	HATTCHU_LOT_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeDK_T_HATTCHU_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("HATTCHU_LOT_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_DK_T_HATTCHU.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_HATTCHU_DTL_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_HATTCHU_DTL.selectBySqlDefine(paramList, DK_T_HATTCHU_DTL_DK_SELECT_001);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	HATTCHU_LOT_DTL_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_HATTCHU_DTL_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("HATTCHU_LOT_DTL_NO", whereParam[0]);

		// DBアクセスを実行します
		db_DK_T_HATTCHU_DTL.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	HATTCHU_LOT_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_HATTCHU_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("HATTCHU_LOT_NO", whereParam[0]);

		// DBアクセスを実行します
		db_DK_T_HATTCHU.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	NYUKA_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeDK_T_NYUKA_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("NYUKA_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_DK_T_NYUKA.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(DK_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 executeDK_T_NYUKA_DTL_DK_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_DK_T_NYUKA_DTL.selectBySqlDefine(paramList, DK_T_NYUKA_DTL_DK_SELECT_001);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	NYUKA_NO
	 *		 	NYUKA_DTL_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_NYUKA_DTL_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("NYUKA_NO", whereParam[0]);
		whereMap.setValue("NYUKA_DTL_NO", whereParam[1]);

		// DBアクセスを実行します
		db_DK_T_NYUKA_DTL.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	NYUKA_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeDK_T_NYUKA_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("NYUKA_NO", whereParam[0]);

		// DBアクセスを実行します
		db_DK_T_NYUKA.deleteByPrimaryKeys(whereMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 予備機器配送テーブル及び関連テーブルの取得を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  String[] 取得結果を保存した配列を返します。
	 * @throws Exception 
	 */
	private ArrayList<String[]> ybkikiHaisoSer(String ybkikiHaisoNo) throws Exception
	{
		// 配列の初期化
		String[] strResult = new String[5];
		ArrayList<String[]> result = new ArrayList<String[]>();
		
		// 連番
		int idx = 0;
		
		// 1.2.2.5.(2).(a) 予備機器配送テーブルより、削除対象の情報を抽出する。
		String strYbkikiHaisoNo = "";	// 予備機器配送番号
		
		// パラメタ設定
		JBSbatCommonDBInterface inDbMap = new JBSbatCommonDBInterface();
		
		try
		{
			inDbMap.setValue("YBKIKI_HAISO_NO", ybkikiHaisoNo);

			// SELECT文発行
			JBSbatCommonDBInterface YbkikiHaisoMap = new JBSbatCommonDBInterface();

			// データ取得
			YbkikiHaisoMap = db_DK_T_YBKIKI_HAISO.selectByPrimaryKeysForUpdateWait(inDbMap);
			
				
			// 取得データが存在しない場合終了
			if (null != YbkikiHaisoMap)
			{
				// 項目取得
				strYbkikiHaisoNo = YbkikiHaisoMap.getString("YBKIKI_HAISO_NO");	// 予備機器配送番号
				
				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_YBKIKI_HAISO;
				strResult[1] = strYbkikiHaisoNo;
				strResult[2] = "";
				strResult[3] = "";
				strResult[4] = "";
				
				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("予備機器配送なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"予備機器配送", "予備機器配送番号=" + ybkikiHaisoNo });
			throw ex;
		}

		// 予備機器配送内訳テーブルから情報抽出
		String[] strYbkikiHaisoUcwkParam = {ybkikiHaisoNo};
		
		// 予備機器配送内訳テーブルカラム抽出
		strYbkikiHaisoNo = "";	// 予備機器配送番号
		String strYbkikiHaisoUcwkNo = "";	// 予備機器配送内訳番号
		
		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface YbkikiHaisoUcwkMap = new JBSbatCommonDBInterface();
			executeDK_T_YBKKHAI_UCWK_DK_SELECT_001(strYbkikiHaisoUcwkParam);

			while (true)
			{
				// データ取得
				YbkikiHaisoUcwkMap = this.db_DK_T_YBKKHAI_UCWK.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == YbkikiHaisoUcwkMap)
				{
					break;
				}
				// 項目取得
				strYbkikiHaisoNo = YbkikiHaisoUcwkMap.getString("YBKIKI_HAISO_NO");	// 予備機器配送番号
				strYbkikiHaisoUcwkNo = YbkikiHaisoUcwkMap.getString("YBKIKI_HAISO_UCWK_NO");	// 予備機器配送内訳番号

				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_YBKKHAI_UCWK;
				strResult[1] = strYbkikiHaisoNo;
				strResult[2] = strYbkikiHaisoUcwkNo;
				strResult[3] = "";
				strResult[4] = "";

				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("予備機器配送内訳なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"予備機器配送内訳", "予備機器配送番号=" + ybkikiHaisoNo });
			throw ex;
		}

		// 予備機器配送対象物品テーブルから情報抽出
		String[] strYbkkhaiTgBpinParam = {ybkikiHaisoNo};
		
		// 予備機器配送対象物品テーブルカラム抽出
		strYbkikiHaisoNo = "";	// 予備機器配送番号
		String strYbkikiHaisoTaibpinNo = "";	// 予備機器配送対象物品番号

		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface YbkkhaiTgBpinMap = new JBSbatCommonDBInterface();
			executeDK_T_YBKKHAI_TG_BPIN_DK_SELECT_001(strYbkkhaiTgBpinParam);
			
			while (true)
			{
				// データ取得
				YbkkhaiTgBpinMap = this.db_DK_T_YBKKHAI_TG_BPIN.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == YbkkhaiTgBpinMap)
				{
					break;
				}
				// 項目取得
				strYbkikiHaisoNo = YbkkhaiTgBpinMap.getString("YBKIKI_HAISO_NO");	// 予備機器配送番号
				strYbkikiHaisoTaibpinNo = YbkkhaiTgBpinMap.getString("YBKIKI_HAISO_TAIBPIN_NO");	// 予備機器配送対象物品番号

				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN;
				strResult[1] = strYbkikiHaisoNo;
				strResult[2] = strYbkikiHaisoTaibpinNo;
				strResult[3] = "";
				strResult[4] = "";

				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("予備機器配送対象物品なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"予備機器配送対象物品", "予備機器配送番号=" + ybkikiHaisoNo });
			throw ex;
		}
		return result;
}
	
	/**
	 * 予備機器配送テーブル及び関連テーブルの削除を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  boolean 処理結果を返します。
	 * @throws Exception 
	 */
	private boolean ybkikiHaisoDel(ArrayList<String[]> argParamList) throws Exception
	{
		boolean result = false;
		
		for (int i = 0; i < argParamList.size(); i++)
		{
			// 対象テーブル判断
			if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_YBKIKI_HAISO))
			{
				try
				{
					// 予備機器配送削除処理呼び出し
					executeDK_T_YBKIKI_HAISO_PKDELETE(new String[] {argParamList.get(i)[1]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("予備機器配送なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"予備機器配送", "予備機器配送番号=" + argParamList.get(i)[1] });
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_YBKKHAI_UCWK))
			{
				try
				{
					// 予備機器配送内訳削除処理呼び出し
					executeDK_T_YBKKHAI_UCWK_PKDELETE(new String[] {argParamList.get(i)[1],argParamList.get(i)[2]});

				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("予備機器配送内訳なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"予備機器配送内訳",
							"予備機器配送番号=" + argParamList.get(i)[1]
							+ "；予備機器配送内訳番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_YBKKHAI_TG_BPIN))
			{
				try
				{
					// 予備機器配送対象物品削除処理呼び出し
					executeDK_T_YBKKHAI_TG_BPIN_PKDELETE(new String[] {argParamList.get(i)[1],argParamList.get(i)[2]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("予備機器配送対象物品なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"予備機器配送対象物品",
							"予備機器配送番号=" + argParamList.get(i)[1]
							+ "予備機器配送対象物品番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
		}
		return result;
	}

	/**
	 * 倉庫棚移動テーブル及び関連テーブルの取得を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  String[] 取得結果を保存した配列を返します。
	 * @throws Exception 
	 */
	private ArrayList<String[]> sokodanaMoveSer(String sokodnaMoveNo) throws Exception
	{
		// 配列の初期化
		String[] strResult = new String[5];
		ArrayList<String[]> result = new ArrayList<String[]>();
		
		// 連番
		int idx = 0;
		
		// 1.2.2.5.(3).(a) 倉庫棚移動テーブルより、削除対象の情報を抽出する。
		String strSokodnaMoveNo = "";	// 倉庫棚移動番号
		
		// パラメタ設定
		JBSbatCommonDBInterface inDbMap = new JBSbatCommonDBInterface();

		try
		{
			inDbMap.setValue("SOKODNA_MOVE_NO", sokodnaMoveNo);

			// SELECT文発行
			JBSbatCommonDBInterface SokodnaMoveMap = new JBSbatCommonDBInterface();

			// データ取得
			SokodnaMoveMap = db_DK_T_SOKODNA_MOVE.selectByPrimaryKeysForUpdateWait(inDbMap);
			
				// 取得データが存在しない場合終了
				if (!(null == SokodnaMoveMap))
				{
					// 項目取得
					strSokodnaMoveNo = SokodnaMoveMap.getString("SOKODNA_MOVE_NO");	// 倉庫棚移動番号
					
					// 返り値（配列）への追加処理
					strResult[0] = D_TBL_NAME_DK_T_SOKODNA_MOVE;
					strResult[1] = strSokodnaMoveNo;
					strResult[2] = "";
					strResult[3] = "";
					strResult[4] = "";
					
					result.add(idx, strResult.clone());
	
					// 連番に1追加
					idx++;
				}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("倉庫棚移動なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"倉庫棚移動", "倉庫棚移動番号=" + sokodnaMoveNo});
			throw ex;
		}

		//  1.2.2.5.(3).(b) 倉庫棚移動内訳テーブルから情報抽出
		String[] strSokodnaMoveUcwkParam = {sokodnaMoveNo};
		
		// 倉庫棚移動内訳テーブルカラム抽出
		strSokodnaMoveNo = "";				// 倉庫棚移動番号
		String strSokodnaMoveUcwkNo = "";	// 倉庫棚移動内訳番号
		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface SokodnaMoveUcwkMap = new JBSbatCommonDBInterface();
			executeDK_T_SDNAMV_UCWK_DK_SELECT_001(strSokodnaMoveUcwkParam);

			while (true)
			{
				// データ取得
				SokodnaMoveUcwkMap = this.db_DK_T_SDNAMV_UCWK.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == SokodnaMoveUcwkMap)
				{
					break;
				}
				// 項目取得
				strSokodnaMoveNo = SokodnaMoveUcwkMap.getString("SOKODNA_MOVE_NO");	// 倉庫棚移動番号
				strSokodnaMoveUcwkNo = SokodnaMoveUcwkMap.getString("SOKODNA_MOVE_UCWK_NO");	// 倉庫棚移動内訳番号
				
				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_SDNAMV_UCWK;
				strResult[1] = strSokodnaMoveNo;
				strResult[2] = strSokodnaMoveUcwkNo;
				strResult[3] = "";
				strResult[4] = "";
				
				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("倉庫棚移動内訳なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"倉庫棚移動内訳", "倉庫棚移動番号=" + sokodnaMoveNo});
			throw ex;
		}

		// 1.2.2.5.(3).(c) 倉庫棚移動対象機器テーブルから情報抽出
		String[] strSokodnaMoveTaikikiParam = {sokodnaMoveNo};
		
		// 倉庫棚移動対象機器テーブルカラム抽出
		strSokodnaMoveNo = "";					// 倉庫棚移動番号
		String strSokodnaMoveTaikikiNo = "";	// 倉庫棚移動対象機器番号
		
		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface SokodnaMoveTaikikiMap = new JBSbatCommonDBInterface();
			executeDK_T_SDNAMV_TG_KIKI_DK_SELECT_001(strSokodnaMoveTaikikiParam);
			
			while (true)
			{
				// データ取得
				SokodnaMoveTaikikiMap = this.db_DK_T_SDNAMV_TG_KIKI.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == SokodnaMoveTaikikiMap)
				{
					break;
				}
				// 項目取得
				strSokodnaMoveNo = SokodnaMoveTaikikiMap.getString("SOKODNA_MOVE_NO");					// 倉庫棚移動番号
				strSokodnaMoveTaikikiNo = SokodnaMoveTaikikiMap.getString("SOKODNA_MOVE_TAIKIKI_NO");	// 倉庫棚移動対象機器番号
				
				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_SDNAMV_TG_KIKI;
				strResult[1] = strSokodnaMoveNo;
				strResult[2] = strSokodnaMoveTaikikiNo;
				strResult[3] = "";
				strResult[4] = "";
				
				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("倉庫棚移動対象機器なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"倉庫棚移動対象機器", "倉庫棚移動番号=" + sokodnaMoveNo});
			throw ex;
		}
		return result;
}

	/**
	 * 倉庫棚移動テーブル及び関連テーブルの削除を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  boolean 処理結果を返します。
	 * @throws Exception 
	 */
	private boolean sokodanaMovDel(ArrayList<String[]> argParamList) throws Exception
	{
		boolean result = false;
		
		for (int i = 0; i < argParamList.size(); i++)
		{
			// 対象テーブル判断
			if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_SOKODNA_MOVE))
			{
				try
				{
					// 予備機器配送削除処理呼び出し
					executeDK_T_SOKODNA_MOVE_PKDELETE(new String[] {argParamList.get(i)[1]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("倉庫棚移動なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"倉庫棚移動", "倉庫棚移動番号=" + argParamList.get(i)[1]});
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_SDNAMV_UCWK))
			{
				try
				{
					// 予備機器配送内訳削除処理呼び出し
					executeDK_T_SDNAMV_UCWK_PKDELETE(new String[] {argParamList.get(i)[1],argParamList.get(i)[2]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("倉庫棚移動内訳なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"倉庫棚移動内訳",
							"倉庫棚移動番号=" + argParamList.get(i)[1]
							+ "倉庫棚移動内訳番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_SDNAMV_TG_KIKI))
			{
				try
				{
					// 予備機器配送対象物品削除処理呼び出し
					executeDK_T_SDNAMV_TG_KIKI_PKDELETE(new String[] {argParamList.get(i)[1],argParamList.get(i)[2]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("倉庫棚移動対象機器なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"倉庫棚移動対象機器",
							"倉庫棚移動番号=" + argParamList.get(i)[1]
							+ "倉庫棚移動対象機器番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
		}

		return result;
	}

	/**
	 * 発注テーブル及び関連テーブルの取得を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  String[] 取得結果を保存した配列を返します。
	 * @throws Exception 
	 */
	private ArrayList<String[]> hatthcuSer(String hatthcuLotNo) throws Exception
	{
		// 配列の初期化
		String[] strResult = new String[5];
		ArrayList<String[]> result = new ArrayList<String[]>();
		
		// 連番
		int idx = 0;
		
		// 1.2.2.5.(4).(a) 発注テーブルより、削除対象の情報を抽出する。
		String strHatthcuLotNo = "";	// 発注ロット番号
		
		// パラメタ設定
		JBSbatCommonDBInterface inDbMap = new JBSbatCommonDBInterface();
		
		try{
		
			inDbMap.setValue("HATTCHU_LOT_NO", hatthcuLotNo);

			// SELECT文発行
			JBSbatCommonDBInterface HatthcuMap = new JBSbatCommonDBInterface();

			// データ取得
			HatthcuMap = db_DK_T_HATTCHU.selectByPrimaryKeysForUpdateWait(inDbMap);
			
				// 取得データが存在しない場合終了
				if (!(null == HatthcuMap))
				{
					// 項目取得
					strHatthcuLotNo = HatthcuMap.getString("HATTCHU_LOT_NO");	// 発注ロット番号
					
					// 返り値（配列）への追加処理
					strResult[0] = D_TBL_NAME_DK_T_HATTCHU;
					strResult[1] = strHatthcuLotNo;
					strResult[2] = "";
					strResult[3] = "";
					strResult[4] = "";
					
					result.add(idx, strResult.clone());
	
					// 連番に1追加
					idx++;
				}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("発注なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"発注", "発注ロット番号=" + hatthcuLotNo});
			throw ex;
		}

		// 1.2.2.5.(4).(b) 発注明細テーブルより、削除対象の情報を抽出する。
		String[] strHatthcuDtlParam = {hatthcuLotNo};

		// 発注明細テーブルカラム抽出
		String strHattchuDtlNo = "";		// 発注ロット明細番号

		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface HattchuDtlMap = new JBSbatCommonDBInterface();
			executeDK_T_HATTCHU_DTL_DK_SELECT_001(strHatthcuDtlParam);
			
			while (true)
			{
				// データ取得
				HattchuDtlMap = this.db_DK_T_HATTCHU_DTL.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == HattchuDtlMap)
				{
					break;
				}
				// 項目取得
				strHattchuDtlNo = HattchuDtlMap.getString("HATTCHU_LOT_DTL_NO");	// 発注ロット明細番号

				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_HATTCHU_DTL;
				strResult[1] = strHattchuDtlNo;
				strResult[2] = "";
				strResult[3] = "";
				strResult[4] = "";

				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("発注明細なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"発注明細", "発注ロット=" + hatthcuLotNo});
			throw ex;
		}
		return result;
	}

	/**
	 * 発注テーブル及び関連テーブルの削除を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  boolean 処理結果を返します。
	 * @throws Exception 
	 */
	private boolean hattchuDel(ArrayList<String[]> argParamList) throws Exception
	{
		boolean result = false;
		
		for (int i = 0; i < argParamList.size(); i++)
		{
			// 対象テーブル判断
			if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_HATTCHU))
			{
				try
				{
					// 発注削除処理呼び出し
					executeDK_T_HATTCHU_PKDELETE(new String[] {argParamList.get(i)[1]});
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("発注なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"発注", "発注ロット番号=" + argParamList.get(i)[1]});
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_HATTCHU_DTL))
			{
				try
				{
					// 発注明細削除処理呼び出し
					executeDK_T_HATTCHU_DTL_PKDELETE(new String[] {argParamList.get(i)[1]});
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("発注明細なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"発注明細",
							"発注ロット番号=" + argParamList.get(i)[1]
							+ "発注ロット明細番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
		}

		return result;
	}

	/**
	 * 入荷テーブル及び関連テーブルの取得を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  String[] 取得結果を保存した配列を返します。
	 * @throws Exception 
	 */
	private ArrayList<String[]> NyukaSer(String NyukaNo) throws Exception
	{
		// 配列の初期化
		String[] strResult = new String[5];
		ArrayList<String[]> result = new ArrayList<String[]>();
		
		// 連番
		int idx = 0;
		
		// 1.2.2.5.(5).(a) 入荷テーブルより、削除対象の情報を抽出する。
		String strNyukaNo = "";	// 入荷番号
		
		// パラメタ設定
		JBSbatCommonDBInterface inDbMap = new JBSbatCommonDBInterface();
		
		try
		{
			inDbMap.setValue("NYUKA_NO", NyukaNo);

			// SELECT文発行
			JBSbatCommonDBInterface NyukaMap = new JBSbatCommonDBInterface();

			// データ取得
			NyukaMap = db_DK_T_NYUKA.selectByPrimaryKeysForUpdateWait(inDbMap);
			
				// 取得データが存在しない場合終了
				if (!(null == NyukaMap))
				{
					// 項目取得
					strNyukaNo = NyukaMap.getString("NYUKA_NO");	// 入荷番号
					
					// 返り値（配列）への追加処理
					strResult[0] = D_TBL_NAME_DK_T_NYUKA;
					strResult[1] = strNyukaNo;
					strResult[2] = "";
					strResult[3] = "";
					strResult[4] = "";
					
					result.add(idx, strResult.clone());
	
					// 連番に1追加
					idx++;
				}
		
		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("入荷なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"入荷", "入荷番号=" + NyukaNo});
			throw ex;
		}

		// 1.2.2.5.(5).(b) 入荷明細テーブルより、削除対象の情報を抽出する。
		String[] strNyukaDtlParam = {NyukaNo};

		// 入荷明細テーブルカラム抽出
		strNyukaNo = "";				// 入荷番号
		String strNyukaDtlNo = "";		// 入荷明細番号
		
		try
		{
			// SELECT文発行
			JBSbatCommonDBInterface NyukaDtlMap = new JBSbatCommonDBInterface();
			executeDK_T_NYUKA_DTL_DK_SELECT_001(strNyukaDtlParam);
			
			while (true)
			{
				
				// データ取得
				NyukaDtlMap = this.db_DK_T_NYUKA_DTL.selectNext();
				
				// 取得データが存在しない場合終了
				if (null == NyukaDtlMap)
				{
					break;
				}
				// 項目取得
				strNyukaNo = NyukaDtlMap.getString("NYUKA_NO");			// 入荷番号
				strNyukaDtlNo = NyukaDtlMap.getString("NYUKA_DTL_NO");	// 入荷明細番号
				
				// 返り値（配列）への追加処理
				strResult[0] = D_TBL_NAME_DK_T_NYUKA_DTL;
				strResult[1] = strNyukaNo;
				strResult[2] = strNyukaDtlNo;
				strResult[3] = "";
				strResult[4] = "";
				
				result.add(idx, strResult.clone());

				// 連番に1追加
				idx++;
			}

		}
		catch (Exception ex)
		{
			// データが取得出来なかった場合
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("入荷明細なし");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0020KE,
					new String[] {"入荷明細明細", "入荷番号=" + NyukaNo});
			throw ex;
		}
		return result;
	}
	
	/**
	 * 入荷テーブル及び関連テーブルの削除を実行します。<br>
	 * <br>
	 * @param argParamList パラメータリスト
	 * @return  boolean 処理結果を返します。
	 * @throws Exception 
	 */
	private boolean NyukaDel(ArrayList<String[]> argParamList) throws Exception
	{
		boolean result = false;
		
		for (int i = 0; i < argParamList.size(); i++)
		{
			// 対象テーブル判断
			if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_NYUKA))
			{
				try
				{
					// 入荷削除処理呼び出し
					executeDK_T_NYUKA_PKDELETE(new String[] {argParamList.get(i)[1]});
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("入荷なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"入荷", "入荷番号=" + argParamList.get(i)[1]});
					throw ex;
				}
			}
			else if(argParamList.get(i)[0].equals(D_TBL_NAME_DK_T_NYUKA_DTL))
			{
				try
				{
					// 入荷明細削除処理呼び出し
					executeDK_T_NYUKA_DTL_PKDELETE(new String[] {argParamList.get(i)[1],argParamList.get(i)[2]});
					
				}
				catch(Exception ex)
				{
					// データが削除出来なかった場合
					commonItem.getConnection().rollback();
					super.logPrint.printDebugLog("入荷明細なし");
					commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0060CE,
							new String[] {"入荷明細",
							"入荷番号=" + argParamList.get(i)[1]
							+ "入荷明細番号=" + argParamList.get(i)[2]});
					throw ex;
				}
			}
		}

		return result;
	}

	/**
	 * ファイル一覧より保存期間経過データ削除中間ファイルだけを返却します。<br>
	 * <br>
	 * @param argFileList ディレクトリより取得したファイル一覧
	 * @return  String[] 保存期間経過データ削除中間ファイルのみ返却。
	 */
	private String[] getTargetFile(String[] argFileList)
	{
		String[] result = null;
		
		if (null != argFileList && 0 < argFileList.length )
		{
			ArrayList<String> tmpList = new ArrayList<String>();
			for (int i = 0; i < argFileList.length; i++)
			{
				// 保存期間経過データ削除中間ファイルかどうかチェックする
				if (0 <= argFileList[i].indexOf(KEP_TRM_OVR_INF_MIDFN))
				{
					tmpList.add(argFileList[i]);
				}
			}
			if (0 < tmpList.size())
			{
				result = new String[tmpList.size()];
				
				for (int i = 0; i < tmpList.size(); i++)
				{
					result[i] = (String)tmpList.get(i);
				}
			}
		}
		
		return result;
	}

	/**
	 * データが有効値（Null、空文字以外）かどうかのチェックを行います。<br>
	 * <br>
	 * @param argStr チェック対象文字列
	 * @return  boolean trueである場合、Null or 空文字。falseである場合、Null or 空文字以外。
	 */
	private boolean isEmpty(String argStr)
	{
		boolean result = false;
		if (null == argStr ||  "".equals(argStr))
		{
			result = true;
		}
		
		return result;
	}
	
	/**
	 * 指定文字列内に検索文字列がいくつ含まれるかを返却します。<br>
	 * <br>
	 * @param argStr 対象文字列
	 * @param argSearchStr 検索文字列
	 * @return  int 対象文字列内に検索文字列が存在する個数を返却。
	 */
	private int getCnt(String argStr, String argSearchStr)
	{
		int result = 0;
		
		if (isEmpty(argStr) || isEmpty(argSearchStr) || 0 > argStr.indexOf(argSearchStr))
		{
			return result;
		}
		
		result++;
		int i = argStr.indexOf(argSearchStr) + 1;
		while(i < argStr.length())
		{
			if (argStr.indexOf(argSearchStr, i) > i - 1)
			{
				i = argStr.indexOf(argSearchStr, i);
				result++;
			}
			i++;
		}
		
		return result;
	}

	/**
	 * CSV分割用メソッド。指定された区切り文字で文字列配列に分割した値を返却します。<br>
	 * <br>
	 * @param argRec 対象文字列
	 * @param argDelimiter デリミタ文字
	 * @param argDel 消去文字列
	 * @return  String[] 対象文字列を分割して文字列配列にて返却。
	 */
	private String[] getCsvStrArray(String argRec, String argDelimiter, String argDel)
	{
		// 対象の文字列が有効文字列かどうかのチェック
		if (isEmpty(argRec))
		{
			return null;
		}
		
		String[] result = null;
		String[] buff = argRec.replace(argDel, "").split(argDelimiter);
		
		// splitで区切った文字列数を判定
		if (getCnt(argRec, argDelimiter) + 1 != buff.length)
		{
			
			// 本来あるべき配列数
			result = new String[getCnt(argRec, argDelimiter) + 1];
			
			System.arraycopy(buff, 0, result, 0, buff.length);
		}
		else
		{
			result = buff;
		}
		
		// null値を空文字に変換
		for (int j = 0; j < result.length; j++)
		{
			if (null == result[j])
			{
				result[j] = "";
			}
		}

		// 結果の返却
		return result;
	}

	/**
	 * 削除結果（機器）ファイル出力を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.削除結果（機器）ファイルの出力を行います。<br>
	 * </pre>
	 * <p>
	 * @param outDataMap 削除結果（機器）ファイル出力用マップ。
	 * @param outFile 削除結果（機器）ファイルプロパティ。
	 * @param midFilePath 削除結果（機器）ファイル名（パス ＋ ファイル名）。
	 * @return なし。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void outMidFile(ArrayList<String[]> outDataList, JBSbatServiceInterfaceMap outDataMap, 
		JBSbatOutputFileUtil outFile, String outFilePath) throws Exception 
	{
		try
		{
			for (int i = 0; i < outDataList.size(); i++)
			{
				// テーブル名
				outDataMap.set(JBSbatDKIFM013002.TBL_ID, 
								JDKBatOutputFileUtil.encloseDQuot(outDataList.get(i)[0]));
				// 主キー１
				outDataMap.set(JBSbatDKIFM013001.PRMKEY_1, 
								JDKBatOutputFileUtil.encloseDQuot(outDataList.get(i)[1]));
				// 主キー２
				outDataMap.set(JBSbatDKIFM013001.PRMKEY_2, 
								JDKBatOutputFileUtil.encloseDQuot(outDataList.get(i)[2]));
				// 主キー３
				outDataMap.set(JBSbatDKIFM013001.PRMKEY_3,
								JDKBatOutputFileUtil.encloseDQuot(outDataList.get(i)[3]));
				// 主キー４
				outDataMap.set(JBSbatDKIFM013001.PRMKEY_4,
								JDKBatOutputFileUtil.encloseDQuot(outDataList.get(i)[4]));
				
				String defFile = rnktPath(JBSbatAplConst.getAplConstValue(JDKStrConst.DK_DIR_IND), "")
					+ DEF_KEP_TRM_OVR_INF;
				JBSbatDefFileUtil defDataUtil = new JBSbatDefFileUtil(defFile, outFile);
				outFile.print(outDataMap, defDataUtil);
			}
		}
		catch (Exception ex)
		{
			commonItem.getConnection().rollback();
			super.logPrint.printDebugLog("削除結果（機器）ファイル書き込み失敗");
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EDKB0050CE,
					new String[] {outFilePath});
			throw ex;
		}
	}

	/**
	 * 環境変数ディレクトリ検査用メソッド（ファイルインジェクション対策）<br>
	 * 半角アルファベットと数字のみで構成されていることを検査します。
	 * <br>
	 * @param argDirNm:検査する文字列
	 * @return String 検査した文字列
	 * @throws IllegalArgumentException 業務サービス内で発生した例外全般。
	 */
	private String inspection(String argDirNm) throws IllegalArgumentException
	{
		
		if (argDirNm.matches("\\p{InBasicLatin}+"))
		{
			return argDirNm;
		}
		throw new IllegalArgumentException(argDirNm); // 誤ったファイル名を指定
	}
	
	/**
	 * パス文字列の連結
	 * 連結するパス文字列にパス区切り文字の設定を制御する。
	 * @param path1 パス文字列
	 * @param path2 パス文字列
	 * @return 連結したパス文字列
	 */
	private String rnktPath(String path1, String path2)
	{
		String pathDlmt = "/";
		if (-1 < path1.indexOf("\\") || -1 < path2.indexOf("\\"))
		{
			pathDlmt = "\\";
		}
		if (!path1.endsWith(pathDlmt))
		{
			return path1 + pathDlmt + path2;
		}
		return path1 + path2;
	}	

	/**
	 * 運用日付時分秒の取得を行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.運用日付(yyyyMMdd) + システム日時(hhmmss)を返却します。<br>
	 * </pre>
	 * <p>
	 * @return String 運用日付時分秒。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private String getOpeDateTime() throws Exception 
	{
		String strDate = commonItem.getOpeDate();
		String strTime = JCCBatCommon.getSysDateTime().substring(8);

		return (strDate + strTime);
	}

}
