/*********************************************************************
*  All Rights reserved,Copyright (c) Fujitsu ,2017					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCRCtgrFileIktAdd
*	ソースファイル名	：JBSbatCRCtgrFileIktAdd.java
*	作成者				：FJ)二村　
*	作成日				：2017年02月06日
*＜機能概要＞
*　カテゴリーファイル一括登録処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v29.00.00	2017/02/06   FJ)二村		ANK-3109-00-00 【随時機能化案件】問合せフォーム用configファイルのダウンロード／アップロード機能追加  新規作成
*********************************************************************/

package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCCbatShoriIraiUtil;
import eo.business.common.JKKBatOutputUtil;
import eo.business.util.file.JBSbatCRIFI015;
import eo.business.util.table.JBSbatCC_T_DLYD_TRN_REQ;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCCFileUtil;
import eo.common.util.JKKStringUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.application.JCCbatFrameworkException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatStringUtil;


/**
* カテゴリーファイル一括登録処理部品です。
*<BR>
* @author FJ
*/
public class JBSbatCRCtgrFileIktAdd extends JBSbatBusinessService
{
	/**
	 * テーブル(ダウンロードファイル管理)
	 */
	private static final String DB_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";

	/**
	 *  テーブルアクセスクラス(ダウンロードファイル管理)
	 */
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;

	/** 
	 * ジョブID(EO90W0110J0)
	 */
	private static final String JOB_ID_EO90W0110J0 = "EO90W0110J0";

	/** 
	 * カテゴリー別キューBOX設定ファイルのファイル名
	 */
	private static final String OUT_FILE_NAME =  "categoryConfig.csv";

	/** 
	 * カテゴリー別キューBOX設定ファイルの項目名の数
	 */
	private static final int NAMELIST = 12;

	/** 
	 *カテゴリー別キューBOX設定ファイルの項目名リスト
	 */
	private ArrayList<Object> crifi015List = new ArrayList<Object>();

	/** 
	 * ファイルコード
	 */
	private final String FILE_CD = "0000";

	/** 
	 *　ファイルパス
	 */
	private String outFilePath = "";

	/** 
	 * カテゴリー別キューBOX設定ファイル削除日数
	 */
	private final String EFILE_DEL_YMD = "20991231";

	/** 
	 * カテゴリー別キューBOX設定ファイル処理管理番号
	 */
	private static final String TRAN_KANRI_NO = "000000000159";

	/** 
	 * 入力ファイルのレコード件数
	 */
	private int inFileRecordCnt = 1;

	/** 
	 * 入力ファイルのフォーマットチェックエラーメッセージ
	 */
	private String formErrMsg = "";

	/**
	 * 初期処理
	 * @param  JBSbatCommonItem commonItem バッチ共通パラメータ電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		// DBアクセスクラスを生成します
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, DB_NAME_ZM_T_DL_FILE_KANRI);
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public JBSbatOutputItem execute() throws Exception
	{
		/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		//項目名のリストを作成
		crifi015List.add(JBSbatCRIFI015.NO);
		crifi015List.add(JBSbatCRIFI015.CTGR_1);
		crifi015List.add(JBSbatCRIFI015.CTGR_2);
		crifi015List.add(JBSbatCRIFI015.CTGR_3);
		crifi015List.add(JBSbatCRIFI015.CTGR_4);
		crifi015List.add(JBSbatCRIFI015.CTGR_5);
		crifi015List.add(JBSbatCRIFI015.CTGR_6);
		crifi015List.add(JBSbatCRIFI015.CTGR_7);
		crifi015List.add(JBSbatCRIFI015.CTGR_8);
		crifi015List.add(JBSbatCRIFI015.CTGR_9);
		crifi015List.add(JBSbatCRIFI015.CTGR_10);
		crifi015List.add(JBSbatCRIFI015.QUE_BOX_NO);

		// 対象ファイル抽出
		// ディレイド処理依頼からデータを取得
		List<HashMap<String, Object>> shoriIraiList = new ArrayList<HashMap<String, Object>>();
		shoriIraiList = JCCbatShoriIraiUtil.getShoriIraiInfo(commonItem, JOB_ID_EO90W0110J0);

		if (shoriIraiList == null)
		{
			// 対象データが存在しないため処理終了
			super.logPrint.printBusinessErrorLog("EZEB0240AI");
			return null;
		}

		//処理依頼件数分ループ
		for(HashMap<String, Object> shoriIrai:shoriIraiList)
		{
			// カテゴリー別キューBOX設定ファイルリスト
			ArrayList<JBSbatServiceInterfaceMap> ctgrQueBoxFileList = new ArrayList<JBSbatServiceInterfaceMap>();
			//ファイルのフォーマット異常件数
			int allErrNum = 0;

			// ディレイド処理依頼番号
			String shoriIraiNo = (String)shoriIrai.get(JBSbatCC_T_DLYD_TRN_REQ.DLYD_TRN_REQ_NO);
			// 入力電子ファイル管理番号
			String fileKanriNo = (String)shoriIrai.get(JBSbatCC_T_DLYD_TRN_REQ.INPUT_EFILE_KANRI_NO);

			try{
				// 入力ファイルの定義取得
				String inDefFileName = JBSbatAplConst.getAplConstValue("IND") + "CRIFI015.def";
				
				// 電子ファイル管理よりカテゴリー別キューBOX設定ファイルの復元
				String inFilePath = JCCBatCommon.searchDenshiFile(commonItem, fileKanriNo);

				if (inFilePath != null)
				{

					JBSbatInputFileUtil inFileUtil = new JBSbatInputFileUtil(inFilePath);
					JBSbatDefFileUtil inFileDef = new JBSbatDefFileUtil(inDefFileName, inFileUtil);

					super.logPrint.printDebugLog("処理日  ＝" + super.opeDate);
					super.logPrint.printDebugLog("ディレイド処理依頼番号  ＝" + shoriIraiNo);
					super.logPrint.printDebugLog("入力電子ファイル管理番号＝" + fileKanriNo);
					super.logPrint.printDebugLog("カテゴリー別キューBOX設定ファイルの取得元ファイルパス＝" + inFilePath);

					// Readerオブジェクトを生成する。
					inFileUtil.createReader();

					while (inFileUtil.ready()) 
					{
						// ファイルから１レコード取得
						String line = inFileUtil.readLine();
						// １レコードの情報をマップに格納
						JBSbatServiceInterfaceMap recordMap = editLine(line, inFileUtil, inFileDef);

						// １レコード毎のエラーフラグ
						boolean oneErrFlg = false;
						//フォーマットチェックの実行
						if (inFileRecordCnt == 1)
						{
							oneErrFlg = checkFirstName(recordMap);
						}
						else if (inFileRecordCnt >= 2)
						{
							oneErrFlg = checkMain(recordMap, inFileRecordCnt);
						}

						// １レコード毎のフォーマットチェックの確認
						if (!oneErrFlg)
						{
							super.logPrint.printBusinessErrorLog("EZMB0290CW", new String[]{"入力ファイル" + inFileRecordCnt +"行目", formErrMsg});

							//エラーメッセージ初期化
							this.formErrMsg = "";
							//フォーマットチェック異常の件数をカウント
							allErrNum++;
						}
						else
						{
							// フォーマットチェック正常のため、結果をリストに格納する
							ctgrQueBoxFileList.add(setCtgrQueBoxFileRslt(recordMap.getMap()));	
						}
						// レコード件数カウント
						inFileRecordCnt++;
					}

					//フォーマットチェック異常の場合
					if (allErrNum > 0)
					{
						super.logPrint.printBusinessErrorLog("EZMB0300AI", new String[]{"ディレイド処理依頼番号 \"" + shoriIraiNo +"\" の入力ファイル合計フォーマットチェックエラー" , String.valueOf(allErrNum) + "件"});
						// ディレイド処理依頼結果コードを"業務エラー"で更新
						JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "2", null);

						return null;
					}

					// フォーマットチェック正常の場合、カテゴリー別キューBOX設定ファイル出力
					else
					{
						if(!JKKStringUtil.isNullEmpty(ctgrQueBoxFileList))
						{
							JBSbatOutputItem outputBean = new JBSbatOutputItem();
							for (JBSbatServiceInterfaceMap outMap : ctgrQueBoxFileList)
							{
								outMap.setOutFlg(true);
								outputBean.addOutMapList(outMap);
							}

							// カテゴリー別キューBOX設定ファイルの出力先パスを取得（スラッシュ付）
							this.outFilePath = (JBSbatAplConst.getAplConstValue("CR_CTGR_QUEBOX_FILEPATH"));
							//ファイルパスは「/」で終了させる
							String repFilePath = outFilePath.replace(OUT_FILE_NAME, "");


							// カテゴリー別キューBOX設定ファイルをファイル出力する
							if (!JKKBatOutputUtil.editOutFile(super.commonItem, outputBean, "CRIFI015", repFilePath, OUT_FILE_NAME))
							{
								//ファイル出力失敗のため、ディレイド処理依頼結果コードを"業務エラー"で更新
								JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "2", null);
							}
							else
							{
								// ファイル出力成功のため、
								// 電子ファイル管理テーブル、ダウンロードファイル管理テーブルに登録する。
								addEfileKanriTable();

								// ディレイド処理依頼結果コードを"完了"で更新
								JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "1", null);
							}
						}
					}
				}
				else
				{
					super.logPrint.printBusinessErrorLog("EWCB0390CE", new String[]{fileKanriNo});
					//ディレイド処理依頼結果コードを"業務エラー"で更新
					JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "2", null);
				}
			}
			catch (Exception e)
			{
				// ディレイド処理依頼結果コードを"システムエラー"で更新
				JCCbatShoriIraiUtil.updateShoriIraiResult(commonItem, shoriIraiNo, "3", null);
				//例外メッセージの取得
				String message = e.getMessage();
				super.commonItem.setErrFlg(true);
				super.logPrint.printBusinessErrorLog("ECCB0120CE", new String[]{"エラー情報：" + message});

			}
			finally
			{
				// レコード件数を初期化
				this.inFileRecordCnt = 1;
			}
		}
		return null;
		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}


	/**
	 * 業務サービス終了処理
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		
		// DBアクセスクラスをクローズします
		db_ZM_T_DL_FILE_KANRI.close();
		
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}


	/**
	 * ファイル1行分のレコードを区切って電文オブジェクトに設定し、各項目をマップに格納します。（可変長）<BR>
	 * 設定した電文オブジェクトを返却します。
	 * @param line 文字列
	 * @param util JBSbatFileUtil
	 * @param inFileDef 定義ファイル
	 * @return map 電文オブジェクト
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatServiceInterfaceMap editLine(String line, JBSbatFileUtil util, JBSbatDefFileUtil inFileDef) throws Exception 
	{
		JBSbatServiceInterfaceMap map = new JBSbatServiceInterfaceMap();

		//定義された文字列でレコードを区切る
		String[] lines = JBSbatStringUtil.split(line, inFileDef.getDelimiter());
		
		//先頭と末尾の項目名の「"」を削除する
		if (inFileDef.getDelimiter().equals("\",\""))
		{
			if (lines[0].length() > 0 && lines[lines.length-1].length() > 0)
			{
				lines[0] = lines[0].substring(1);
				lines[lines.length-1] = lines[lines.length-1].substring(0, lines[lines.length-1].length()-1);
			}
		}

		//1行分のレコードをマップに格納する
		for (int i = 0; i < lines.length; i++)
		{
			if (lines.length < NAMELIST + 1) 
			{
				if (!JKKStringUtil.isNullEmpty(crifi015List.get(i)))
				{
					map.setString((String)crifi015List.get(i),lines[i]);
				}
			}
			else
			{
				map.setInputErrorFlg(false);
			}
		}
		//項目数の判定
		if (map.getMap().size() != NAMELIST)
		{
			map.setInputErrorFlg(false);
		}
		else
		{
			map.setInputErrorFlg(true);
		}
		return map;
	}

	/**
	 *入力情報（カテゴリー別キューBOX設定ファイル）のヘッダー部(1行目)のフォーマットチェックを行います。
	 * <br>
	 * @param recordMap カテゴリー別キューBOX設定ファイルの１レコードの情報
	 * @return true:正常  false:フォーマットチェック異常
	 */
	private boolean checkFirstName(JBSbatServiceInterfaceMap recordMap)
	{
		//1レコード目の先頭項目名が"No"か
		if (!"No".equals((String)recordMap.get(JBSbatCRIFI015.NO)))
		{
			this.formErrMsg = "ファイルの1行目にデータが入力されています。";
			return false;
		}
		return true;
	}


	/**
	 *入力情報（カテゴリー別キューBOX設定ファイル）のデータ部のフォーマットチェックを行います。
	 * <br>
	 * @param recordMap カテゴリー別キューBOX設定ファイルの１レコードの情報
	 * @param inFileRecordCnt ファイル読込行数
	 * @return true:正常  false:フォーマットチェック異常
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private boolean checkMain(JBSbatServiceInterfaceMap recordMap, int inFileRecordCnt) throws Exception
	{
		//読込中レコード行数の確認
		if (inFileRecordCnt == 2)
		{
			if (!checkByte(recordMap))
			{
				return false;
			}
		}

		//項目数チェック
		if (!recordMap.isInputErrorFlg())
		{
			// １レコードの項目数が異なる
			this.formErrMsg = "１レコードの項目数が異なります。";
			return false;
		}

		// 必須・属性・桁数チェック
		if (!singleCheck(recordMap.getMap()))
		{
			return false;
		}
		return true;
	}


	/**
	 *入力情報（カテゴリー別キューBOX設定ファイル）のデータ部(2行目)のフォーマットチェックを行います。
	 * <br>
	 * @param recordMap カテゴリー別キューBOX設定ファイルの１レコードの情報
	 * @return true:正常  false:フォーマットチェック異常
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private boolean checkByte(JBSbatServiceInterfaceMap recordMap) throws Exception
	{
		//2行目にレコードが存在しているか
		int sumBytes = 0;

		//1レコード分のByte数を取得する
		for (int j = 0; j < recordMap.getMap().size(); j++)
		{
			sumBytes += (recordMap.getString((String)crifi015List.get(j))).getBytes().length;
		}

		if (sumBytes <= 0)
		{
			this.formErrMsg = "ファイルの2行目にデータが入力されていません。";
			return false;
		}	
		return true;
	}


	/**
	 * 入力情報（カテゴリー別キューBOX設定ファイル）の単項目チェックを行います。
	 * <br>
	 * @param rsMap カテゴリー別キューBOX設定ファイルの１レコードの情報
	 * @return true:正常  false:フォーマットチェック異常
	 */
	private boolean singleCheck(HashMap rsMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// カテゴリー1項目チェック
		strValue = (String)rsMap.get(JBSbatCRIFI015.CTGR_1);

		// 必須チェック
		if(JKKStringUtil.isNullBlank(strValue))
		{
			this.formErrMsg = "カテゴリ1が入力されていません。";
			return false;
		}
		// キューBOX番号項目チェック
		strValue = (String)rsMap.get(JBSbatCRIFI015.QUE_BOX_NO);

		// 必須チェック
		if(JKKStringUtil.isNullBlank(strValue))
		{
			this.formErrMsg = "キューBOX番号が入力されていません。";
			return false;
		}
		// 桁数チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"ketasuu2", "10", "10"}))
		{
			this.formErrMsg = "キューBOX番号が10桁で入力されていません。";
			return false;
		}
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			this.formErrMsg = "キューBOX番号が半角英数字で入力されていません。";
			return false;
		}
		return true;
	}


	/**
	 *カテゴリー別キューBOX設定ファイル内容をマップオブジェクトへ設定します。
	 * <br>
	 * @param  inMap 入力ファイルの１レコード分を格納したHashMap
	 * @return 出力ファイル１レコード分の記載内容
	 */
	private JBSbatServiceInterfaceMap setCtgrQueBoxFileRslt(HashMap inMap)
	{
		JBSbatServiceInterfaceMap result = new JBSbatServiceInterfaceMap();
		
		for (int k = 0; k < inMap.size(); k++)
		{
			result.set((String)crifi015List.get(k), inMap.get(crifi015List.get(k)));
		}

		//ファイル出力フラグを設定する
		result.setOutFlg(true);
		
		return result;
	}


	/**
	 * 出力ファイルを電子ファイル管理スキーマに登録します。
	 * <br>
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void addEfileKanriTable() throws Exception
	{
		// 電子ファイル管理スキーマ登録
		String[] eFileInfo = new String[]{};
		try
		{
			eFileInfo = JCCBatCommon.createDenshiFile(commonItem, FILE_CD, outFilePath, EFILE_DEL_YMD);
		}
		catch(JCCbatFrameworkException jccBatFraExc)
		{
			
			// ファイル作成に失敗した場合(FWに渡す)
			commonItem.getLogPrint().printBusinessErrorLog(JPCBatchMessageConstant.EKKB0510CE, new String[] {"電子ファイル管理",
					"(FILE_CD=".concat(FILE_CD).concat(",filePath=").concat(outFilePath)});
			throw jccBatFraExc;  
			
		}
		
		// 出力ファイルをダウンロードファイル管理スキーマへ登録
		insZmTDlFileKanriTable(eFileInfo);
	}


	/**
	 * 出力ファイルをダウンロードファイル管理スキーマに登録します。
	 * <br>
	 * @param eFileInfo 電子ファイル管理情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insZmTDlFileKanriTable(String[] eFileInfo) throws Exception
	{

		JBSbatCommonDBInterface param = new JBSbatCommonDBInterface();
		//  1.ファイル番号
		param.setValue(JCCBatCommon.getFormatedNextSeq(commonItem,
				JKKStrConst.SEQ_FILE_NO, JKKStrConst.SEQ_PREFIX_SEQ_FILE_NOO, JKKStrConst.SEQ_LEN_SEQ_FILE_NO));
		//  2.処理管理番号
		param.setValue(TRAN_KANRI_NO);
		//  3.電子ファイル管理番号
		param.setValue(eFileInfo[0]);
		//  4.ファイル名
		param.setValue(OUT_FILE_NAME);
		//  5.ファイルサイズ
		param.setValue(JCCFileUtil.getFileSize(outFilePath));
		//  6.データ件数
		param.setValue(inFileRecordCnt - 1);
		//  7.ファイル登録年月日時分秒
		param.setValue(eFileInfo[1]);
		//  8.ファイル削除年月日
		param.setValue(null);
		//  9.登録年月日時分秒
		param.setValue(null);
		// 10.登録オペレータアカウント
		param.setValue(null);
		// 11.更新年月日時分秒
		param.setValue(null);
		// 12.更新オペレータアカウント
		param.setValue(null);
		// 13.削除年月日時分秒
		param.setValue(null);
		// 14.削除オペレータアカウント
		param.setValue(null);
		// 15.無効フラグ
		param.setValue(null);
		//登録運用年月日
		param.setValue("ADD_UNYO_YMD");
		//登録処理ID
		param.setValue("ADD_TRN_ID");
		//更新運用年月日
		param.setValue("UPD_UNYO_YMD");
		//更新処理ID
		param.setValue("UPD_TRN_ID");
		//削除運用年月日
		param.setValue(null);
		//削除処理ID
		param.setValue(null);
		
		// SQL実行
		executeZM_T_DL_FILE_KANRI_PKINSERT(param.getList().toArray());
	}


	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	ファイル番号				FILE_NO
	 *		 	処理管理番号				TRN_KANRI_NO
	 *		 	電子ファイル管理番号		FILE_KANRI_NO
	 *		 	ファイル名					FILE_NM
	 *		 	ファイルサイズ				FILE_SIZE
	 *		 	データ件数					DATA_CNT
	 *		 	ファイル登録年月日時分秒	FILE_ADD_DTM
	 *		 	ファイル削除年月日			FILE_DEL_YMD
	 *		 	登録年月日時分秒			ADD_DTM
	 *		 	登録オペレータアカウント	ADD_OPEACNT
	 *		 	更新年月日時分秒			UPD_DTM
	 *		 	更新オペレータアカウント	UPD_OPEACNT
	 *		 	削除年月日時分秒			DEL_DTM
	 *		 	削除オペレータアカウント	DEL_OPEACNT
	 *		 	無効フラグ					MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void executeZM_T_DL_FILE_KANRI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("FILE_NO", setParam[0]);
		setMap.setValue("TRN_KANRI_NO", setParam[1]);
		setMap.setValue("EFILE_KANRI_NO", setParam[2]);
		setMap.setValue("FILE_NM", setParam[3]);
		setMap.setValue("FILE_SIZE", setParam[4]);
		setMap.setValue("DATA_CNT", setParam[5]);
		setMap.setValue("FILE_ADD_DTM", setParam[6]);
		setMap.setValue("FILE_DEL_YMD", setParam[7]);
		setMap.setValue("ADD_DTM", setParam[8]);
		setMap.setValue("ADD_OPEACNT", setParam[9]);
		setMap.setValue("UPD_DTM", setParam[10]);
		setMap.setValue("UPD_OPEACNT", setParam[11]);
		setMap.setValue("DEL_DTM", setParam[12]);
		setMap.setValue("DEL_OPEACNT", setParam[13]);
		setMap.setValue("MK_FLG", setParam[14]);
	
		// DBアクセスを実行します
		db_ZM_T_DL_FILE_KANRI.insertByPrimaryKeys(setMap);
	}

}
