/*********************************************************************
 *  All Rights reserved,Copyright (c) K-Opticom  					 *
 **********************************************************************
 *＜プログラム内容＞
 *	システム名			：eo顧客基幹システム
 *	モジュール名		：JCHbatIktKnkIdoSksUtil
 *	ソースファイル名	：JCHbatIktKnkIdoSksUtil.java
 *	作成者				：富士通　
 *	作成日				：2023年10月11日
 *＜機能概要＞
 *　一括金庫移動登録Util部品。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	v68.00.00	2023/10/11	FJ)美濃原	【ANK-4475-00-00】インボイス対応 STEP2 新規作成
 *********************************************************************/
package eo.business.common;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import eo.business.util.file.JBSbatCHIFM434;
import eo.business.util.table.JBSbatCC_T_DLYD_TRN_REQ;
import eo.business.util.table.JBSbatCH_T_KNK;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JPCModelConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;

/**
 * 一括金庫移動登録Util部品です。
 * <p>
 *<BR>
 * 
 * @author 富士通
 */
public class JCHbatIktKnkIdoSksUtil
{

	/**
	 * 移動先金庫ステータス：処理済金（貸倒後入金）
	 */
	private final String KSDOR_NYUKIN_AMNT = "00900086301";

	/**
	 * 貸倒後入金選択フラグ（選択：無）
	 */
	private final String KSDOR_SEL_NASI = "0";

	/**
	 * 貸倒後入金選択フラグ（選択：有）
	 */
	private final String KSDOR_SEL_ARI = "1";


	/** バッチ共通パラメータ */
	private JBSbatCommonItem commonItem = null;

	/** サービス呼出し用 */
//	/** サービスID: "CHSV0016" 金庫移動登録画面情報取得 */
//	public static final String UCID_CHSV0016 = "CHSV0016";
//	/** オペレーションID: "CHSV0016OP" */
//	public static final String OPID_CHSV0016OP = "CHSV0016OP";

	/** サービスID: "CHSV0017" 金庫移動登録 */
	public static final String UCID_CHSV0017 = "CHSV0017";
	/** オペレーションID: "CHSV0017OP" */
	public static final String OPID_CHSV0017OP = "CHSV0017OP";

	/** テーブル(ディレイド処理依頼)*/
	private static final String D_TBL_NAME_CC_T_DLYD_TRN_REQ = "CC_T_DLYD_TRN_REQ";

	/** テーブルアクセスクラス(ディレイド処理依頼)*/
	private JBSbatSQLAccess db_CC_T_DLYD_TRN_REQ = null;

	/** ユーザーID */
	private static final String USER_ID = "userId";
	/** ユーザー名 */
	private static final String USER_NM = "userNm";
	/** 業務個別設定組織コード */
	private static final String WKKBT_ORG_CD = "wkkbtOrgCd";
	/** 業務個別設定組織名 */
	private static final String WKKBT_ORG_NM = "wkkbtOrgNm";

    /** 移動先請求契約番号１ */
    public static final String KNK_IDO_SK_SEIKY_KEI_NO_1 = "IDO_SK_SEIKY_KEI_NO_1";
//    /** 移動先請求契約者名１ */
//    private static final String KNK_IDO_SK_SOHUS_NM_1 = "IDO_SK_SOHUS_NM_1";
    /** 移動先金庫金額１ */
    public static final String KNK_IDO_SK_KNK_AMNT_1 = "IDO_SK_KNK_AMNT_1";
    /** 業務機能識別コード１ */
    public static final String KNK_IDO_SK_WORK_KINO_SKBT_CD_1 = "WORK_KINO_SKBT_CD_1";
    /** 移動先金庫料金項目コード１ */
    public static final String KNK_KNK_PRC_KMK_CD_1 = "KNK_PRC_KMK_CD_1";
    /** 移動先記事１ */
    public static final String KNK_IDO_SK_KIJI_1 = "KIJI_1";
    /** 移動先精算方法コード１ */
    public static final String SSN_WAY_CD_AF_1 = "SSN_WAY_CD_AF_1";
    /** 料金対応記録種別詳細コード１ */
    public static final String PRC_TAIO_KIROK_SBT_DTL_CD_1 = "prc_taio_kirok_sbt_dtl_cd_1";

    /** 移動先請求契約番号２ */
    public static final String KNK_IDO_SK_SEIKY_KEI_NO_2 = "IDO_SK_SEIKY_KEI_NO_2";
//    /** 移動先請求契約者名２ */
//    private static final String KNK_IDO_SK_SOHUS_NM_2 = "IDO_SK_SOHUS_NM_2";
    /** 移動先金庫金額２ */
    public static final String KNK_IDO_SK_KNK_AMNT_2 = "IDO_SK_KNK_AMNT_2";
    /** 移動先精算方法コード２ */
    public static final String SSN_WAY_CD_AF_2 = "SSN_WAY_CD_AF_2";
    /** 料金対応記録種別詳細コード２ */
    public static final String PRC_TAIO_KIROK_SBT_DTL_CD_2 = "prc_taio_kirok_sbt_dtl_cd_2";
    /** 業務機能識別コード２ */
    public static final String KNK_IDO_SK_WORK_KINO_SKBT_CD_2 = "WORK_KINO_SKBT_CD_2";
    /** 移動先金庫料金項目コード２ */
    public static final String KNK_KNK_PRC_KMK_CD_2 = "KNK_PRC_KMK_CD_2";
    /** 移動先記事２ */
    public static final String KNK_IDO_SK_KIJI_2 = "KIJI_21";

    /** 請求契約番号(ダミー値) */
	private final String DMY_SEIKY_KEI_NO = "9999999999";

    /**
	 * コンストラクタ
	 * 
	 * @param item　バッチ共通パラメータ
	 * @param dlydTrnReqNo　ディレイド処理依頼番号
	 * @throws Exception
	 */
	public JCHbatIktKnkIdoSksUtil(JBSbatCommonItem item, String dlydTrnReqNo) throws Exception
	{
		commonItem = item;
		db_CC_T_DLYD_TRN_REQ = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CC_T_DLYD_TRN_REQ);
	}

	/**
	 * コンストラクタ
	 * 
	 * @param item　バッチ共通パラメータ
	 * @throws Exception
	 */
	public JCHbatIktKnkIdoSksUtil(JBSbatCommonItem item) throws Exception
	{
		commonItem = item;
		db_CC_T_DLYD_TRN_REQ = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CC_T_DLYD_TRN_REQ);
	}

	/** 
	 * ECH0191D020_金庫移動登録(CHSV001701SC) 上りマッピング
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param funcCode　機能コード
	 */
	@SuppressWarnings("unchecked")
	public void setCHSV001701SC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg, String funcCode)
	{
		// パラメータ
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		ArrayList list = null;

		// 共通情報のマッピング
		parentMap.put("func_code", funcCode);

		// 金庫番号 → 金庫移動登録マップ.金庫番号
		parentMap.put("knk_no", befKnk.get(JBSbatCH_T_KNK.KNK_NO));

		// 請求契約番号 → 金庫移動登録マップ.移動元請求契約番号
		parentMap.put("ido_mt_seiky_kei_no", befKnk.get(JBSbatCH_T_KNK.SEIKY_KEI_NO));

		// 入金番号 → 金庫移動登録マップ.入金番号
		parentMap.put("nyukin_no", befKnk.get(JBSbatCH_T_KNK.NYUKIN_NO));

		// 移動元金庫情報．現在金庫ステータスコード → 金庫移動登録マップ．金庫料金項目コード
		parentMap.put("knk_prc_kmk_cd", befKnk.get(JBSbatCH_T_KNK.KNK_PRC_KMK_CD));

		// 督促番号 → 金庫移動登録マップ.督促番号
		parentMap.put("tokusoku_no", knkchg.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO));

		// 移動元金庫情報．移動元金庫金額 → 金庫移動登録マップ.金庫金額
		parentMap.put("knk_amnt", befKnk.get(JBSbatCH_T_KNK.KNK_AMNT));

		// 移動元金庫更新年月日時分秒 → 金庫移動登録マップ.金庫移動登録明細.移動元金庫更新年月日時分秒
		parentMap.put("knk_upd_dtm", befKnk.get(JBSbatCH_T_KNK.UPD_DTM));

		if (parentMap.containsKey("ECH0191D020CBSMsg1List"))
		{
			list = (ArrayList)parentMap.get("ECH0191D020CBSMsg1List");
		}
		else
		{
			list = new ArrayList();
		}
		HashMap childMap1 = new HashMap();
		HashMap childMap2 = new HashMap();

		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_1, KNK_IDO_SK_SEIKY_KEI_NO_1, KNK_IDO_SK_KNK_AMNT_1))
		{
			// 移動先請求契約番号１ → 金庫移動登録マップ.金庫移動登録明細.請求契約番号
			childMap1.put("seiky_kei_no", knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_1));

			// 移動先金庫料金項目コード１ → 金庫移動登録マップ.金庫移動登録明細.移動先金庫料金項目コード
			childMap1.put("knk_prc_kmk_cd_af", knkchg.get(KNK_KNK_PRC_KMK_CD_1));

			// 移動先金庫金額１ → 金庫移動登録マップ.金庫移動登録明細.移動先金庫金額
			childMap1.put("knk_amnt_af", knkchg.get(KNK_IDO_SK_KNK_AMNT_1));

			// 精算方法コード１ → 金庫移動登録マップ.金庫移動登録明細.移動先精算方法コード
			childMap1.put("ssn_way_cd_af", knkchg.get(SSN_WAY_CD_AF_1));

			list.add(childMap1);
		}

		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_2, KNK_IDO_SK_SEIKY_KEI_NO_2, KNK_IDO_SK_KNK_AMNT_2))
		{
			// 移動先請求契約番号２ → 金庫移動登録マップ.金庫移動登録明細.請求契約番号
			childMap2.put("seiky_kei_no", knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_2));

			// 移動先金庫料金項目コード２ → 金庫移動登録マップ.金庫移動登録明細.移動先金庫料金項目コード
			childMap2.put("knk_prc_kmk_cd_af", knkchg.get(KNK_KNK_PRC_KMK_CD_2));

			// 移動先金庫金額２ → 金庫移動登録マップ.金庫移動登録明細.移動先金庫金額
			childMap2.put("knk_amnt_af", knkchg.get(KNK_IDO_SK_KNK_AMNT_2));

			// 精算方法コード２ → 金庫移動登録マップ.金庫移動登録明細.移動先精算方法コード
			childMap2.put("ssn_way_cd_af", knkchg.get(SSN_WAY_CD_AF_2));

			list.add(childMap2);
		}
		// ANK-4475-00-00：現状、リストは最大２つまで使用。

		parentMap.put("ECH0191D020CBSMsg1List", list);

		inputMap.put("CHSV001701SC", parentMap);

	}

	/**
	 * TAIOKIROKADDCC_顧客対応記録登録CC(TAIOKIROKADDCC) 上りマッピング
	 * 
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param func_code　機能コード
	 * @param userMap　ユーザー関連マップ
	 * @return マッピング情報
	 */
	@SuppressWarnings("unchecked")
	public HashMap setTAIOKIROKADDCC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg,
			String func_code, HashMap<String, String> userMap)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String wkkbtOrgCd = userMap.get(JCHbatIktKnkIdoSksUtil.WKKBT_ORG_CD);
		String wkkbtOrgNm = userMap.get(JCHbatIktKnkIdoSksUtil.WKKBT_ORG_NM);
		String userId = userMap.get(JCHbatIktKnkIdoSksUtil.USER_ID);
		String userNm = userMap.get(JCHbatIktKnkIdoSksUtil.USER_NM);
		String dtm = JCCBatCommon.getSysDateTime();

		ArrayList<HashMap<String, Object>> taioKirokAddList = new ArrayList<HashMap<String, Object>>();

		HashMap parentMap2 = null;
		if (inputMap.containsKey("PRCTAIOKIROKADDCC"))
		{
			parentMap2 = (HashMap) inputMap.get("PRCTAIOKIROKADDCC");
		}

		ArrayList prcTaioKirokList = null;
		if (parentMap2.containsKey("prc_taio_kirok_list"))
		{
			prcTaioKirokList = (ArrayList) parentMap2.get("prc_taio_kirok_list");

			for (int i = 0; i < prcTaioKirokList.size(); i++)
			{
				HashMap childMapPrc = (HashMap) prcTaioKirokList.get(i);
				String prcTaioKirokSbtDtlCd = (String) childMapPrc.get("prc_taio_kirok_sbt_dtl_cd");

				HashMap<String, Object> childMap = new HashMap<String, Object>();

				// 金庫移動登録["124"固定] → 対応記録登録マップ.対応記録登録リスト.料金対応記録種別コード
				childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_IDO_ADD);

				// 料金対応記録種別詳細コード → 対応記録登録マップ.対応記録登録リスト.料金対応記録種別詳細コード
				childMap.put("prc_taio_kirok_dtl_bunrui_cd", prcTaioKirokSbtDtlCd);

				// "金庫移動登録" → 対応記録登録マップ.対応記録登録リスト.タイトル
				childMap.put("title", JACStrConst.SCREEN_NAME_IKT_KNK);

				// 記事 → 対応記録登録マップ.対応記録登録リスト.問合せ内容
				childMap.put("toiawase_naiyo", knkchg.get(JBSbatCHIFM434.KIJI));

				// 業務個別設定組織コード → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織コード
				childMap.put("wkkbt_org_cd", wkkbtOrgCd);

				// 業務個別設定組織名 → 対応記録登録マップ.対応記録登録リスト.業務個別設定組織名
				childMap.put("wkkbt_org_nm", wkkbtOrgNm);

				// ユーザーＩＤ → 対応記録登録マップ.対応記録登録リスト.ユーザーＩＤ
				childMap.put("user_id", userId);

				// ユーザー名 → 対応記録登録マップ.対応記録登録リスト.ユーザー名
				childMap.put("user_nm", userNm);

				// 年月日時分秒 → 対応記録登録マップ.対応記録登録リスト.年月日時分秒
				childMap.put("dtm", dtm);

				// 応対区分カテゴリーリストの作成
				ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
				HashMap<String, Object> ctgrMap = new HashMap<String, Object>();

				// 金庫移動登録["124"固定] → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別コード
				ctgrMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_IDO_ADD);

				// 料金対応記録種別詳細コード → 対応記録登録マップ.応対区分カテゴリーリスト.料金対応記録種別詳細コード
				ctgrMap.put("prc_taio_kirok_dtl_bunrui_cd", prcTaioKirokSbtDtlCd);

				// taio_kirok_add_listにrsp_ctgr_listを追加
				rspCtgrList.add(ctgrMap);
				childMap.put("rsp_ctgr_list", rspCtgrList);

				taioKirokAddList.add(childMap);
			}
		}

		parentMap.put("taio_kirok_add_list", taioKirokAddList);

		parentMap.put("seiky_kei_no", befKnk.get(JBSbatCHIFM434.SEIKY_KEI_NO));

		inputMap.put(JACStrConst.TAIOKIROKADDCC_MAP_ID, parentMap);

		return inputMap;
	}

	/**
	 * ADDHOTVOICCC_ホットボイスCC(ADDHOTVOICCC) 上りマッピング
	 * 
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setADDHOTVOICCC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg, String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 応対区分カテゴリーリストの作成
		ArrayList<HashMap<String, Object>> rspCtgrList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> ctgrMap = new HashMap<String, Object>();
		rspCtgrList.add(ctgrMap);

		parentMap.put("RSP_CTGR_List", rspCtgrList);
		inputMap.put("ADDHOTVOICCC", parentMap);

		return inputMap;
	}

	/**
	 * PRCTAIOKIROKADDCC_料金対応記録登録CC(PRCTAIOKIROKADDCC) 上りマッピング
	 * 
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param func_code　機能コード
	 * @param userMap　ユーザー関連マップ
	 * @return マッピング情報
	 */
	@SuppressWarnings("unchecked")
	public HashMap setPRCTAIOKIROKADDCC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg,
			String func_code, HashMap<String, String> userMap)
	{

		List<HashMap<String, Object>> list = null;
		HashMap childMap = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String userId = userMap.get(JCHbatIktKnkIdoSksUtil.USER_ID);

		if (parentMap.containsKey("prc_taio_kirok_list"))
		{
			list = (ArrayList)parentMap.get("prc_taio_kirok_list");
		}
		else
		{
			list = new ArrayList();
		}

		// 移動元金庫情報
		String idoMtKnkAmnt = befKnk.get(JBSbatCH_T_KNK.KNK_AMNT);
		String idoMtKnkStats = befKnk.get(JBSbatCH_T_KNK.KNK_PRC_KMK_CD);

		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_1, KNK_IDO_SK_SEIKY_KEI_NO_1, KNK_IDO_SK_KNK_AMNT_1))
		{
			childMap = new HashMap();

			// ユーザＩＤ → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応ユーザＩＤ
			childMap.put("prc_taio_user_id", userId);

			// 請求契約番号 → 料金対応記録登録マップ.料金対応記録明細リスト.請求契約番号
			childMap.put("seiky_kei_no", befKnk.get(JBSbatCH_T_KNK.SEIKY_KEI_NO));

			// 金庫移動登録["124"固定] → 料金対応記録登録マップ.料金対応記録種別コード
			childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_IDO_ADD);

			// 移動先金庫料金項目コード
			String idoSkKnkStats1 = knkchg.get(KNK_KNK_PRC_KMK_CD_1);
			
			// 料金対応記録種別詳細コード → 料金対応記録登録マップ.料金対応記録種別詳細コード
			childMap.put("prc_taio_kirok_sbt_dtl_cd", knkchg.get(PRC_TAIO_KIROK_SBT_DTL_CD_1));

			// "金庫移動登録" → 料金対応記録登録マップ.料金対応記録明細リスト.タイトル
			childMap.put("title", JACStrConst.SCREEN_NAME_IKT_KNK);

			// 記事 → 料金対応記録登録マップ.料金対応記録明細リスト.記事
			childMap.put("kiji", knkchg.get(KNK_IDO_SK_KIJI_1));

			// 移動元金庫金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前金額
			childMap.put("chg_bf_amnt", idoMtKnkAmnt);

			// 移動先金庫金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後金額
			childMap.put("chg_af_amnt", knkchg.get(KNK_IDO_SK_KNK_AMNT_1));

			// 現在金庫ステータスコード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前料金項目コード
			childMap.put("chg_bf_prc_kmk_cd", idoMtKnkStats);

			// 移動先金庫料金項目コード１ → 料金対応記録登録マップ.料金対応記録明細リスト.変更後料金項目コード
			childMap.put("chg_af_prc_kmk_cd", idoSkKnkStats1);

			// 対応履歴表示 → 料金対応記録登録マップ.料金対応記録明細リスト.対応履歴連動対象フラグ
			childMap.put("taiorrki_rendo_tg_flg", knkchg.get(JBSbatCHIFM434.CUST_TOAK_DSP_FLG));

			// 金庫番号 → 料金対応記録登録マップ.料金対応記録明細リスト.金庫番号
			childMap.put("knk_no", befKnk.get(JBSbatCH_T_KNK.KNK_NO));

			// 督促番号 → 料金対応記録登録マップ.料金対応記録明細リスト.督促番号
			childMap.put("tokusoku_no", knkchg.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO));

			list.add(childMap);
		}

		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_2, KNK_IDO_SK_SEIKY_KEI_NO_2, KNK_IDO_SK_KNK_AMNT_2))
		{
			childMap = new HashMap();

			// ユーザＩＤ → 料金対応記録登録マップ.料金対応記録明細リスト.料金対応ユーザＩＤ
			childMap.put("prc_taio_user_id", userId);

			// 請求契約番号 → 料金対応記録登録マップ.料金対応記録明細リスト.請求契約番号
			childMap.put("seiky_kei_no", befKnk.get(JBSbatCH_T_KNK.SEIKY_KEI_NO));

			// 金庫移動登録["124"固定] → 料金対応記録登録マップ.料金対応記録種別コード
			childMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_IDO_ADD);

			// 移動先金庫料金項目コード
			String idoSkKnkStats2 = knkchg.get(KNK_KNK_PRC_KMK_CD_2);
			
			// 料金対応記録種別詳細コード → 料金対応記録登録マップ.料金対応記録種別詳細コード
			childMap.put("prc_taio_kirok_sbt_dtl_cd", knkchg.get(PRC_TAIO_KIROK_SBT_DTL_CD_2));

			// "金庫移動登録" → 料金対応記録登録マップ.料金対応記録明細リスト.タイトル
			childMap.put("title", JACStrConst.SCREEN_NAME_IKT_KNK);
			
			// 記事 → 料金対応記録登録マップ.料金対応記録明細リスト.記事
			childMap.put("kiji", knkchg.get(KNK_IDO_SK_KIJI_2));

			// 移動元金庫金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更前金額
			childMap.put("chg_bf_amnt", idoMtKnkAmnt);

			// 移動先金庫金額 → 料金対応記録登録マップ.料金対応記録明細リスト.変更後金額
			childMap.put("chg_af_amnt", knkchg.get(KNK_IDO_SK_KNK_AMNT_2));

			// 現在金庫ステータスコード → 料金対応記録登録マップ.料金対応記録明細リスト.変更前料金項目コード
			childMap.put("chg_bf_prc_kmk_cd", idoMtKnkStats);

			// 移動先金庫料金項目コード１ → 料金対応記録登録マップ.料金対応記録明細リスト.変更後料金項目コード
			childMap.put("chg_af_prc_kmk_cd", idoSkKnkStats2);

			// 対応履歴表示 → 料金対応記録登録マップ.料金対応記録明細リスト.対応履歴連動対象フラグ
			childMap.put("taiorrki_rendo_tg_flg", knkchg.get(JBSbatCHIFM434.CUST_TOAK_DSP_FLG));

			// 金庫番号 → 料金対応記録登録マップ.料金対応記録明細リスト.金庫番号
			childMap.put("knk_no", befKnk.get(JBSbatCH_T_KNK.KNK_NO));

			// 督促番号 → 料金対応記録登録マップ.料金対応記録明細リスト.督促番号
			childMap.put("tokusoku_no", knkchg.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO));

			list.add(childMap);
		}
		// ANK-4475-00-00：現状、リストは最大２つまで使用。

		parentMap.put("prc_taio_kirok_list", list);

		inputMap.put(JACStrConst.PRCTAIOKIROKADDCC_MAP_ID, parentMap);

		return inputMap;
	}

	/**
	 * HURYOCUSTDELCC_不良顧客論理削除CC(HURYOCUSTDELCC) 上りマッピング
	 * 
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param func_code　機能コード
	 * @return マッピング情報
	 */
	@SuppressWarnings("unchecked")
	public HashMap setHURYOCUSTDELCC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg,
			String func_code)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		//◇処理済金（貸倒後入金）合計額の設定
		String amntSum = "0";
		if (KSDOR_NYUKIN_AMNT.equals(knkchg.get(KNK_KNK_PRC_KMK_CD_1)))
		{
			amntSum = JACBatCommon.calcAdd(amntSum, knkchg.get(KNK_IDO_SK_KNK_AMNT_1), true);
		}

		if (KSDOR_NYUKIN_AMNT.equals(knkchg.get(KNK_KNK_PRC_KMK_CD_2)))
		{
			amntSum = JACBatCommon.calcAdd(amntSum, knkchg.get(KNK_IDO_SK_KNK_AMNT_2), true);
		}

		// 合計額 → 不良顧客削除マップ.処理済金（貸倒後入金）合計額
		parentMap.put("ksdor_nyukin_amnt_sum", amntSum);

		//◇処理済金（貸倒後入金）選択フラグ設定
		String ksdorSelFlg = KSDOR_SEL_NASI;
		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_1, KNK_IDO_SK_SEIKY_KEI_NO_1, KNK_IDO_SK_KNK_AMNT_1))
		{
			// 移動先金庫料金項目コード１ 判定
			if (KSDOR_NYUKIN_AMNT.equals(knkchg.get(KNK_KNK_PRC_KMK_CD_1)))
			{
				ksdorSelFlg = KSDOR_SEL_ARI;
			}
		}

		if (checkInput(knkchg, KNK_KNK_PRC_KMK_CD_2, KNK_IDO_SK_SEIKY_KEI_NO_2, KNK_IDO_SK_KNK_AMNT_2))
		{
			// 移動先金庫料金項目コード２ 判定
			if (KSDOR_NYUKIN_AMNT.equals(knkchg.get(KNK_KNK_PRC_KMK_CD_2)))
			{
				ksdorSelFlg = KSDOR_SEL_ARI;
			}
		}

		// 貸倒後入金選択フラグ → 不良顧客削除マップ.貸倒後入金選択フラグ
		parentMap.put("ksdor_sel_flg", ksdorSelFlg);

		// 料金対応記録追加モード"1"(請求先単位)
		parentMap.put("prc_taio_kirok_add_mode", "1");

		// 料金対応記録種別コード
		parentMap.put("prc_taio_kirok_sbt_cd", JACStrConst.TKRK_SBT_KNK_IDO_ADD);

		inputMap.put("HURYOCUSTDELCC", parentMap);

		return inputMap;
	}

	/**
	 * SEIKYKEISEARCHCC_請求契約取得CC(SEIKYKEISEARCHCC) 上りマッピング
	 * @param inputMap　上りマップ
	 * @param befKnk　移動元の金庫情報
	 * @param knkchg　更新情報
	 * @param func_code　機能コード
	 * @return マッピング情報
	 */
	@SuppressWarnings("unchecked")
	public HashMap setSEIKYKEISEARCHCC(HashMap<String, Object> inputMap, HashMap<String, String> befKnk, HashMap<String, String> knkchg,
			String func_code)
	{
		
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 機能コード1の場合は、BP実行判定ではじくため、何もセットせずリターンする。
		if (JPCModelConstant.FUNC_CD_1.equals(func_code))
		{
			inputMap.put("SEIKYKEISEARCHCC", parentMap);
			return null;
		}

		if(parentMap.containsKey("seiky_kei_list")){
			list = (ArrayList)parentMap.get("seiky_kei_list");
		}else{
			list = new ArrayList();
		}
		HashMap childMap1 = new HashMap();
		HashMap childMap2 = new HashMap();

		// ※【LT-2013-0000365】登録確認画面遷移しない不具合対応に関して
		// I/F「EKK0491A010_請求契約一意照会」の請求契約照会マップ.請求契約照会明細.請求契約番号(必須項目)に、
		// 画面の移動先請求番号を設定しているが、金庫ステータスが仮受金または不明金の場合、
		// 移動先請求契約番号の入力は必須では無い。
		// その為、移動先契約番号が未入力の場合、I/Fの単項目チェックエラー(E1:必須チェックエラー)が発生し、
		// 結果、請求契約なしエラーとなってしまう。
		// 回避策として、金庫ステータスが仮受金または不明金で、移動先請求契約番号が未入力の場合、
		// 請求契約照会マップ.請求契約照会明細.請求契約番号にダミー値「9999999999」を設定し、単項目チェックエラーを回避する。
		// 仮に、ダミー値に紐づく請求契約が取得できた場合、ダミー値に紐づく結果は下りマッピングを行っていない為、
		// 後続の処理に影響は無い。
		
		// ANK-4475-00-00：当バッチでは請求契約番号は必ずセット。現状、リストは最大２つまで使用。

		// 移動先請求契約番号１ → 請求契約照会マップ.請求契約照会明細.請求契約番号
		if(checkInput(knkchg,knkchg.get(KNK_KNK_PRC_KMK_CD_1),
				knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_1),
				knkchg.get(KNK_IDO_SK_KNK_AMNT_1)))
		{
			String strIdoSkKnkStat = knkchg.get(KNK_KNK_PRC_KMK_CD_1);
			if (checkNullSeikyKeiNo(knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_1))
					&& (JACStrConst.KNK_STAT_KARIUKEKIN.equals(strIdoSkKnkStat) || JACStrConst.KNK_STAT_HUMEIKIN.equals(strIdoSkKnkStat)))
			{
				
				childMap1.put("seiky_kei_no", DMY_SEIKY_KEI_NO);
			
				list.add(childMap1);
			}
			else
			{
				childMap1.put("seiky_kei_no", knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_1));
				
				list.add(childMap1);
			}
		}
		else
		{
			childMap1.put("seiky_kei_no", DMY_SEIKY_KEI_NO);
			
			list.add(childMap1);
		}
		// 移動先請求契約番号２ → 請求契約照会マップ.請求契約照会明細.請求契約番号
		if(checkInput(knkchg, knkchg.get(KNK_KNK_PRC_KMK_CD_2),
				knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_2),
				knkchg.get(KNK_IDO_SK_KNK_AMNT_2)))
		{
			String strIdoSkKnkStat = knkchg.get(KNK_KNK_PRC_KMK_CD_2);
			if (checkNullSeikyKeiNo(knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_2))
					&& (JACStrConst.KNK_STAT_KARIUKEKIN.equals(strIdoSkKnkStat) || JACStrConst.KNK_STAT_HUMEIKIN.equals(strIdoSkKnkStat)))
			{
				
				childMap2.put("seiky_kei_no", DMY_SEIKY_KEI_NO);
			
				list.add(childMap2);
			}
			else
			{
				childMap2.put("seiky_kei_no", knkchg.get(KNK_IDO_SK_SEIKY_KEI_NO_2));
				
				list.add(childMap2);
			}
		}
		else
		{
			childMap2.put("seiky_kei_no", DMY_SEIKY_KEI_NO);
			
			list.add(childMap2);
		}
		
		parentMap.put("seiky_kei_list", list);

		inputMap.put("SEIKYKEISEARCHCC", parentMap);

		return inputMap;
	}

//	/**
//	 * SEIKYKEISEARCHCC_請求契約取得CC(SEIKYKEISEARCHCC) 下りマッピング
//	 * @param inputMap　上りマップ
//	 * @param befKnk　金庫情報
//	 * @param knkchg　更新情報
//	 */
//	@SuppressWarnings("unchecked")
//	public void getSEIKYKEISEARCHCC(HashMap<String, Object> inputMap, HashMap<String, Object> befKnk, HashMap<String, Object> knkchg)
//	{
//
//		HashMap parentMap = null;
//		if(inputMap.containsKey("SEIKYKEISEARCHCC")){
//			parentMap = (HashMap)inputMap.get("SEIKYKEISEARCHCC");
//		}
//
//		ArrayList childList = null;
//		childList = null;
//
//		if(parentMap != null && parentMap.containsKey("seiky_kei_list")){
//			childList = (ArrayList)parentMap.get("seiky_kei_list");
//
//			for(int i = 0; i < childList.size(); i++){
//				HashMap childMap = (HashMap)childList.get(i);
//				
//				int idx = i + 1;
//				if (idx == 1)
//				{
//					// ダミーの請求契約番号にて取得したデータは編集しない
//					if (DMY_SEIKY_KEI_NO.equals((String)childMap.get("seiky_kei_no")))
//					{
//						// 移動先金庫ステータス情報１.移動先金庫料金項目名称リスト１ ← 空文字
//						knkchg.put(KNK_IDO_SK_SOHUS_NM_1, "");
//					}
//					else
//					{
//						// 移動先金庫ステータス情報１.移動先金庫料金項目名称リスト１ ← 請求契約照会マップ.請求契約明細リスト.送付先名
//						knkchg.put(KNK_IDO_SK_SOHUS_NM_1, (String)childMap.get("sohus_nm"));
//					}
//				}
//				else if (idx == 2)
//				{
//					// ダミーの請求契約番号にて取得したデータは編集しない
//					if (DMY_SEIKY_KEI_NO.equals((String)childMap.get("seiky_kei_no")))
//					{
//						// 移動先金庫ステータス情報１.移動先金庫料金項目名称リスト２ ← 空文字
//						knkchg.put(KNK_IDO_SK_SOHUS_NM_2, "");
//					}
//					else
//					{
//						// 移動先金庫ステータス情報２.移動先金庫料金項目名称リスト２ ← 請求契約照会マップ.請求契約明細リスト.送付先名
//						knkchg.put(KNK_IDO_SK_SOHUS_NM_2, (String)childMap.get("sohus_nm"));
//					}
//				}
//				 ANK-4475-00-00：現状、リストは最大２つまで使用。
//
//			}
//		}
//
//	}

	/**
	 * 移動先金庫情報がすべて入力されている場合trueを返却する。
	 * 
	 * @param knkchg　金庫移動登録
	 * @param beanNmIdoSkKnkStat　移動先金庫料金項目コード（項目名）
	 * @param beanNmSeikyKeiNo　移動先請求契約番号（項目名）
	 * @param beanNmIdoSkKnkAmnt　移動先金庫金額（項目名）
	 * @return boolean　true:データあり、false:データなし
	 */
	private boolean checkInput(HashMap<String, String> knkchg, String beanNmIdoSkKnkStat, String beanNmSeikyKeiNo, String beanNmIdoSkKnkAmnt)
	{
		// 画面側のチェックと異なるため変更
		String idoSkKnkStat = knkchg.get(beanNmIdoSkKnkStat);
		String seikyKeiNo = knkchg.get(beanNmSeikyKeiNo);
		String idoSkKnkAmnt = knkchg.get(beanNmIdoSkKnkAmnt);
		if (JACBatCommon.isNull(idoSkKnkStat))
		{
			return false;
		}
		if (JACBatCommon.isNull(seikyKeiNo))
		{
			return false;
		}
		if (JACBatCommon.isNull(idoSkKnkAmnt))
		{
			return false;
		}
		return true;
	}

	/**
	 * 精算方法コードを取得します。
	 * 
	 * @param prcKmkCdMap　[退避マスタ]バッチ 料金項目コード
	 * @param workKinoSkbtCd　業務機能識別コード
	 * @return String　精算方法コード
	 */
	public String getSsnWayCd(String workKinoSkbtCd)
	{
		String ssnWayCd = null;

// 画面の場合判定処理 START -------------------------------------------------------------------------------------->
//		public String getSsnWayCd(HashMap<String, String> prcKmkCdMap, String idoSkPrcKmkCd)
//		{
//			String ssnWayCd = null;
//		// 移動先金庫料金項目コードが処理済金（雑収入）の場合
//		if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT11)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_ZASYUNYU;
//		}
//		// 移動先金庫料金項目コードが処理済金（申立費用受付）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT12)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_MUSTHIUK;
//		}
//		// 移動先金庫料金項目コードが処理済金（遅延損害金）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT13)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_DLYSG_AT;
//		}
//		// 移動先金庫料金項目コードが処理済金（貸倒後入金）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT14)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_KASHIDAFN_AT;
//		}
//		// 移動先金庫料金項目コードが処理済金（返戻金）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT15)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_REFUND;
//		}
//		// 移動先金庫料金項目コードが処理済金（ＰＨＳ移動）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT16)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_PHS_MOVE;
//		}
//		// 移動先金庫料金項目コードが処理済金（手作成請求書分）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT17)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_TESKSI_SKS;
//		}
//		// 移動先金庫料金項目コードが処理済金（預り金充当）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT21)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_AZUKIN_JUTO;
//		}
//		// 移動先金庫料金項目コードが処理済金（前受金充当）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT22)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_MAEUK_AT_JUTO;
//		}
//		// 移動先金庫料金項目コードが処理済金（営業外支出返戻）の場合
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT23)))
//		{
//			ssnWayCd = JACStrConst.SSN_WAY_CD_REFUND;
//		}
// 画面の場合判定処理 END -------------------------------------------------------------------------------------->

		// 移動先金庫料金項目コードが処理済金（返戻金）の場合
		if (workKinoSkbtCd.equals(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT15))
		{
			ssnWayCd = JACStrConst.SSN_WAY_CD_REFUND;
		}
		return ssnWayCd;

	}

	/**
	 * 料金対応記録種別詳細コードを取得します。
	 * 
	 * @param prcKmkCdMap　[退避マスタ]料金項目コード
	 * @param idoMtPrcKmkCd　移動元金庫ステータス(料金項目コード)
	 * @param idoSkPrcKmkCd　移動先金庫ステータス(料金項目コード)
	 * @return String　料金対応記録種別詳細コード
	 */
	public String getPrcTaioKirokSbtDtlCd(HashMap<String, String> prcKmkCdMap, String idoMtPrcKmkCd, String idoSkPrcKmkCd)
	{

// 画面の場合判定処理 START -------------------------------------------------------------------------------------->
//		String prcTaioKirokSbtDtlCd = null;
//		boolean idoMtKnkStats = false;
//		boolean idoSkKnkStats = false;
//
//		if (idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT01))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT02))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT03))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT04))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT05)))
//		{
//			// 未処理金
//			idoMtKnkStats = false;
//		}
//		else if (idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT11))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT12))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT13))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT14))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT15))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT16))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT17))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT21))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT22))
//				|| idoMtPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT23)))
//		{
//			// 処理済金
//			idoMtKnkStats = true;
//		}
//
//		if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT01))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT02))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT03))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT04))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT05)))
//		{
//			// 未処理金
//			idoSkKnkStats = false;
//		}
//		else if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT11))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT12))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT13))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT14))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT15))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT16))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT17))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT21))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT22))
//				|| idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT23)))
//		{
//			// 処理済金
//			idoSkKnkStats = true;
//		}
//
//		// 未処理金 → 処理済金
//		if (!idoMtKnkStats && idoSkKnkStats)
//		{
//			// 処理済金移動 1406
//			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_ZUMI_AMNT_IDO;
//		}
//		// 処理済金 → 未処理金
//		else if (idoMtKnkStats && !idoSkKnkStats)
//		{
//			// 仮受金移動 1402
//			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_KARIUKE_IDO;
//		}
//		// 未処理金 → 未処理金
//		else if(!idoMtKnkStats && !idoSkKnkStats)
//		{
//			// 預り金移動 1403
//			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_AZUKIN_IDO;
//		}
// 画面の場合判定処理 END -------------------------------------------------------------------------------------->

		// ■バッチの移動元は「預り金（未処理）」のみ
		String prcTaioKirokSbtDtlCd = null;
		boolean idoSkKnkStats = false;
		if (idoSkPrcKmkCd.equals(prcKmkCdMap.get(JACStrConst.WORK_KINO_SKBT_CD_KNKSTAT15)))
		{
			// 処理済金
			idoSkKnkStats = true;
		}
		
		// 未処理金 → 処理済金
		if (idoSkKnkStats)
		{
			// 処理済金移動 1408 バッチ
			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_ZUMI_AMNT_IDO_BATCH;
		}
		else
		{
			// 預り金移動 1407 バッチ
			prcTaioKirokSbtDtlCd = JACStrConst.TKRK_SBTD_AZUKIN_IDO_BATCH;
		}

		return prcTaioKirokSbtDtlCd;
	}

	/**
	 * ユーザーIDを取得します。
	 * 
	 * @param dlydTrnReqNo　ディレイド処理依頼番号
	 * @throws Exception　業務サービス内で発生した例外全般。
	 */
	private String getUserId(String dlydTrnReqNo) throws Exception
	{
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// ディレイド処理依頼番号
		whereParam.setValue(dlydTrnReqNo);

		// SQL実行
		JBSbatCommonDBInterface dbMap = executeCC_T_DLYD_TRN_REQ_PKSELECT(whereParam.getList().toArray());
		
		// 取得なしの場合
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatCC_T_DLYD_TRN_REQ.TABLE_NAME, whereParam.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 登録オペレータアカウント
		String userId = dbMap.getString(JBSbatCC_T_DLYD_TRN_REQ.ADD_OPEACNT);

		return userId;
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	DLYD_TRN_REQ_NO
	 * </pre>
	 * <p>
	 * @param whereParam　条件項目の値。
	 * @return JBSbatCommonDBInterface　検索の結果。
	 * @throws Exception　業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeCC_T_DLYD_TRN_REQ_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("DLYD_TRN_REQ_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_CC_T_DLYD_TRN_REQ.selectByPrimaryKeys(whereMap);
	}


	/**
	 * 移動先請求契約番号が未入力の場合trueを返却する。
	 * @param strSeikyKeiNo　移動先請求契約番号
	 * @return boolean　true：入力無し、false：入力有り
	 */
	private boolean checkNullSeikyKeiNo(String strSeikyKeiNo) {
		
		if (strSeikyKeiNo == null || strSeikyKeiNo.length() == 0)
		{
			return true;
		}
		return false;
	}

	/**
	 * ユーザー関連の情報を取得します。
	 * 初期処理で一度だけ取得する。
	 * @param itemｖバッチ共通パラメータ
	 * @param dlydTrnReqNo　ディレイド処理依頼番号
	 * @throws Exception　業務サービス内で発生した例外全般。
	 */
	public HashMap<String, String> getUserMap(JBSbatCommonItem item, String dlydTrnReqNo) throws Exception
	{
		commonItem = item;

		// ユーザーID取得
		String userId = getUserId(dlydTrnReqNo);

		// 対応記録関連データ登録部品を使用しユーザー名、業務個別設定組織コード、業務個別設定組織名取得
		JCHbatTaiorrkDataAdd jchbatTaiorrkDataAdd = new JCHbatTaiorrkDataAdd(item, userId);

		// ユーザー名取得
		String userNm = jchbatTaiorrkDataAdd.getUserNm();
		// 業務個別設定組織コード取得
		String wkkbtOrgCd = jchbatTaiorrkDataAdd.getWkkbtOrgCd();
		// 業務個別設定組織名取得
		String wkkbtOrgNm = jchbatTaiorrkDataAdd.getWkkbtOrgNm();

		HashMap<String, String> userMap = new HashMap<String, String>();
		userMap.put(USER_ID, userId);
		userMap.put(USER_NM, userNm);
		userMap.put(WKKBT_ORG_CD, wkkbtOrgCd);
		userMap.put(WKKBT_ORG_NM, wkkbtOrgNm);

		return userMap;
	}

	/**
	 * テーブルアクセスクラスをクローズします。
	 * @throws SQLException SQL例外が発生した場合
	 */
	public void close() throws SQLException
	{
		// ディレイド処理依頼
		if (db_CC_T_DLYD_TRN_REQ != null)
		{
			db_CC_T_DLYD_TRN_REQ.close();
		}

	}

}
