/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：Futurity
*	モジュール名	：JCRBatCommon
*	ソースファイル名：JCRBatCommon.java
*	作成者			：富士通
*	日付			：2011年04月05日
*＜機能概要＞
*	顧客対応履歴管理バッチ共通部品
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/05	富士通		新規作成
*
**********************************************************************/

package eo.business.common;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;

/**
 * 対応履歴管理システムバッチ共通アクセッサー部品<p>
 * <BR>
 * @author 富士通
 */
public class JCRBatCommon extends JCCBatCommon
{

	/** 件数ファイル情報を取得するキー */
	public static final String KEY_KENSU_FILE = JBSbatCRToiawaseShori.KEY_KENSU_FILE;

	/** フラグファイル情報を取得するキー */
	public static final String KEY_FLAG_FILE = JBSbatCRToiawaseShori.KEY_FLAG_FILE;

	/** 権限ファイル情報を取得するキー */
	public static final String KEY_AUTHORITY_FILE = JBSbatCRToiawaseShori.KEY_AUTHORITY_FILE;

	/** 改行コード変換文字を取得するキー */
	public static final String KEY_KAIGYO_CD_HENKAN_MOJI = JBSbatCRRrkInfoImport.KEY_KAIGYO_CD_HENKAN_MOJI;

	/** 変換処理後のファイルを取得するキー */
	public static final String KEY_HENKANGO_FILE = JBSbatCRRrkInfoImport.KEY_HENKANGO_FILE;

	/** 有効データ件数を取得するキー */
	public static final String KEY_COUNT = JBSbatCRRrkInfoImport.KEY_COUNT;

	/**
	 * 問合せモニターデータ登録
	 * @param commonItem バッチ共通パラメータ電文
	 * @param shoriKubun 処理区分
	 * @param taioKirokNo 対応記録番号
	 * @param userId ユーザーID
	 * @param userNm ユーザー名
	 * @param wkKbtOrgCd 業務個別設定組織コード
	 * @throws Exception 例外
	 * 
	 */
	public static void entryTiawsMonitorData(JBSbatCommonItem commonItem,
												String shoriKubun,
												String taioKirokNo,
												String userId,
												String userNm,
												String wkKbtOrgCd) throws Exception
	{

		commonItem.getLogPrint().printDebugLog("問合せモニターデータ登録");
		commonItem.getLogPrint().printDebugLog("　処理区分:" + shoriKubun);
		commonItem.getLogPrint().printDebugLog("　対応記録番号:" + taioKirokNo);
		commonItem.getLogPrint().printDebugLog("　ユーザーID:" + userId);
		commonItem.getLogPrint().printDebugLog("　ユーザー名:" + userNm);
		commonItem.getLogPrint().printDebugLog("　業務個別設定組織コード:" + wkKbtOrgCd);

		// 問合せモニターデータ登録
		JBSbatCRToiawaseShori.entryTiawsMonitorData(commonItem, shoriKubun, taioKirokNo, userId, userNm, wkKbtOrgCd);

	}

	/**
	 * 問合せキュー移動データ登録
	 * 
	 * @param commonItem バッチ共通パラメータ電文
	 * @param shoriKubun 処理区分
	 * @param taioKirokNo 対応記録番号
	 * @param esclSkQueBoxNo エスカレーション「先」キューBOX番号
	 * @param esclMtWkKbtOrgCd エスカレーション「元」業務個別設定組織コード
	 * @param userId ユーザーID
	 * @throws Exception 例外
	 * 
	 */
	public static void entryTiawsMontQueMvData(JBSbatCommonItem commonItem,
												String shoriKubun,
												String taioKirokNo,
												String esclSkQueBoxNo,
												String esclMtWkKbtOrgCd,
												String userId) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("問合せキュー移動データ登録");
		commonItem.getLogPrint().printDebugLog("　処理区分:" + shoriKubun);
		commonItem.getLogPrint().printDebugLog("　対応記録番号:" + taioKirokNo);
		commonItem.getLogPrint().printDebugLog("　エスカレーション「先」キューBOX番号:" + esclSkQueBoxNo);
		commonItem.getLogPrint().printDebugLog("　エスカレーション「元」業務個別設定組織コード:" + esclMtWkKbtOrgCd);
		commonItem.getLogPrint().printDebugLog("　ユーザーID:" + userId);

		// 問合せキュー移動データ登録
		JBSbatCRToiawaseShori.entryTiawsMontQueMvData(commonItem,
													shoriKubun,
													taioKirokNo,
													esclSkQueBoxNo,
													esclMtWkKbtOrgCd,
													userId);

	}

	/**
	 * 対応記録内訳抽出ワーク登録
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKirokNo 対応記録番号
	 * @param taioKirokUcwkNo 対応記録内訳番号
	 * @throws Exception 例外
	 */
	public static void entryTiokrUwCstWk(JBSbatCommonItem commonItem, String taioKirokNo, String taioKirokUcwkNo) throws Exception
	{
		// 対応記録内訳抽出ワーク登録
		JBSbatCRToiawaseShori.entryTiokrUwCstWk(commonItem, taioKirokNo, taioKirokUcwkNo);
	}

	/**
	 * 対応記録内訳抽出ワーク登録(新規登録時用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKirokNo 対応記録番号
	 * @throws Exception 例外
	 */
	public static void entryTiokrUwCstWkForNew(JBSbatCommonItem commonItem, String taioKirokNo) throws Exception
	{
		// 対応記録内訳抽出ワーク登録(新規登録時用)
		JBSbatCRToiawaseShori.entryTiokrUwCstWkForNew(commonItem, taioKirokNo);
	}

	/**
	 * NGワードチェック
	 * 
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKirokNo 対応記録番号
	 * @param text 対象文字列
	 * @param userId ユーザーID
	 * @param userNm ユーザー名
	 * @param wkKbtOrgCd 業務個別設定組織コード
	 * @return NGワード情報(List)
	 * @throws Exception 例外
	 * 
	 */
	public static List<String> checkNGWord(JBSbatCommonItem commonItem,
											String taioKirokNo,
											String text,
											String userId,
											String userNm,
											String wkKbtOrgCd) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("NGワードチェック");
		commonItem.getLogPrint().printDebugLog("　対応記録番号:" + taioKirokNo);
		commonItem.getLogPrint().printDebugLog("　対象文字列:" + text);
		commonItem.getLogPrint().printDebugLog("　ユーザーID:" + userId);
		commonItem.getLogPrint().printDebugLog("　ユーザー名:" + userNm);

		// NGワードチェック
		return JBSbatCRToiawaseShori.checkNGWord(commonItem,
												taioKirokNo,
												text,
												userId,
												userNm,
												wkKbtOrgCd);

	}

	/**
	 * NGワードチェック
	 * 
	 * @param commonItem バッチ共通パラメータ電文
	 * @param text 対象文字列
	 * @return NGワード情報(List)
	 * @throws Exception 例外
	 * 
	 */
	public static List<String> checkNGWord(JBSbatCommonItem commonItem, String text) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("NGワードチェック");
		commonItem.getLogPrint().printDebugLog("　対象文字列:" + text);

		// NGワードチェック
		return JBSbatCRToiawaseShori.checkNGWord(commonItem, text);
	}

	/**
	 * NGワード情報を取得する。
	 * @param commonItem バッチ共通パラメータ電文
	 * @return NGワードのList
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static List<String> getNGWord(JBSbatCommonItem commonItem) throws Exception
	{
		return JBSbatCRToiawaseShori.getNGWord(commonItem);
	}

	/**
	 * NGワード検知メール送信
	 * 
	 * @param commonItem バッチ共通パラメータ電文
	 * @param ngWorData NGワード情報
	 * @param userId ユーザーID
	 * @throws Exception 例外
	 * 
	 */
	public static void sendNGWordMail(JBSbatCommonItem commonItem,
										Map<String, List<Map<String, String>>> ngWorData,
										String userId) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("NGワード検知メール送信");
		commonItem.getLogPrint().printDebugLog("　NGワード情報:" + ngWorData);
		commonItem.getLogPrint().printDebugLog("　ユーザーID:" + userId);

		// NGワード検知メール送信
		JBSbatCRToiawaseShori.sendNGWordMail(commonItem, ngWorData, userId);

	}

	/**
	 * 問合せ関連データ削除
	 * 
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKirokNo 対応記録番号
	 * @param shoriDtm 処理年月日時分秒
	 * @throws Exception 例外
	 * 
	 */
	public static void deleteToiawase(JBSbatCommonItem commonItem, String taioKirokNo, String shoriDtm) throws Exception
	{
		commonItem.getLogPrint().printDebugLog("問合せ関連データ削除");
		commonItem.getLogPrint().printDebugLog("　対応記録番号:" + taioKirokNo);
		commonItem.getLogPrint().printDebugLog("　処理年月日時分秒:" + shoriDtm);

		// 問合せ関連データ削除
		JBSbatCRToiawaseShori.deleteToiawase(commonItem, taioKirokNo, shoriDtm);

	}

	/**
	 * 対応履歴電子ファイル検索
	 * (ファイル名から)
	 * SQLKEY(CR_SELECT_004)でDBアクセスを行います。<br>
	 * @param commonItem　バッチ共通パラメータ電文
	 * @param fileName ファイル名
	 * @param sbtCd 対応記録番号
	 * @return 対応履歴電子ファイル情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static List<JBSbatCommonDBInterface> getTaioBunshoByName(JBSbatCommonItem commonItem,
																	String fileName,
																	String sbtCd) throws Exception
	{
		// 対応履歴電子ファイル検索
		return JBSbatCRToiawaseShori.getTaioBunshoByName(commonItem, fileName, sbtCd);
	}

	/**
	 * 対応履歴文書管理論理削除
	 * SQLKEY(CR_UPDATE_01)でDBアクセスを行います。<br>
	 * @param commonItem　バッチ共通パラメータ電文
	 * @param shoriDtm 処理日時
	 * @param userId ユーザーID
	 * @param taioKirokNo 対応記録番号
	 * @return 論理削除件数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static int deleteTaioBunsho(JBSbatCommonItem commonItem,
										String shoriDtm,
										String userId,
										String taioKirokNo) throws Exception
	{
		// 対応履歴文書管理論理削除
		return JBSbatCRToiawaseShori.deleteTaioBunsho(commonItem, shoriDtm, userId, taioKirokNo);
	}

	/**
	 * 対応履歴文書管理登録
	 * @param commonItem バッチ共通パラメータ電文
	 * @param dataMap 対応履歴文書管理登録データのMap
	 * 			キーは、JBSbatCR_T_TAIO_BUNSHOクラスの定数
	 * @return 対応履歴文書管理番号
	 * @throws Exception 例外
	 */
	public static String entryTaioBunsho(JBSbatCommonItem commonItem, Map<String, String> dataMap) throws Exception
	{
		return JBSbatCRToiawaseShori.entryTaioBunsho(commonItem, dataMap);
	}

	/**
	 * 付属ファイル取得
	 * @param commonItem 共通情報
	 * @param targetFile 対象ファイル情報
	 * @param targetFileDirPath 対象ファイルパス(ディレクトリまで)
	 * @return 付属ファイルMap
	 * 			キー
	 * 			JCRBatCommon.KEY_KENSU_FILE	件数ファイル情報
	 * 			JCRBatCommon.KEY_FLAG_FILE	フラグファイル情報
	 */
	public static Map<String, File> getHuzokuFile(JBSbatCommonItem commonItem, File targetFile, File targetFileDirPath)
	{
		return JBSbatCRToiawaseShori.getHuzokuFile(commonItem, targetFile, targetFileDirPath);
	}

	/**
	 * 付属ファイル取得（ファイルタイプ指定）
	 * @param commonItem 共通情報
	 * @param targetFile 対象ファイル情報
	 * @param targetFileDirPath 対象ファイルパス(ディレクトリまで)
	 * @param huzokuFileType 付属ファイルタイプ（{拡張子, 付属ファイル種別名}）
	 * @return 付属ファイルMap
	 */
	public static Map<String, File> getHuzokuFileTypeShitei(JBSbatCommonItem commonItem,
															File targetFile,
															File targetFileDirPath,
															String[][] huzokuFileType)
	{
		return JBSbatCRToiawaseShori.getHuzokuFileTypeShitei(commonItem, targetFile, targetFileDirPath, huzokuFileType);
	}

	/**
	 * 件数ファイルチェック
	 * @param commonItem 共通情報
	 * @param targetFile 対象ファイル情報
	 * @param dataCount データ件数
	 * @param countFile 件数ファイル情報
	 * @return チェック結果
	 */
	public static boolean isCountFileCheckOK(JBSbatCommonItem commonItem, File targetFile, int dataCount, File countFile)
	{
		return JBSbatCRToiawaseShori.isCountFileCheckOK(commonItem, targetFile, dataCount, countFile);
	}

	/**
	 * データチェック(各項目チェック)(問合せ履歴情報インポート用)
	 * @param commonItem 共通情報
	 * @param dataList 1行分のデータ
	 * @param errorRecordCount エラーが存在したレコードの件数番号
	 * @param chgCRWord 改行コード変換文字
	 * @return エラー情報
	 * @throws Exception 例外
	 */
	public static Map<String, Object> checkTrkmData(JBSbatCommonItem commonItem,
													List<String> dataList,
													int errorRecordCount,
													String chgCRWord) throws Exception
	{
		return JBSbatCRRrkInfoImport.checkTrkmData(commonItem, dataList, errorRecordCount, chgCRWord);
	}

	/**
	 * データチェック(各項目チェック)(問合せ履歴情報インポート用)
	 * @param commonItem 共通情報
	 * @param dataList 1行分のデータ
	 * @param errorRecordCount エラーが存在したレコードの件数番号
	 * @param chgCRWord 改行コード変換文字
	 * @param isMate MATEファイルの場合true
	 * @return エラー情報
	 * @throws Exception 例外
	 */
	public static Map<String, Object> checkTrkmData(JBSbatCommonItem commonItem,
													List<String> dataList,
													int errorRecordCount,
													String chgCRWord,
													boolean isMate) throws Exception
	{
		return JBSbatCRRrkInfoImport.checkTrkmData(commonItem, dataList, errorRecordCount, chgCRWord, isMate);
	}

	/**
	 * テーブルデータチェック処理(問合せ履歴情報インポート用)
	 * @param commonItem 共通情報
	 * @param dataList 1行分のデータ
	 * @param errorRecordCount エラーが存在したレコードの件数番号
	 * @param chgCRWord 改行コード変換文字
	 * @return チェック結果のMap
	 * 			キー
	 * 			KEY_EXIST_ERROR		エラーが有る場合はtrue
	 * 			KEY_SVC_KEY_NO		サービス契約番号
	 * 			KEY_QUE_BOX_NO		キューBOX番号(取得できた場合)
	 * 			KEY_MYBOX_NO		MYBOX番号(取得できた場合)
	 * 			KEY_LOG_DATA		ログ情報
	 * @throws Exception 例外
	 */
	public static Map<String, Object> checkTableData(JBSbatCommonItem commonItem,
													List<String> dataList,
													int errorRecordCount,
													String chgCRWord) throws Exception
	{
		return JBSbatCRRrkInfoImport.checkTableData(commonItem, dataList, errorRecordCount, chgCRWord);
	}

	/**
	 * テーブルデータチェック処理(問合せ履歴情報インポート用)
	 * @param commonItem 共通情報
	 * @param dataList 1行分のデータ
	 * @param errorRecordCount エラーが存在したレコードの件数番号
	 * @param chgCRWord 改行コード変換文字
	 * @param isMate MATEファイルの場合true
	 * @return チェック結果のMap
	 * 			キー
	 * 			KEY_EXIST_ERROR		エラーが有る場合はtrue
	 * 			KEY_SVC_KEY_NO		サービス契約番号
	 * 			KEY_QUE_BOX_NO		キューBOX番号(取得できた場合)
	 * 			KEY_MYBOX_NO		MYBOX番号(取得できた場合)
	 * 			KEY_LOG_DATA		ログ情報
	 * @throws Exception 例外
	 */
	public static Map<String, Object> checkTableData(JBSbatCommonItem commonItem,
													List<String> dataList,
													int errorRecordCount,
													String chgCRWord,
													boolean isMate) throws Exception
	{
		return JBSbatCRRrkInfoImport.checkTableData(commonItem, dataList, errorRecordCount, chgCRWord, isMate);
	}

	/**
	 * 問合せ客登録(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param dataList 対象データ(1行分)
	 * @return 問合せ客番号
	 * @throws Exception 例外
	 */
	public static String entryTiawsKyaku(JBSbatCommonItem commonItem, List<String> dataList) throws Exception
	{
		return JBSbatCRRrkInfoImport.entryTiawsKyaku(commonItem, dataList);
	}

	/**
	 * 対応記録明細登録(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param dataList 対象データ(1行分)
	 * @param taioKirkNo 対応記録番号
	 * @param jotaiCd 問合せ状態コード
	 * @throws Exception 例外
	 */
	public static void entryTaiokirkDtl(JBSbatCommonItem commonItem, List<String> dataList, String taioKirkNo, String jotaiCd)
	throws Exception
	{
		JBSbatCRRrkInfoImport.entryTaiokirkDtl(commonItem, dataList, taioKirkNo, jotaiCd);
	}

	/**
	 * 対応記録明細登録(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param dataList 対象データ(1行分)
	 * @param taioKirkNo 対応記録番号
	 * @param jotaiCd 問合せ状態コード
	 * @param isMATE MATE取込の場合true
	 * @throws Exception 例外
	 */
	public static void entryTaiokirkDtl(JBSbatCommonItem commonItem, List<String> dataList, String taioKirkNo, String jotaiCd, boolean isMATE)
	throws Exception
	{
		JBSbatCRRrkInfoImport.entryTaiokirkDtl(commonItem, dataList, taioKirkNo, jotaiCd, isMATE);
	}

	/**
	 * 対応記録内訳登録
	 * @param commonItem バッチ共通パラメータ電文
	 * @param taioKirkNo 対応記録番号
	 * @throws Exception 例外
	 */
	public static void entryTaiokirkUcwk(JBSbatCommonItem commonItem, String taioKirkNo) throws Exception
	{
		JBSbatCRRrkInfoImport.entryTaiokirkUcwk(commonItem, taioKirkNo);
	}

	/**
	 * 対応記録内訳カテゴリー登録
	 * @param commonItem バッチ共通パラメータ電文
	 * @param ctgrs カテゴリー配列
	 * @param taioKirkNo 対応記録番号
	 * @throws Exception 例外
	 */
	public static void entryTaiokirkUwCtgr(JBSbatCommonItem commonItem,
											String[] ctgrs,
											String taioKirkNo) throws Exception
	{
		JBSbatCRRrkInfoImport.entryTaiokirkUwCtgr(commonItem, ctgrs, taioKirkNo);
	}

	/**
	 * NGワードチェック(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param jokenList NGワードチェック条件のList
	 * @param dataList 対象データ(1行分)
	 * @param taioKirkNo 対応記録番号
	 * @param workGroupCd 業務個別設定組織コード
	 * @return NGワードエラー情報
	 * @throws Exception 例外
	 */
//	public static Map<String, Map<String, String>> checkRrkInfoInportNGWord(JBSbatCommonItem commonItem,
//																			String[] jokenList,
//																			List<String> dataList,
//																			String taioKirkNo,
//																			String workGroupCd) throws Exception
//	{
//		return JBSbatCRRrkInfoInport.checkRrkInfoInportNGWord(commonItem, jokenList, dataList, taioKirkNo, workGroupCd);
//	}

	/**
	 * NGワードチェック
	 * @param commonItem バッチ共通パラメータ電文
	 * @param jokenList NGワードチェック条件のList
	 * @param dataList 対象データ(1行分)
	 * @return NGワードエラー情報
	 * @throws Exception 例外
	 */
	public static List<String> checkRrkInfoInportNGWord(JBSbatCommonItem commonItem,
														String[] jokenList,
														List<String> dataList) throws Exception
	{
		return JBSbatCRRrkInfoImport.checkRrkInfoInportNGWord(commonItem, jokenList, dataList);
	}

	/**
	 * 業務個別設定組織コード(ワークグループ)取得(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param userId ユーザーID
	 * @param queBoxNo キューBOX番号
	 * @return 業務個別設定組織コード
	 * @throws Exception 例外
	 */
	public static String getWorkGroupCd(JBSbatCommonItem commonItem, String userId, String queBoxNo) throws Exception
	{
		return JBSbatCRRrkInfoImport.getWorkGroupCd(commonItem, userId, queBoxNo);
	}

	/**
	 * 問合せモニター集計用データ登録(問合せ履歴情報インポート用)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param queBoxNo キューBOX番号
	 * @param jotaiCd 状態コード
	 * @param taioKirkNo 対応記録番号
	 * @param userId ユーザーID
	 * @param workGroupCd 業務個別設定組織コード
	 * @param existNGWord NGワードが存在する場合true
	 * @throws Exception 例外
	 */
	public static void entryRrkInfoInportTiawsMntData(JBSbatCommonItem commonItem,
														String queBoxNo,
														String jotaiCd,
														String taioKirkNo,
														String userId,
														String workGroupCd,
														boolean existNGWord) throws Exception
	{
		JBSbatCRRrkInfoImport.entryTiawsMonitorData(commonItem, queBoxNo, jotaiCd, taioKirkNo, userId, workGroupCd, existNGWord);
	}

	/**
	 * キューBOXの現在格納数更新
	 * @param commonItem バッチ共通パラメータ電文
	 * @param queBoxMap キューBOX更新情報
	 * @throws Exception 例外
	 */
	public static void updateQueBox(JBSbatCommonItem commonItem, Map<String, Integer> queBoxMap) throws Exception
	{
		JBSbatCRRrkInfoImport.updateQueBox(commonItem, queBoxMap);
	}

	/**
	 * MYBOXの現在格納数更新
	 * @param commonItem バッチ共通パラメータ電文
	 * @param myboxMap MYBOX更新情報
	 * @throws Exception 例外
	 */
	public static void updateMybox(JBSbatCommonItem commonItem, Map<String, Integer> myboxMap) throws Exception
	{
		JBSbatCRRrkInfoImport.updateMybox(commonItem, myboxMap);
	}

	/**
	 * エラーファイル登録
	 * @param commonItem 共通情報
	 * @param outputFilePath 一時ファイルパス
	 * @param errData エラー行データ
	 * @param logData ログデータ
	 * @param csvFile 対象CSVファイル
	 * @param targetFilePreFix 対象ファイル名のプレフィックス
	 * @param errorFilePreFix エラーファイル名のプレフィックス
	 * @param chgCRWord 改行コード変換文字
	 * @throws Exception 例外
	 */
	public static void entryErrorFile(JBSbatCommonItem commonItem, 
										File outputFilePath,
										String errData,
										String logData,
										File csvFile,
										String targetFilePreFix,
										String errorFilePreFix,
										String chgCRWord) throws Exception
	{
		entryErrorFile(commonItem,
						null,
						outputFilePath,
						errData,
						logData,
						csvFile,
						targetFilePreFix,
						errorFilePreFix,
						chgCRWord);
	}

	/**
	 * エラーファイル登録
	 * @param commonItem 共通情報
	 * @param wkkbtOrgCd 業務個別設定組織コード
	 * @param outputFilePath 一時ファイルパス
	 * @param errData エラー行データ
	 * @param logData ログデータ
	 * @param csvFile 対象CSVファイル
	 * @param targetFilePreFix 対象ファイル名のプレフィックス
	 * @param errorFilePreFix エラーファイル名のプレフィックス
	 * @param chgCRWord 改行コード変換文字
	 * @throws Exception 例外
	 */
	public static void entryErrorFile(JBSbatCommonItem commonItem, 
										String wkkbtOrgCd,
										File outputFilePath,
										String errData,
										String logData,
										File csvFile,
										String targetFilePreFix,
										String errorFilePreFix,
										String chgCRWord) throws Exception
	{
		JBSbatCRRrkInfoImport.entryErrorFile(commonItem,
											wkkbtOrgCd,
											outputFilePath,
											errData,
											logData,
											csvFile,
											targetFilePreFix,
											errorFilePreFix,
											chgCRWord);
	}

	/**
	 * 1レコード1行化<P>
	 * ダブルクォートに囲まれた項目内に改行があるCSVファイルをの1レコードを
	 * 1行に変換して一時ファイルに出力する。
	 * 改行コードは別の文字に変換する。
	 * @param commonItem 共通情報
	 * @param file 変換対象ファイル
	 * @param henkangoPath 変換後のファイルを出力するディレクトリーのパス
	 * @return 変換情報のMap
	 * 				キー						内容
	 * 				KEY_KAIGYO_CD_HENKAN_MOJI	改行コード変換文字列(String)
	 * 				KEY_HENKANGO_FILE			出力ファイル(File)
	 * 				KEY_COUNT					件数(Integer)
	 * @throws IOException 例外
	 */
	public static Map<String, Object> chgToOneRowForCsv(JBSbatCommonItem commonItem, File file, File henkangoPath) throws IOException
	{
		return JBSbatCRRrkInfoImport.chgToOneRowForCsv(commonItem, file, henkangoPath);
	}

	/**
	 * スキーマ別のデータアクセスオブジェクトを取得する。
	 * (生成したデータアクセスオブジェクトは共有するためにMapに保持する)
	 * @param commonItem バッチ共通パラメータ電文
	 * @param tableName テーブル名
	 * @return 指定テーブル用データアクセスオブジェクト
	 * @throws SQLException SQL実行例外
	 * @throws IOException ファイルIO例外
	 */
	public static JBSbatSQLAccess getDataAccessObj(JBSbatCommonItem commonItem, String tableName) throws SQLException, IOException
	{
		return JBSbatCRDataAccessUtil.getDataAccessObj(commonItem, tableName);
	}

	/**
	 * データアクセスオブジェクトをクローズする
	 * @param commonItem バッチ共通パラメータ電文
	 */
	public static void closeDataAccessObj(JBSbatCommonItem commonItem)
	{
		JBSbatCRDataAccessUtil.closeDataAccessObj(commonItem);
	}

	/**
	 * コード名称からコード区分を取得する。
	 * @param commonItem バッチ共通パラメータ電文
	 * @param shubetsu コード種別区分
	 * @param cdNm コード名称
	 * @return 取得データ情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static String getCodeKbn(JBSbatCommonItem commonItem, String shubetsu, String cdNm) throws Exception
	{
		return JBSbatCRDataAccessUtil.getCodeKbn(commonItem, shubetsu, cdNm);
	}

	/**
	 * コード種別からコード区分情報を取得する。
	 * @param commonItem バッチ共通パラメータ電文
	 * @param shubetsu コード種別区分
	 * @return 取得データ情報
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static List<JBSbatCommonDBInterface> getCodeNm(JBSbatCommonItem commonItem, String shubetsu) throws Exception
	{
		return JBSbatCRDataAccessUtil.getCodeNm(commonItem, shubetsu);
	}

	/**
	 * SELECTされたデータのListを取得する。
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.JBSbatSQLAccessオブジェクトのselectNext()で1行分のデータを取得する。<br>
	 * 2.データが存在する場合、戻り値のListに追加する。<br>
	 * ※ 1,2を繰り返して結果を返す。データが無ければnullを返す。<br>
	 * </pre>
	 * @param tableObject JBSbatSQLAccessオブジェクト
	 * @return 取得結果データのList
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static List<JBSbatCommonDBInterface> getSelectedDataList(JBSbatSQLAccess tableObject)  throws Exception
	{
		return JBSbatCRDataAccessUtil.getSelectedDataList(tableObject);
	}

	/**
	 * ユーザーIDからユーザー名を取得する。
	 * @param commonItem バッチ共通パラメータ電文
	 * @param userId ユーザーID
	 * @return ユーザー名
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static String getUserNm(JBSbatCommonItem commonItem, String userId) throws Exception
	{
		return JBSbatCRDataAccessUtil.getUserNm(commonItem, userId);
	}

	/**
	 * 業務個別設定組織コードから業務個別設定組織名を取得する。
	 * @param commonItem バッチ共通パラメータ電文
	 * @param wkkbtOrgCd 業務個別設定組織コード
	 * @return 業務個別設定組織名
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static String getWkkbtOrgNm(JBSbatCommonItem commonItem, String wkkbtOrgCd) throws Exception
	{
		return JBSbatCRDataAccessUtil.getWkkbtOrgNm(commonItem, wkkbtOrgCd);
	}

	/**
	 * エラーファイル電子ファイル管理登録
	 * @param commonItem 共通情報
	 * @param errFilePath エラーファイルパス情報
	 * @param errListData エラー情報
	 * @return 電子ファイル管理番号
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static void entryErrFileData(JBSbatCommonItem commonItem, String errFilePath, List<String> errListData) throws Exception
	{
		JBSbatCRToiawaseShori.entryErrFileData(commonItem, errFilePath, errListData);
	}

	/**
	 * トータル処理時間計算<br>
	 * <br>
	 * 開始時刻(例:対応開始年月日時分秒(14桁))から終了時刻(例:システム日時(14桁))
	 * までの時間を分として換算した値を返す。
	 * (オンラインの
	 * eo.ejb.common.edit.JCRejbCalcDifferenceTimeクラス(koptModel)の
	 * getDifferenceTime()メソッドと同内容のメソッドをバッチ用に作成)
	 *
	 * @param startTime 開始時刻(String yyyyMMddHHmiss)
	 * @param endTime 終了時刻(String yyyyMMddHHmiss)
	 * @return 分に換算した値
	 */
	public static String calcTotalTranTime(String startTime, String endTime)
	{
		return JBSbatCRToiawaseShori.calcTotalTranTime(startTime, endTime);
	}

	/**
	 * 処理件数ログ出力
	 * @param commonItem 共通情報
	 * @param title タイトル　例：ディレイド処理件数
	 * @param count 件数
	 */
	public static void printShoriCountLog(JBSbatCommonItem commonItem, String title, int count)
	{
		JBSbatCRToiawaseShori.printShoriCountLog(commonItem, title, count);
	}

	/**
	 * キューBOXの現在格納数を対応記録から算出して更新する
	 * SQLKEY(CR_UPDATE_005)でDBアクセスを行います。<br>
	 * @param commonItem　バッチ共通パラメータ電文
	 * @param queBoxNo キューBOX番号
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static void updateQueNowKaknoCnt(JBSbatCommonItem commonItem, String queBoxNo) throws Exception
	{
		JBSbatCRToiawaseShori.updateQueNowKaknoCnt(commonItem, queBoxNo);
	}

	/**
	 * ユーザーIDからMYBOXの現在格納数を対応記録から算出して更新する
	 * SQLKEY(CR_UPDATE_004)でDBアクセスを行います。<br>
	 * @param commonItem　バッチ共通パラメータ電文
	 * @param userId ユーザーID
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static void updateMyBoxNowKaknoCntByUserId(JBSbatCommonItem commonItem, String userId) throws Exception
	{
		JBSbatCRToiawaseShori.updateMyBoxNowKaknoCntByUserId(commonItem, userId);
	}

	/**
	 * MYBOXの現在格納数を対応記録から算出して更新する
	 * SQLKEY(CR_UPDATE_004)でDBアクセスを行います。<br>
	 * @param commonItem　バッチ共通パラメータ電文
	 * @param myBoxNo キューBOX番号
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	public static void updateMyBoxNowKaknoCnt(JBSbatCommonItem commonItem, String myBoxNo) throws Exception
	{
		JBSbatCRToiawaseShori.updateMyBoxNowKaknoCnt(commonItem, myBoxNo);
	}

	/**
	 * CSVファイル変換処理<br>
	 * CSVの項目がダブルクォーテーションで囲まれていない文字列にも対応。
	 * @param commonItem 共通情報
	 * @param fileName 認証IDファイルパス
	 * @return 認証IDファイルデータリスト
	 * @throws Exception 例外
	 */
	public static  List<List<String>> convNonQuateCsvFiletoList(JBSbatCommonItem commonItem, String fileName) throws Exception
	{
		return JBSbatCRCsvFileSyori.convNonQuateCsvFiletoList(commonItem, fileName);
	}

	/**
	 * 後方一致検索の検索文字列を取得します。
	 * @param value 検索文字
	 * @return % + ワイルドカードをエスケープした検索文字
	 */
	public static String getPostfixSearchString(String value)
	{
		return JBSbatCRDataAccessUtil.getPostfixSearchString(value);
	}
}
