/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHKsdkcpSaikenJutoKanrenUpd
*	ソースファイル名	：JBSbatCHKsdkcpSaikenJutoKanrenUpd.java
*	作成者				：富士通　
*	作成日				：2011年09月07日
*＜機能概要＞
*　債権充当関連ＤＢ更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v32.00.00	2017/04/23  FJ）西面    【ANK-2996-00-00】SMSを利用した即時決済サービスの導入
**********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.common.JCHbatSeikyKaknoBusinessUtil;
import eo.business.common.JPCBatCommon;
import eo.business.util.file.JBSbatCHIFM093;
import eo.business.util.file.JBSbatCHIFM097;
import eo.business.util.file.JBSbatCHIFM154;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_CS_CHGE;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatCH_T_JUTO;
import eo.business.util.table.JBSbatCH_T_KAIK_IDO;
import eo.business.util.table.JBSbatCH_T_SAIKEN;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatCH_T_SEIKY_UCWK;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU_IDO;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* 債権充当関連ＤＢ更新 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHKsdkcpSaikenJutoKanrenUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(債権内訳)*/

	/** テーブル(充当)*/
	private static final String D_TBL_NAME_CH_T_JUTO = "CH_T_JUTO";

	/** テーブル(会計異動)*/
	private static final String D_TBL_NAME_CH_T_KAIK_IDO = "CH_T_KAIK_IDO";

	/** テーブル(督促)*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU = "CH_T_TOKUSOKU";

	/** テーブル(督促異動)*/
	private static final String D_TBL_NAME_CH_T_TOKUSOKU_IDO = "CH_T_TOKUSOKU_IDO";

	/** テーブル(督促異動)*/
	private static final String D_TBL_NAME_CH_T_SAIKEN_UCWK = "CH_T_SAIKEN_UCWK";

	/** テーブル(金庫)*/
	private static final String D_TBL_NAME_CH_T_KNK = "CH_T_KNK";

	/** テーブル(債権)*/
	private static final String D_TBL_NAME_CH_T_SAIKEN = "CH_T_SAIKEN";

	/** テーブル(料金項目抽出変換)*/
	private static final String D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE = "CH_M_PRC_KMK_CS_CHGE";
	
	/** テーブル(請求内訳) */
	private static final String D_TBL_NAME_CH_T_SEIKY_UCWK = "CH_T_SEIKY_UCWK";
	
	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";
	
	/** テーブル(料金集計)*/
	private static final String D_TBL_NAME_AC_M_PRC_SHUK = "AC_M_PRC_SHUK";
	
	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_T_KAIK_IDO_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_T_TOKUSOKU_IDO_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_012)*/
	private static final String CH_M_PRC_KMK_CS_CHGE_CH_SELECT_015 = "CH_SELECT_015";

// OM-2015-0001697 MOD START
//	/** SQL定義キー(CH_SELECT_001)*/
//	private static final String CH_T_JUTO_CH_SELECT_001 = "CH_SELECT_001";
	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_T_JUTO_CH_SELECT_004 = "CH_SELECT_004";
// OM-2015-0001697 MOD END

	/** SQL定義キー(CH_UPDATE_002)*/
	private static final String CH_T_SAIKEN_UCWK_CH_UPDATE_002 = "CH_UPDATE_002";
	
	/** SQL定義キー(CH_UPDATE_001)*/
	private static final String CH_T_SEIKY_UCWK_CH_UPDATE_001 = "CH_UPDATE_001";

	/** SQL定義キー(CH_SELECT_018)*/
	private static final String CH_T_SEIKY_UCWK_CH_SELECT_018 = "CH_SELECT_018";
	
	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_CH_SELECT_002 = "CH_SELECT_002";
	
	/** SQL定義キー(CH_SELECT_032)*/
	private static final String CH_T_SAIKEN_CH_SELECT_031 = "CH_SELECT_031";

	/** テーブルアクセスクラス(充当)*/
	private JBSbatSQLAccess db_CH_T_JUTO = null;

	/** テーブルアクセスクラス(会計異動)*/
	private JBSbatSQLAccess db_CH_T_KAIK_IDO = null;

	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;

	/** テーブルアクセスクラス(督促異動)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU_IDO = null;

	/** テーブルアクセスクラス(金庫)*/
	private JBSbatSQLAccess db_CH_T_KNK = null;

	/** テーブルアクセスクラス(料金項目抽出変換)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_CS_CHGE = null;

	/** テーブルアクセスクラス(債権内訳)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UCWK_INSERT = null;

	/** テーブルアクセスクラス(充当)*/
	private JBSbatSQLAccess db_CH_T_JUTO_INSERT = null;

	/** テーブルアクセスクラス(会計異動)*/
	private JBSbatSQLAccess db_CH_T_KAIK_IDO_INSERT = null;

	/** テーブルアクセスクラス(督促異動)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU_IDO_INSERT = null;

	/** テーブルアクセスクラス(金庫)*/
	private JBSbatSQLAccess db_CH_T_KNK_INSERT = null;

	/** テーブルアクセスクラス(債権)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UPDATE = null;

	/** テーブルアクセスクラス(債権)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UPDATE1 = null;

	/** テーブルアクセスクラス(債権内訳)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UCWK_UPDATE = null;

	/** テーブルアクセスクラス(充当)*/
	private JBSbatSQLAccess db_CH_T_JUTO_UPDATE = null;

	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU_UPDATE = null;
	
	/** テーブルアクセスクラス(請求内訳)*/
	private JBSbatSQLAccess db_CH_T_SEIKY_UCWK = null;
	
	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;
	
	/** テーブルアクセスクラス(料金集計)*/
	private JBSbatSQLAccess db_AC_M_PRC_SHUK = null;

	/** テーブルアクセスクラス(債権)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN = null;

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** ゼロ */
	private static final String ZERO = "0";
	
	/** 請求収納業務共通クラス */
	private JCHbatSeikyKaknoBusinessUtil seikyUtil = null;
	
	/** 退避．料金グループコード（未収金額） */
	private String mishuPrcGrpCd = null;
	
	/** 退避．料金コースコード（未収金額） */
	private String mishuPcrsCd = null;
	
	/** 退避．料金サービスコード（未収金額） */
	private String mishuPrcSvcCd = null;
	
	/** 退避．料金項目コード（未収金額） */
	private String mishuPrcKmkCd = null;

	/** 退避．料金グループコード + 料金コースコード + 料金サービスコード + 料金項目コード */
	private String mishuInfoCd = null;
	
	/** 退避．料金項目リスト（充当額） */
	private ArrayList<String> prcKmkListJuto = null;
	
	/** 退避．料金項目リスト（金庫）*/
	private ArrayList<String> prcKmkListKnk = null;
	
	/** 退避．料金項目リスト（入金）*/
	private ArrayList<String> prcKmkListNkin = null;
	
	/** 退避．料金項目リスト（合算請求当月）*/
	private ArrayList<String> prcKmkListGsanTogetsu = null;
	
	/** 退避．料金項目リスト（請求額合計（減算前））*/
	private ArrayList<String> prcKmkBfGenList = null;
	
	/** 退避．料金項目（未収金額（合算請求））*/
	private String prcKmkGsanMishu = null;
	
	/** 退避．料金項目（請求額合計）*/
	private String prcKmkSeikyGk = null;
	
	/** 退避．債権内訳更新件数 */
	private int saikenUcwkCnt = 0;
	
	/** 退避．債権更新件数 */
	private int saikenCnt = 0;
	
	/** 退避．督促更新件数 */
	private int tokusokuCnt = 0;

	/** 未収金額保持マップ */
	private HashMap<String, BigDecimal> mishuMap = null;

	/** 債権ステータス保持マップ */
	private HashMap<String, String> saikenStsMap = null;

	/** 未集金項目保持マップ */
	private HashMap<String, String> mishuSknKmkMap = null;

	/** 督促情報保持マップ */
	private JBSbatServiceInterfaceMap tokusokuMap = null;

	/** 退避．入力情報リスト	（[0]:未収情報リスト
	 * 							　[1]:充当情報リスト
	 * 							　[3]:金庫情報リスト
	 * 							　[4]:入金情報リスト）*/
	private ArrayList<ArrayList<JBSbatServiceInterfaceMap>> inMapList = null;
	
	/** 退避．請求年月 */
	private String seikyYm = null;
	
	/** 退避．請求年月（請求処理日基準（当日含まない過去直近））*/
	private String seikySyoriYm = null;
	
	/** エラーフラグ */
	private boolean errFlg = false;
	
	/** 退避．入金番号 */
	private String tmpNyukinNo = JACStrConst.KARA_MOJI;
	
	/** 退避．請求処理日 */
	private String seikyShoriYmd = null;
	
	/** 退避．口座振替依頼日 */
	private String kozaSeikyYmd = null;
	
	/** 退避．クレジット請求依頼日 */
	private String creSeikyYmd = null;

	/** 会計移動枝番算出 */
	private int kaikIdoEda = 0;

	/** 充当番号シーケンス */
	private static final String SEQ_JUTO_NO_NEXTVAL = "JBSbatSQLAccess.GET_NEXT_SEQ(" + JACStrConst.SEQ_JUTO_NO + ".NEXTVAL, '', 12)";

	/** 退避．入金ステータス（フリー項目） */
	private String tmpNKIN_STAT = null;
	
	/** 速報更新済フラグ */
	private boolean sokUpdateFlg = false;
	
	/** 請求額合計減算処理期間フラグ */
	private boolean genzanFlg = false;
	
	/** 業務機能識別コード（合算請求作成） */
	private String workKinoGsanTgt = null;

	/** 業務機能識別コード（未収額（合算請求）） */
	private String workKinoGsanMis  = null;

	/** 減算前レコード登録フラグ */
	boolean genzanInsFlg = true;
	
	/** 減算前レコード登録フラグ */
	private static final String JDG_PRC_KMK = "JDG_PRC_KMK";
	
	/** 入金対象債権年月リスト */
	private ArrayList<String> nyukinTgSaikenYmList = null;
	
	/** 債権ステータスマップ */
	private HashMap<String, HashMap<String, String>> saikenStatMapAll = null;
	
	/** 債権ステータスマップ（請求契約番号単位） */
	private HashMap<String, String> saikenStatMap = null;
	
	/** 督促異動番号マップ */
	private HashMap<String, String> tokusokuIdoNoMap = null;
		
	/**
	 * 初期処理
	 * @param commonItem バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_T_JUTO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_JUTO);
		db_CH_T_KAIK_IDO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_KAIK_IDO);
		db_CH_T_TOKUSOKU = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		db_CH_T_TOKUSOKU_IDO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU_IDO);
		db_CH_T_KNK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_KNK);
		db_CH_M_PRC_KMK_CS_CHGE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE);
		db_CH_T_JUTO_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_JUTO);
		db_CH_T_KAIK_IDO_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_KAIK_IDO);
		db_CH_T_TOKUSOKU_IDO_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU_IDO);
		db_CH_T_KNK_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_KNK);
		db_CH_T_SAIKEN_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN);
		db_CH_T_SAIKEN_UPDATE1 = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN);
		db_CH_T_JUTO_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_JUTO);
		db_CH_T_SAIKEN_UCWK_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN_UCWK);
		db_CH_T_TOKUSOKU_UPDATE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_TOKUSOKU);
		db_CH_T_SAIKEN_UCWK_INSERT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN_UCWK);
		db_CH_T_SEIKY_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY_UCWK);
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		db_AC_M_PRC_SHUK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_M_PRC_SHUK);
		db_CH_T_SAIKEN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + super.freeItem + "]");
		// フリー項目取得
		this.tmpNKIN_STAT 	= super.freeItem;

		JACbatParamUtil paramUtil = new JACbatParamUtil(commonItem);
		
		// システムパラメータ管理から業務機能識別コード取得
		String workKinoMishu 		= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_MISYU_KINGAKU);		// 未収金額
		String workKinoJuto 		= paramUtil.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_JUTO_GOKEI);			// 充当額＿合計
		String workKinoReal 		= paramUtil.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_RL_SKH_JT_GK);			// リアル速報充当額＿合計
		String workKinoSokuho		= paramUtil.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_SOKHO_JUTO_GK);			// 速報充当額＿合計
		String workKinoAzkr 		= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_AZUKARI_AMNT);			// 預り金
		String workKinoKari 		= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_KARIUKE_AMNT);			// 仮受金
		String workKinoNyukin 		= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_NYUKIN_AMNT);			// 入金額
		String workKinoMiSknInfo 	= paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_MI_SKN_INFO);			// 未収債権情報
		
		workKinoGsanTgt = paramUtil.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_GSN_SK_TGT_GK);						// 合算請求作成
		workKinoGsanMis = paramUtil.getGyoumuParameter(JACStrConst.WKPRA_CH_WKS_MI_GSAN_SIKY);						// 未収額（合算請求）
		String workKinoSeikyGK = paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_WKS_SIKY_SAKUSEI);				// 請求額合計
		
		paramUtil.close();
		
		seikyUtil = new JCHbatSeikyKaknoBusinessUtil(commonItem);
		
		// 料金項目抽出変換から料金項目コード取得
		getPrcKmkMishu(workKinoMishu);
		
		prcKmkListJuto = new ArrayList<String>();
		prcKmkListKnk = new ArrayList<String>();
		prcKmkListNkin = new ArrayList<String>();
		prcKmkListGsanTogetsu = new ArrayList<String>();
		prcKmkBfGenList = new ArrayList<String>();
		getPrcKmkList(workKinoJuto, 	prcKmkListJuto);
		getPrcKmkList(workKinoReal, 	prcKmkListJuto);
		getPrcKmkList(workKinoSokuho, 	prcKmkListJuto);
		getPrcKmkList(workKinoAzkr, 	prcKmkListKnk);
		getPrcKmkList(workKinoKari, 	prcKmkListKnk);
		getPrcKmkList(workKinoNyukin, 	prcKmkListNkin);
		getPrcKmkList(JACStrConst.GS_GK_BFN, 	prcKmkBfGenList);
		
		getPrcKmkList(workKinoGsanTgt,	prcKmkListGsanTogetsu);
		
		// 未収額（合算請求）
		JBSbatCommonDBInterface tmpMishuMap = getPrcKmkMap(workKinoGsanMis);
		prcKmkGsanMishu = tmpMishuMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD).concat(tmpMishuMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD))
							.concat(tmpMishuMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD)).concat(tmpMishuMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));

		// 請求額合計
		JBSbatCommonDBInterface tmpGkMap = getPrcKmkMap(workKinoSeikyGK);
		prcKmkSeikyGk = tmpGkMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD).concat(tmpGkMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD))
						.concat(tmpGkMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD)).concat(tmpGkMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));
		
		// 会計移動枝番算出（初期値）
// 会計異動登録に関する処理をコメントアウト
//		kaikIdoEda = Integer.parseInt(selectKaikIdo());

		mishuMap = new HashMap<String, BigDecimal>();
		saikenStsMap = new HashMap<String, String>();
		mishuSknKmkMap = new HashMap<String, String>();
		saikenStatMapAll = new HashMap<String, HashMap<String,String>>();
		tokusokuIdoNoMap = new HashMap<String, String>();
		
		this.inMapList = new ArrayList<ArrayList<JBSbatServiceInterfaceMap>>(3);
		
		for(int i = 0; 4 > i; i++)
		{
			// 要素を4つ設定する
			this.inMapList.add(new ArrayList<JBSbatServiceInterfaceMap>());
		}
		
		seikyYm = seikyUtil.getSeikyYm(super.opeDate);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][請求年月=" + seikyYm + "]");
		
		// 未収債権項目マップ作成
		getPrcKmkMishuSkn(workKinoMiSknInfo);
		
		// ========== 判定日付の取得 ==============
		// 請求年月取得(請求処理日)
		
		// 請求年月（（当日含まない過去直近））
		seikySyoriYm = seikyUtil.getBillYmNotContain(super.opeDate, JACStrConst.EVENT_CD_SEIKY_SHORI_YMD);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][請求年月（（当日含まない過去直近）） =" + seikySyoriYm + "]");

		// 請求内訳の更新処理
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(seikySyoriYm);										// 請求年月
		paramList.setValue(JACStrConst.EVENT_CD_SEIKY_SHORI_YMD);				// イベントコード
		
		executeCH_M_PRC_SCHDL_TEIGI_CH_UPDATE_002(paramList.getList().toArray());
		
		// 請求処理日を取得
		JBSbatCommonDBInterface retMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		if (retMap != null)
		{
			seikyShoriYmd = retMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		// 変数の初期化
		paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(seikySyoriYm);											// 請求年月
		paramList.setValue(JACStrConst.EVENT_CD_KOUZA_SEIKYU_IRAI_YMD);				// イベントコード
		
		executeCH_M_PRC_SCHDL_TEIGI_CH_UPDATE_002(paramList.getList().toArray());
		
		retMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		// 口座振替依頼日を取得
		if (retMap != null)
		{
			kozaSeikyYmd = retMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		// 変数の初期化
		paramList = new JBSbatCommonDBInterface();
		retMap = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(seikySyoriYm);											// 請求年月
		paramList.setValue(JACStrConst.EVENT_CD_CREDIT_SEIKY_REQ_YMD);				// イベントコード
		
		executeCH_M_PRC_SCHDL_TEIGI_CH_UPDATE_002(paramList.getList().toArray());
		
		retMap = db_CH_M_PRC_SCHDL_TEIGI.selectNext();
		
		// クレジット請求依頼日を取得
		if (retMap != null)
		{
			creSeikyYmd = retMap.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.EVENT_YMD);
		}
		
		// 請求額合計減算処理期間判定
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][対象外][seikyShoriYmd=" + seikyShoriYmd
				+ ", opeDate=" + super.opeDate + ", kozaSeikyYmd=" + kozaSeikyYmd + ", creSeikyYmd=" + creSeikyYmd +"]");
		if (seikyShoriYmd.compareTo(super.opeDate) < 0 && (super.opeDate.compareTo(kozaSeikyYmd) <= 0 || super.opeDate.compareTo(creSeikyYmd) <= 0))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][対象外][判定期間]");
			genzanFlg = true;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap 入力電文
	 * @param outputInItem 入力情報
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert inMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap = " + inMap.getMap().toString() + "]") : true;
		
		// 退避情報なしの場合
		if(!outputInItem.isOutMapList())
		{
			// ダミーを設定
			outputInItem.addOutMapList(new JBSbatServiceInterfaceMap());
		}
		
		// 最終レコードの場合
		if(null == inMap)
		{
			// DB更新
			this.updTrgDB(outputInItem);
		}
		// 入力情報有の場合
		else
		{
			// 入力．入金番号
			String nyukinNo = inMap.getString(JBSbatCHIFM093.NYUKIN_NO);
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入力．入金番号=" + nyukinNo + "][退避．入金番号=" + this.tmpNyukinNo + "]");
			// 退避．入金番号　≠　""（空文字）かつ、キーブレイクの場合
			if(!JACStrConst.KARA_MOJI.equals(this.tmpNyukinNo) && !this.tmpNyukinNo.equals(nyukinNo))
			{
				// DB更新
				this.updTrgDB(outputInItem);
			}
			
			// 退避．入金番号　←　入力．入金番号
			this.tmpNyukinNo = nyukinNo;
			
			String prcKmk = makeStr(inMap.getString(JBSbatCHIFM093.PRC_GRP_CD), inMap.getString(JBSbatCHIFM093.PCRS_CD),
					inMap.getString(JBSbatCHIFM093.PRC_SVC_CD), inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));
			
			// 債権充当データ．料金項目コード　が以下のどれにも該当しない場合
			// 退避．料金項目コード（金庫登録（預り金））、退避．料金項目コード（金庫登録（仮受金））退避．料金項目コード（入金額）の場合
			// ※債権内訳更新に使用する（格納データ：未収額データと充当額データ）
			if(!prcKmkListKnk.contains(prcKmk) && !prcKmkListNkin.contains(prcKmk))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][未収額]");
				this.inMapList.get(0).add(inMap);
			}
			// 債権充当データ．料金項目コード　＝　退避．料金項目コード（充当額_合計）　または
			// 退避．料金項目コード（リアル速報充当額_合計） または   退避．料金項目コード（速報充当額_合計） の場合
			if(prcKmkListJuto.contains(prcKmk))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][充当額]");
				this.inMapList.get(1).add(inMap);
			}
			//  FREE．NKIN_STAT ＝ "0"（債権充当） かつ
			// 債権充当データ．料金項目コード　＝　（退避．料金項目コード（金庫登録（預り金））または　退避．料金項目コード（金庫登録（仮受金）））の場合
			else if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT) && prcKmkListKnk.contains(prcKmk))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][金庫]");
				this.inMapList.get(2).add(inMap);
			}
			// 債権充当データ．料金項目コード　＝　退避．料金項目コード（入金額）　の場合
			else if(prcKmkListNkin.contains(prcKmk))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][入金]");
				this.inMapList.get(3).add(inMap);
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		db_CH_T_JUTO_INSERT.clearBatch();
		db_CH_T_KAIK_IDO_INSERT.clearBatch();
		db_CH_T_TOKUSOKU_IDO_INSERT.clearBatch();
		db_CH_T_KNK_INSERT.clearBatch();
		db_CH_T_SAIKEN_UPDATE.clearBatch();
		db_CH_T_SAIKEN_UPDATE1.clearBatch();
		db_CH_T_SAIKEN_UCWK_UPDATE.clearBatch();
		db_CH_T_JUTO_UPDATE.clearBatch();
		db_CH_T_SAIKEN_UCWK_INSERT.clearBatch();
		db_CH_T_SEIKY_UCWK.clearBatch();
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_T_JUTO.close();
		db_CH_T_KAIK_IDO.close();
		db_CH_T_TOKUSOKU.close();
		db_CH_T_TOKUSOKU_IDO.close();
		db_CH_T_KNK.close();
		db_CH_M_PRC_KMK_CS_CHGE.close();
		db_CH_T_JUTO_INSERT.close();
		db_CH_T_SAIKEN_UCWK_INSERT.close();
		db_CH_T_KAIK_IDO_INSERT.close();
		db_CH_T_TOKUSOKU_IDO_INSERT.close();
		db_CH_T_KNK_INSERT.close();
		db_CH_T_SAIKEN_UPDATE.close();
		db_CH_T_SAIKEN_UPDATE1.close();
		db_CH_T_SAIKEN_UCWK_UPDATE.close();
		db_CH_T_JUTO_UPDATE.close();
		db_CH_T_TOKUSOKU_UPDATE.close();
		db_CH_T_SEIKY_UCWK.close();
		db_CH_M_PRC_SCHDL_TEIGI.close();
		db_AC_M_PRC_SHUK.close();
		db_CH_T_SAIKEN.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		seikyUtil.close();
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}
	
	/**
	 * 退避．入力情報リストの退避情報をもとに、
	 * 各種DBの更新処理を行います。
	 * 
	 * @param outputInItem 出力情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updTrgDB(JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updTrgDB]");

		int size = this.inMapList.size();
		
		for(int i = 0; size > i; i++)
		{
			ArrayList<JBSbatServiceInterfaceMap> trgList = this.inMapList.get(i);
			
			for(JBSbatServiceInterfaceMap trgMap : trgList)
			{
				errFlg = false;
				
				switch(i)
				{
				case 0:
					// 債権内訳　更新
					this.saikenUcwkDisp(trgMap, outputInItem);
					break;
					
				case 1:
					// 充当・会計異動　更新
					jutoKaikeiDisp(trgMap, outputInItem);
					
					// 請求内訳　更新
					// 速報更新済フラグがfalseかつ請求額合計減算処理期間なら実行する
					
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updTrgDB]" + sokUpdateFlg + genzanFlg);
					if (!sokUpdateFlg && genzanFlg)
					{
						seikyUcwkDisp(trgMap);
					}
					
					// ファイル出力対象外
					break;
					
				case 2:
					// 金庫・会計異動　登録
					kinkoKaikeiDisp(trgMap, outputInItem);
					break;
					
				case 3:
					// 入金処理済みフラグ　更新
					nyukinDisp(trgMap, outputInItem);
					break;
					
				default:
				}
			}
		}
		
		if(tokusokuMap != null)
		{
			// 督促　更新
			tokusokuDisp(tokusokuMap, outputInItem);
			tokusokuMap = null;
		}
		
		for(ArrayList<JBSbatServiceInterfaceMap> trgMapList : this.inMapList)
		{
			trgMapList.clear();
		}
		
		this.mishuMap.clear();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updTrgDB]");
		return;
	}


	/**
	 *  債権内訳．金額（未収額または充当額）の更新を行います。
	 * 
	 * @param inMap 入力電文
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void saikenUcwkDisp(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][saikenUcwkDisp]");
		
		String inMapPrcGrpCd = inMap.getString(JBSbatCHIFM093.PRC_GRP_CD);				// 料金グループコード
		String inMapPcrsCd = inMap.getString(JBSbatCHIFM093.PCRS_CD);					// 料金コースコード
		String inMapPrcSvcCd = inMap.getString(JBSbatCHIFM093.PRC_SVC_CD);				// 料金サービスコード
		String inMapPrcKmkCd = inMap.getString(JBSbatCHIFM093.PRC_KMK_CD);				// 料金項目コード
		String inMapSaikenSts = inMap.getString(JBSbatCHIFM093.SAIKEN_STAT);			// 債権ステータス
		
		BigDecimal inMapAmnt = inMap.getBigDecimal(JBSbatCHIFM093.AMNT);

		// 充当額または未収額の判定
		StringBuilder key = new StringBuilder();
		key.append(inMapPrcGrpCd);									// 料金グループコード 
		key.append(inMapPcrsCd);									// 料金コースコード 
		key.append(inMapPrcSvcCd);									// 料金サービスコード
		key.append(inMapPrcKmkCd);									// 料金項目コード（未収金額）
		// 充当額の場合（未収債権項目マップに一致しない）
		if (!mishuSknKmkMap.containsKey(key.toString()))
		{
			// FREE．NKIN_STAT ＝ "0"（債権充当）かつ
			// （債権ステータス ＝ '060'（一部収納）または
			//   債権ステータス ＝ '030'（リアル収納）または
			//   債権ステータス ＝ '040'（仮収納））の場合
			if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT) &&
				(inMapSaikenSts.equals(JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO)
				|| inMapSaikenSts.equals(JACStrConst.SAIKEN_STAT_REAL_KAKNO)
				|| inMapSaikenSts.equals(JACStrConst.SAIKEN_STAT_KARI_KAKNO)))
			{
				// // 債権内訳金額足し込み更新
				int retCnt = updateSaikenUcwkAmntPlus(inMap, inMapAmnt);
				if(retCnt == 0)
				{
					// 債権内訳登録
					insSaikenUCWK(inMap);
				}
			}
			else
			{
				// 債権内訳登録
				insSaikenUCWK(inMap);
			}
		}
		else
		{
			// 債権内訳更新
			updateSaikenUcwk(inMap, inMapAmnt);
		}
		
		// FREE．NKIN_STAT ＝ "0"（債権充当） かつ
		// 債権充当データ．料金グループコード　＝　退避．料金グループコード（未収金額）の場合
		// 債権充当データ．料金コースコード　＝　退避．料金コースコード（未収金額）の場合
		// 債権充当データ．料金サービスコード　＝　退避．料金サービスコード（未収金額）の場合
		// 債権充当データ．料金項目コード　＝　退避．料金項目コード（未収金額）の場合
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT)
				&& inMapPrcGrpCd.equals(mishuPrcGrpCd)
				&& inMapPcrsCd.equals(mishuPcrsCd)
				&& inMapPrcSvcCd.equals(mishuPrcSvcCd)
				&& inMapPrcKmkCd.equals(mishuPrcKmkCd))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenUcwkDisp][未集金額の場合]");
			key = new StringBuilder();
			key.append(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));		// 債権番号
			key.append(mishuPrcGrpCd);									// 料金グループコード 
			key.append(mishuPcrsCd);									// 料金コースコード 
			key.append(mishuPrcSvcCd);									// 料金サービスコード
			key.append(mishuPrcKmkCd);									// 料金項目コード（未収金額）

			mishuMap.put(key.toString(), inMapAmnt);
		}

		// 債権ステータス保持マップ追加
		String saikenNo = inMap.getString(JBSbatCHIFM093.SAIKEN_NO);
		if (!saikenStsMap.containsKey(saikenNo))
		{
			saikenStsMap.put(saikenNo, inMap.getString(JBSbatCHIFM093.SAIKEN_STAT));
		}
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		// 出力項目設定
		setOutKmk(inMap, outMap);
		
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][saikenUcwkDisp]");
	}
	
	
	/**
	 * 債権内訳の金額を更新し、充当・会計異動を登録します。
	 * 
	 * @param inMap 入力電文
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void jutoKaikeiDisp(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][jutoKaikeiDisp]");
		
		// 速報更新済フラグを初期化
		sokUpdateFlg = false;
		
		// 入金経路コード ＝ '85'(決済代行（SMBC)）
		if(inMap.getString(JBSbatCHIFM093.NYUKIN_ROUTE_CD).equals(JACStrConst.NYKNKEIRCD_KESSAI_SMBC))
		{
			// 充当データ存在チェック
			String jutoNo = getJutoNo(inMap);
			
			// 存在する場合
			if(jutoNo != null)
			{
				// 更新処理
				this.updJutoInfo(jutoNo, inMap);
				
				// 速報更新済フラグをtrueにする
				sokUpdateFlg = true;
			}
			// 存在しない場合
			else
			{
				// 充当登録
				insJuto(inMap);
			}
		}
		else
		{
			// 充当登録
			insJuto(inMap);
		}
		
		// FREE．NKIN_STAT ＝ "0"（債権充当） の場合
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
// 会計異動登録に関する処理をコメントアウト
//			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][jutoKaikeiDisp][債権充当データ．料金項目コード　＝　退避．料金項目コード（充当額_合計）]");
//			// 会計異動登録
//			insKaikeIdo(inMap, JACStrConst.KAIK_IDO_CD_JUTO);
			
		}
		
		// 入力．督促番号　≠　""（空）　の場合
		if(!inMap.getString(JBSbatCHIFM097.TOKUSOKU_NO).trim().equals(JACStrConst.KARA_MOJI))
		{
			if(tokusokuMap == null)
			{
				tokusokuMap = new JBSbatServiceInterfaceMap();
				tokusokuMap.getMap().putAll(inMap.getMap());
				tokusokuMap.setBigDecimal(JBSbatCHIFM093.AMNT, BigDecimal.ZERO);
				nyukinTgSaikenYmList = new ArrayList<String>();
				
				// 債券情報取得
				selectSaikenStat(inMap);
			}

			// 入金対象債権年月
			String saikenYm = inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM);

			// 入金対象債権年月が前月以前の場合
			if(saikenYm.compareTo(seikySyoriYm) < 0)
			{
				// 督促金額算出
				BigDecimal amnt = tokusokuMap.getBigDecimal(JBSbatCHIFM093.AMNT).add(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));
				tokusokuMap.setBigDecimal((JBSbatCHIFM093.AMNT), amnt);
			}
			nyukinTgSaikenYmList.add(saikenYm);
		}
		
		// 債権ステータス更新
		// IT2-2014-0000167 MOD STA
		//saikenDisp(inMap);
		String saikenStat = saikenDisp(inMap);

		// 充当後未収額の取得
		
		// OM-2014-0003053 MOD STA
		String jutogoMishuAmnt;
		
		//String jutogoMishuAmnt = mishuMap.get(makeStr(inMap.getString(JBSbatCHIFM093.SAIKEN_NO),mishuPrcGrpCd,mishuPcrsCd,mishuPrcSvcCd,mishuPrcKmkCd)).toString();
		BigDecimal mishuAmnt = mishuMap.get(makeStr(inMap.getString(JBSbatCHIFM093.SAIKEN_NO),mishuPrcGrpCd,mishuPcrsCd,mishuPrcSvcCd,mishuPrcKmkCd));
		
		if (mishuAmnt != null)
		{
			jutogoMishuAmnt = mishuAmnt.toString();
		}
		else
		{
		// 仮入金（コンビニリアル、コンビニ速報）の場合、充当後未収額が取得できないので、Zero を設定。
			jutogoMishuAmnt = ZERO;
		}
		// OM-2014-0003053 MOD END
		
		// IT2-2014-0000167 MOD END
		
		// 領収登録情報用ファイルの出力
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		// 出力項目設定
		outMap.setString(JBSbatCHIFM154.SEIKY_KEI_NO, 		inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO));		// 請求契約番号
		outMap.setString(JBSbatCHIFM154.NYUKIN_NO, 			inMap.getString(JBSbatCHIFM093.NYUKIN_NO));			// 入金番号
		outMap.setString(JBSbatCHIFM154.SAIKEN_NO, 			inMap.getString(JBSbatCHIFM093.SAIKEN_NO));			// 債権番号
		outMap.setString(JBSbatCHIFM154.AMNT, 				inMap.get(JBSbatCHIFM093.AMNT).toString());			// 金額
		outMap.setString(JBSbatCHIFM154.NYUKIN_ROUTE_CD, 	inMap.getString(JBSbatCHIFM093.NYUKIN_ROUTE_CD));	// 入金経路コード
		// IT2-2014-0000167 ADD STA
		outMap.setString(JBSbatCHIFM154.SAIKEN_STAT, 		saikenStat);										// 債権ステータス
		outMap.setString(JBSbatCHIFM154.JUTOGO_MISHU_AMNT, 	jutogoMishuAmnt);									// 充当後未収額
		// IT2-2014-0000167 ADD END
		
		outMap.setOutFlg(true);
		outputInItem.addOutMapList_2(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][jutoKaikeiDisp]");
	}
	
	/**
	 * 督促金額の更新処理を行います。
	 * 
	 * @param inMap 入力電文
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void tokusokuDisp(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][tokusokuDisp]");
		// 更新前督促情報取得
		JBSbatCommonDBInterface dbMap = selectTokusokuPk(inMap);
		
		if(errFlg)
		{
			return;
		}
		
		BigDecimal beforeAmnt = dbMap.getBigDecimal(JBSbatCH_T_TOKUSOKU.TOKUSOKU_AMNT);
		String bfTokusokuStat = dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT);
		String bfUseStopRlsReq = dbMap.getString(JBSbatCH_T_TOKUSOKU.USE_STP_RLS_REQ_YMD);
		String bfPayYakusokuYmd = dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_YMD);
		String bfPayYakusokuRikoYmd = dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_RIKO_JDG_YMD);
		String bfPayYakusokuUkYmd = dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_UK_YMD);
		String bfTokusokuEndYmd = dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_ENDYMD);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][beforeAmnt：" + beforeAmnt + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfTokusokuStat：" + bfTokusokuStat + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfUseStopRlsReq：" + bfUseStopRlsReq + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfPayYakusokuYmd：" + bfPayYakusokuYmd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfPayYakusokuRikoYmd：" + bfPayYakusokuRikoYmd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfPayYakusokuUkYmd：" + bfPayYakusokuUkYmd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][bfTokusokuEndYmd：" + bfTokusokuEndYmd + "]");
		
		boolean amntUpdFlg = false;
		boolean tokusokuStatUpdFlg = false;
		boolean payYakusokuYmdUpdFlg = false;
		
		BigDecimal amnt = null;
		String tokusokuStat = null;
		String useStopRlsReq = null;
		String payYakusokuYmd = null;
		String payYakusokuRikoYmd = null;
		String payYakusokuUkYmd = null;
		String tokusokuEndYmd = null;
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 前月以前・当月債権ステータス取得（未収・一部・貸倒：2 ＞ 仮・リアル：1 収納済：0）
		int togetsuStat = 0;
		int pastStat = 0;
		
		// 更新後債権ステータス判定
		for(Map.Entry<String, String> entry : saikenStatMap.entrySet())
		{
			String saikenYm = entry.getKey();
			String saikenStat = entry.getValue();
			
			// 当月債権の場合
			if(saikenYm.compareTo(seikySyoriYm) >= 0)
			{
				// リアルまたは仮
				if(saikenStat.equals(JACStrConst.SAIKEN_STAT_REAL_KAKNO) || saikenStat.equals(JACStrConst.SAIKEN_STAT_KARI_KAKNO))
				{
					togetsuStat = 1;
				}
				else
				{
					togetsuStat = 2;
				}
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][togetsuStat：" + togetsuStat + "]");
			}
			// 前月以前
			else
			{
				if(pastStat != 2)
				{
					// リアルまたは仮
					if(saikenStat.equals(JACStrConst.SAIKEN_STAT_REAL_KAKNO) || saikenStat.equals(JACStrConst.SAIKEN_STAT_KARI_KAKNO))
					{
						pastStat = 1;
					}
					else
					{
						pastStat = 2;
					}
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][pastStat：" + pastStat + "]");
				}
			}
		}
		
		// 更新後督促金額算出
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			amnt = beforeAmnt.subtract(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));
//OM-2014-0002327 MOD START
//			if(amnt.compareTo(beforeAmnt) != 0)
			if(beforeAmnt.compareTo(BigDecimal.ZERO) != 0 && amnt.compareTo(BigDecimal.ZERO) == 0)
//OM-2014-0002327 MOD END
			{
				// 更新前金額≠0円・更新後金額＝0円の場合
				amntUpdFlg = true;
			}
		}
		else
		{
			amnt = beforeAmnt;
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][pastStat：" + pastStat + "]");
		// 督促ステータス設定
		if(pastStat != 2)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][pastStat != 2]");
			tokusokuStat = JACStrConst.TOKUSOKU_STAT_NASHI;
			if(!tokusokuStat.equals(bfTokusokuStat))
			{
				// ステータスが変わった
				tokusokuStatUpdFlg = true;
			}
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][pastStat = 2]");
			tokusokuStat = bfTokusokuStat;
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][tokusokuStat：" + tokusokuStat + "]");
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][tokusokuDisp][tokusokuStat：" + tokusokuStat + "]");
		
		// 利用停止解除依頼年月日
		if(pastStat != 2 && bfTokusokuStat.equals(JACStrConst.TOKUSOKU_STAT_USE_STOP))
		{
			useStopRlsReq = super.opeDate;
		}
		else
		{
			useStopRlsReq = bfUseStopRlsReq;
		}
		
		// 支払約束日
		if(pastStat != 2 && togetsuStat != 2)
		{
			payYakusokuYmd = null;
			payYakusokuRikoYmd = null;
			payYakusokuUkYmd = null;
			payYakusokuYmdUpdFlg = true;
		}
		else
		{
			payYakusokuYmd = bfPayYakusokuYmd;
			payYakusokuRikoYmd = bfPayYakusokuRikoYmd;
			payYakusokuUkYmd = bfPayYakusokuUkYmd;
		}
		
		// 督促管理終了年月日
		if(pastStat == 0 && payYakusokuYmd == null && JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			tokusokuEndYmd = super.opeDate;
		}
		else
		{
			tokusokuEndYmd = bfTokusokuEndYmd;
		}
		
		String tokusokuIdoNo = null;
		// 督促更新
		updTokusoku(inMap, amnt, tokusokuStat, useStopRlsReq, payYakusokuYmd, payYakusokuRikoYmd, payYakusokuUkYmd, tokusokuEndYmd);
		
		// 督促異動番号最大値+1取得
		String bfTokusokuIdoNo = tokusokuIdoNoMap.get(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO));
		
		if(bfTokusokuIdoNo == null)
		{
			tokusokuIdoNo = selectTokusokuIdo002(inMap);
		}
		else
		{
			tokusokuIdoNo = String.valueOf(new BigDecimal(bfTokusokuIdoNo).add(BigDecimal.ONE));
			tokusokuIdoNo = seikyUtil.fillString(JCHbatSeikyKaknoBusinessUtil.FillType.Zero, tokusokuIdoNo, JACStrConst.TOKUSOKU_IDO_NO_LENGTH, false);
		}
		tokusokuIdoNoMap.put(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO), tokusokuIdoNo);

		if(!amntUpdFlg && tokusokuStatUpdFlg)
		{
			// 出力項目設定
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_IDO_NO, tokusokuIdoNo);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_BF, bfTokusokuStat);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_AF, tokusokuStat);
			
			// 金額：更新前金額≠0円・更新後金額＝0円ではない、督促ステータス：変化
			// 督促ステータス変更フラグを、"1"(督促ステータス変更あり)にする
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_CHG_FLG, JACStrConst.TOKUSOKU_STAT_CHG_ARI);
		}
		if(amntUpdFlg && !tokusokuStatUpdFlg)
		{
			// 出力項目設定
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_IDO_NO, tokusokuIdoNo);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_BF, bfTokusokuStat);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_AF, tokusokuStat);
			
			// 金額：更新前金額≠0円・更新後金額＝0円、督促ステータス：変化なし
			// 督促ステータス変更フラグを、"2"(金額変更あり)にする
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_CHG_FLG, JACStrConst.TOKUSOKU_STAT_CHG_DEL);
		}
		if(amntUpdFlg && tokusokuStatUpdFlg)
		{
			// 出力項目設定
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_IDO_NO, tokusokuIdoNo);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_BF, bfTokusokuStat);
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_AF, tokusokuStat);
			
			// 金額：更新前金額≠0円・更新後金額＝0円、督促ステータス：変化
			// 督促ステータス変更フラグを、"3"(金額変更あり、督促ステータス変更あり))にする
			outMap.setString(JBSbatCHIFM097.TOKUSOKU_STAT_CHG_FLG, JACStrConst.TOKUSOKU_STAT_CHG_ARI_DEL);
		}

		// 出力項目設定
		setOutKmk(inMap, outMap);
		
		outputInItem.addOutMapList(outMap);
		// 督促異動登録
		insTokusoku(inMap, dbMap, tokusokuIdoNo);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][tokusokuDisp]");
	}
	
	/**
	 * 金庫・会計異動を登録します。
	 * 
	 * @param inMap 入力電文
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void kinkoKaikeiDisp(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][kinkoKaikeiDisp]");
		// 金庫番号取得
		String kinkoNo = JCCBatCommon.getFormatedNextSeq(commonItem, JACStrConst.SEQ_KNK_NO, JACStrConst.KARA_MOJI, 12);
		
		// 債権充当データ（入力電文）．金庫番号 ←　「金庫番号取得」で取得した採番値
		inMap.setString(JBSbatCHIFM093.KNK_NO, kinkoNo);
		
		// 金庫登録
		insKinko(inMap);
			
		// 会計異動登録
// 会計異動登録に関する処理をコメントアウト
//		insKaikeIdo(inMap, JACStrConst.KAIK_IDO_CD_KNK);
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 出力項目設定
		setOutKmk(inMap, outMap);
		
		outputInItem.addOutMapList(outMap);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][kinkoKaikeiDisp]");
	}
	
	/**
	 * 債権．債権ステータスの更新を行います。
	 * @param inMap 入力電文
	 * @return String 更新後債権ステータス
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
// IT2-2014-0000167 MOD STA
//	private void saikenDisp(JBSbatServiceInterfaceMap inMap) throws Exception
	private String saikenDisp(JBSbatServiceInterfaceMap inMap) throws Exception
// IT2-2014-0000167 MOD END
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][saikenDisp]");

		String saikenStat = null;
		// FREE．NKIN_STAT ＝ "0"（債権充当） の場合　【通常充当】
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][フリー項目　＝　0（債権充当）の場合　【通常充当】]");

// ↓↓↓現在の行パラ設定ではバッチによる一部収納を許容しないため、コメントアウト↓↓↓
// 許容する場合には、全体的に見直し要
//			String key = makeStr(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), mishuInfoCd);
//			BigDecimal mishuAmnt = BigDecimal.ZERO;
//			// 未収額合計金額取得
//			if (mishuMap.containsKey(key))
//			{
//				mishuAmnt = mishuMap.get(key);
//			}
//			
//			// 未収額 ＝ ０
//			if(mishuAmnt.compareTo(BigDecimal.ZERO) == 0)
//			{
//				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenDisp][未収額 ＞ ０]");
//				saikenStat = JACStrConst.SAIKEN_STAT_KAKNO_ZUMI;
//				// 債権ステータス更新
//				updSaikenPkKakunoZumi(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), saikenStat);
//			}
//			else
//			{
//				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenDisp][未収額 ≦ ０]");
//				saikenStat = JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO;
//				// 債権ステータス更新
//				updSaikenPk(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), saikenStat);
//			}
//
// ↑↑↑現在の行パラ設定ではバッチによる一部収納を許容しないため、コメントアウト↑↑↑
			
			saikenStat = JACStrConst.SAIKEN_STAT_KAKNO_ZUMI;
			// 債権ステータス更新
			updSaikenPkKakunoZumi(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), saikenStat);
			
			if(tokusokuMap != null)
			{
				// 債権ステータスマップの債権ステータスを更新（収納済のためマップから削除）
				saikenStatMap.remove(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM));
			}
		}
		// FREE．NKIN_STAT ＝ "1"（債権仮充当（リアル速報）） の場合　【仮充当（リアル速報）】
		else if(JACStrConst.NKIN_STAT_SKN_REAL_SKH.equals(tmpNKIN_STAT))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][フリー項目　＝　1（債権仮充当（リアル速報））の場合　【仮充当（リアル速報）】]");
			// 債権ステータス取得
			saikenStat = saikenStsMap.get(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));
			
			// 債権更新（債権ステータス更新）
			// 取得した債権ステータス　＝　"020"（請求確定）または"060"（一部収納）　の場合
			
			if(saikenStat.equals(JACStrConst.SAIKEN_STAT_FIX_SEIKY) || saikenStat.equals(JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenDisp][取得した債権ステータス　＝　020（請求確定）または　060（一部収納）　の場合]");
				// 債権更新
				updSaikenPk(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), JACStrConst.SAIKEN_STAT_REAL_KAKNO);
				
				if(tokusokuMap != null)
				{
					// 債権ステータスマップの債権ステータスを更新
					saikenStatMap.put(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM), JACStrConst.SAIKEN_STAT_REAL_KAKNO);
				}
			}
			
		}
		// FREE．NKIN_STAT ＝ "2"（債権仮充当（速報）） の場合　【仮充当（速報）】
		else if(JACStrConst.NKIN_STAT_SKN_SKH.equals(tmpNKIN_STAT))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenDisp][フリー項目　＝　2（債権仮充当（速報））の場合　【仮充当（速報）】]");
			saikenStat = saikenStsMap.get(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));
			
			// 取得した債権ステータス　＝　"020"（請求確定）または"060"（一部収納）または"030"（リアル収納）の場合
			if(saikenStat.equals(JACStrConst.SAIKEN_STAT_FIX_SEIKY) 
					|| saikenStat.equals(JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO) || saikenStat.equals(JACStrConst.SAIKEN_STAT_REAL_KAKNO))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][saikenDisp][取得した債権ステータス　＝　020（請求確定）または　060（一部収納）または　030（リアル収納）の場合]");

				// 債権更新
				updSaikenPk(inMap.getString(JBSbatCHIFM093.SAIKEN_NO), JACStrConst.SAIKEN_STAT_KARI_KAKNO);
				
				if(tokusokuMap != null)
				{
					// 債権ステータスマップの債権ステータスを更新
					saikenStatMap.put(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM), JACStrConst.SAIKEN_STAT_KARI_KAKNO);
				}
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][saikenDisp]");
		// IT2-2014-0000167 ADD STA
		return saikenStat;
		// IT2-2014-0000167 ADD END
	}

	/**
	 * 債権内訳スキーマを更新します。
	 * 
	 * @param inMap 入力電文
	 * @param amnt 金額
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateSaikenUcwk(JBSbatServiceInterfaceMap inMap, BigDecimal amnt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateSaikenUcwk]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(amnt);	// 金額
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateSaikenUcwk][paramList=" + paramList.getList().toString() + "]");
		
		JBSbatCommonDBInterface whereList = new JBSbatCommonDBInterface();
		whereList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));	// 債権番号
		whereList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM));	// 債権番号
		whereList.setValue(inMap.getString(JBSbatCHIFM093.PRC_GRP_CD));	// 料金グループコード 
		whereList.setValue(inMap.getString(JBSbatCHIFM093.PCRS_CD));	// 料金コースコード 
		whereList.setValue(inMap.getString(JBSbatCHIFM093.PRC_SVC_CD));	// 料金サービスコード
		whereList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));	// 料金項目コード
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateSaikenUcwk][whereList=" + whereList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SAIKEN_UCWK_PKUPDATE(paramList.getList().toArray(), whereList.getList().toArray());
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateSaikenUcwk]");
	}
	
	/**
	 * 債権内訳スキーマを更新します。（金額足し込み）
	 * 
	 * @param inMap 入力電文
	 * @param amnt 金額
	 * @throws Exception 業務サービス内で発生した例外全般
	 * @return int 更新件数
	 */
	private int updateSaikenUcwkAmntPlus(JBSbatServiceInterfaceMap inMap, BigDecimal amnt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateSaikenUcwkAmntPlus]");
		int retCnt = 0;
		
		// パラメータセット
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(amnt);													// 金額
		paramList.setValue(super.opeDate);											// 更新年月日
		paramList.setValue(super.commonItem.getBatchUserId());						// 更新ユーザー
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));				// 債権番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM));	// 入金対象債権年月
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_GRP_CD));				// 料金グループコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PCRS_CD));				// 料金コースコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_SVC_CD));				// 料金サービスコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));				// 料金項目コード
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateSaikenUcwkAmntPlus][paramList=" + paramList.getList().toString() + "]");
		// 債権内訳金額追加更新
		// SQL実行
		retCnt = executeCH_T_SAIKEN_UCWK_CH_UPDATE_002(paramList.getList().toArray());
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateSaikenUcwkAmntPlus]");
		return(retCnt);
	}

	/**
	 * 債権内訳スキーマに充当額レコードを登録します。
	 * 
	 * @param inMap 入力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insSaikenUCWK(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insSaikenUCWK]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));					// 債権番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_GRP_CD));					// 料金グループコード 
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PCRS_CD));					// 料金コースコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_SVC_CD));					// 料金サービスコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));					// 料金項目コード
		paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));					// 金額
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM));		// 入金対象債権年月
		paramList.setValue(null);														// 登録年月日時分秒
		paramList.setValue(null);														// 登録オペレータアカウント
		paramList.setValue(null);														// 更新年月日時分秒
		paramList.setValue(null);														// 更新オペレータアカウント
		paramList.setValue(null);														// 削除年月日時分秒
		paramList.setValue(null);														// 削除オペレータアカウント
		paramList.setValue(null);														// 無効フラグ
		paramList.setValue(null);														// 登録運用年月日
		paramList.setValue(null);														// 登録処理ＩＤ
		paramList.setValue(null);														// 更新運用年月日
		paramList.setValue(null);														// 更新処理ＩＤ
		paramList.setValue(null);														// 削除運用年月日
		paramList.setValue(null);														// 削除処理ＩＤ

		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insSaikenUCWK][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_SAIKEN_UCWK_PKINSERT(paramList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insSaikenUCWK]");
	}
	
	/**
	 * 充当を登録します。
	 * 
	 * @param inMap 入力電文
	 * @param jutoNo 充当番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insJuto(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insJuto]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		paramList.setValue(SEQ_JUTO_NO_NEXTVAL);										// 充当番号
		paramList.setValue(JACStrConst.JUTO_SBT_AUTO);									// 充当種別コード（自動入金）
		paramList.setValue(super.opeDate);												// バッチ運用日
		// 金額
		// FREE．NKIN_STAT ＝ "0"（債権充当） の場合
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));
		}
		// FREE．NKIN_STAT ≠ "0"（債権充当） の場合
		else
		{
			paramList.setValue(BigDecimal.ZERO);
		}
		paramList.setValue(null);														// 取消年月日
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_NO));					// 入金番号
		paramList.setValue(null);														// 金庫番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));					// 債権番号
		paramList.setValue(null);														// 登録年月日時分秒
		paramList.setValue(null);														// 登録オペレータアカウント
		paramList.setValue(null);														// 更新年月日時分秒
		paramList.setValue(null);														// 更新オペレータアカウント
		paramList.setValue(null);														// 削除年月日時分秒
		paramList.setValue(null);														// 削除オペレータアカウント
		paramList.setValue(null);														// 無効フラグ
		paramList.setValue(null);														// 登録運用年月日
		paramList.setValue(null);														// 登録処理ＩＤ
		paramList.setValue(null);														// 更新運用年月日
		paramList.setValue(null);														// 更新処理ＩＤ
		paramList.setValue(null);														// 削除運用年月日
		paramList.setValue(null);														// 削除処理ＩＤ

		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insJuto][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_JUTO_PKINSERT(paramList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insJuto]");
	}
	
	/**
	 * 会計異動枝番を算出します。
	 * 
	 * @return String 会計異動更新枝番
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String selectKaikIdo() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectKaikIdo]");

		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		paramList.setValue(super.opeDate);												// 会計移動年月日

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectKaikIdo][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_KAIK_IDO_CH_SELECT_002(paramList.getList().toArray());

		// 結果取得
		JBSbatCommonDBInterface dbMap = db_CH_T_KAIK_IDO.selectNext();

		// 会計異動更新枝番　更新
		String edaNo = String.valueOf(Integer.parseInt(dbMap.getString(JBSbatCH_T_KAIK_IDO.KAIK_IDO_SEQ)) + 1);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectKaikIdo]");
		return edaNo;
	}
	
	/**
	 * 会計異動を登録します。
	 * 
	 * @param inMap 入力電文
	 * @param kaikIdoCd 会計異動コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insKaikeIdo(JBSbatServiceInterfaceMap inMap, String kaikIdoCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insKaikeIdo]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		kaikIdoEda++;
		paramList.setValue(super.opeDate);										// 会計異動年月日 
		paramList.setValue(String.valueOf(kaikIdoEda));							// 会計異動通番 
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO));		// 請求契約番号 
		paramList.setValue(kaikIdoCd);											// 会計異動コード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_GRP_CD));			// 料金グループコード 
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PCRS_CD));			// 料金コースコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_SVC_CD));			// 料金サービスコード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));			// 料金項目コード
		paramList.setValue(BigDecimal.ZERO);									// 異動前金額
		paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));			// 異動後金額
		paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));			// 異動金額
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SEIKY_YM));			// 請求年月
		paramList.setValue(seikyYm);											// 会計年月
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SEIKY_NO));			// 請求番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));			// 債権番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_NO));			// 入金番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));			// 会計内訳コード
		paramList.setValue(null);												// 登録年月日時分秒
		paramList.setValue(null);												// 登録オペレータアカウント
		paramList.setValue(null);												// 更新年月日時分秒
		paramList.setValue(null);												// 更新オペレータアカウント
		paramList.setValue(null);												// 削除年月日時分秒
		paramList.setValue(null);												// 削除オペレータアカウント
		paramList.setValue(null);												// 無効フラグ
		paramList.setValue(null);												// 登録運用年月日
		paramList.setValue(null);												// 登録処理ＩＤ
		paramList.setValue(null);												// 更新運用年月日
		paramList.setValue(null);												// 更新処理ＩＤ
		paramList.setValue(null);												// 削除運用年月日
		paramList.setValue(null);												// 削除処理ＩＤ
		
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insKaikeIdo][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_KAIK_IDO_PKINSERT(paramList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insKaikeIdo]");
	}
	
	/**
	 * 更新前の督促金額と督促ステータスを取得します。
	 * 
	 * @param inMap 入力電文
	 * @return JBSbatCommonDBInterface 取得結果
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectTokusokuPk(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectTokusokuPk]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO));		// 督促番号 
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokusokuPk][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		JBSbatCommonDBInterface selectMap = executeCH_T_TOKUSOKU_PKSELECT(paramList.getList().toArray());
		
		if(selectMap == null)
		{
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1200AW, new String[]
				{ db_CH_T_TOKUSOKU.getTableName(), paramList.getList().toString()});
			
			errFlg = true;
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokusokuPk][取得結果なし]");
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectTokusokuPk]");
		return selectMap;
		
	}

	/**
	 * 督促異動番号を算出します。
	 * 
	 * @param inMap 入力電文
	 * @return String
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String selectTokusokuIdo002(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO));		// 督促番号 
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokusokuIdo002][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_TOKUSOKU_IDO_CH_SELECT_002(paramList.getList().toArray());
		
		JBSbatCommonDBInterface dbMap = db_CH_T_TOKUSOKU_IDO.selectNext();
		
		String tokusokuIdoNo = ZERO;
		
		if(dbMap != null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokusokuIdo002][取得結果あり]");
			String tokusokuIdo = dbMap.getString(JBSbatCH_T_TOKUSOKU_IDO.TOKUSOKU_IDO_NO);
			tokusokuIdoNo = String.valueOf(new BigDecimal(tokusokuIdo).add(BigDecimal.ONE));
		}
		
		tokusokuIdoNo = seikyUtil.fillString(JCHbatSeikyKaknoBusinessUtil.FillType.Zero, tokusokuIdoNo, JACStrConst.TOKUSOKU_IDO_NO_LENGTH, false);
		
		return tokusokuIdoNo;
	}
	
	/**
	 * 督促異動を登録します。
	 * 
	 * @param inMap 入力電文
	 * @param dbMap
	 * @param tokusokuIdoNo 督促異動番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insTokusoku(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface dbMap, String tokusokuIdoNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insTokusoku]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO));					// 督促番号
		paramList.setValue(tokusokuIdoNo);													// 督促異動番号
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_EVENT_CD));		// 督促異動イベントコード
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_YMD));			// 督促異動年月日
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));				// 督促ステータス
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_AMNT));				// 督促金額
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_UK_YMD));		// 支払約束受付日
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_YMD));			// 支払約束年月日
		paramList.setValue(dbMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_RIKO_JDG_YMD));	// 支払約束履行判定年月日
		paramList.setValue(null);															// 登録年月日時分秒
		paramList.setValue(null);															// 登録オペレータアカウント
		paramList.setValue(null);															// 更新年月日時分秒
		paramList.setValue(null);															// 更新オペレータアカウント
		paramList.setValue(null);															// 削除年月日時分秒
		paramList.setValue(null);															// 削除オペレータアカウント
		paramList.setValue(null);															// 無効フラグ
		paramList.setValue(null);															// 登録運用年月日
		paramList.setValue(null);															// 登録処理ＩＤ
		paramList.setValue(null);															// 更新運用年月日
		paramList.setValue(null);															// 更新処理ＩＤ
		paramList.setValue(null);															// 削除運用年月日
		paramList.setValue(null);															// 削除処理ＩＤ
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insTokusoku][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_TOKUSOKU_IDO_PKINSERT(paramList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insTokusoku]");
	}

	/**
	 * 督促金額、督促ステータス、利用停止解除依頼年月日を更新します。
	 * 
	 * @param inMap 入力電文
	 * @param amnt 金額
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updTokusoku(JBSbatServiceInterfaceMap inMap, BigDecimal amnt, String tokusokuStat, String useStopRlsReq, String payYakusokuYmd, String payYakusokuRikoYmd, String payYakusokuUkYmd, String tokusokuEndYmd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updTokusoku]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(tokusokuStat);									// 督促ステータス
		paramList.setValue(amnt);											// 督促金額
		paramList.setValue(tokusokuEndYmd);									// 督促管理終了年月日
		paramList.setValue(payYakusokuUkYmd);								// 支払約束受付年月日
		paramList.setValue(payYakusokuYmd);									// 支払約束年月日
		paramList.setValue(payYakusokuRikoYmd);								// 支払約束履行判定年月日
		paramList.setValue(useStopRlsReq);									// 利用停止解除依頼年月日
		paramList.setValue(gettkskIdoEventCd());							// 督促異動イベントコード
		paramList.setValue(super.opeDate);									// 督促異動年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updTokusoku][paramList=" + paramList.getList().toString() + "]");
		JBSbatCommonDBInterface whereList = new JBSbatCommonDBInterface();
		
		whereList.setValue(inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO)); 	// 督促番号
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updTokusoku][whereList=" + whereList.getList().toString() + "]");
		// SQL実行
		executeCH_T_TOKUSOKU_PKUPDATE(paramList.getList().toArray(), whereList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updTokusoku]");
	}
	
	/**
	 * 督促異動イベントコードを返却します
	 * @return String　督促異動イベントコード
	 */
	private String gettkskIdoEventCd()
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][gettkskIdoEventCd]");
		
		String tkskIdoEventCd = null;
		
		// FREE．NKIN_STAT ＝ "0"（債権充当）の場合
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			// 債権充当
			tkskIdoEventCd = JACStrConst.TKSKIDO_EVCD_SKN_JUTO;
		}
		// FREE．NKIN_STAT ＝ "1"（債権仮充当（リアル速報））の場合
		else if(JACStrConst.NKIN_STAT_SKN_REAL_SKH.equals(tmpNKIN_STAT))
		{
			// 債権仮充当(リアル)
			tkskIdoEventCd = JACStrConst.TKSKIDO_EVCD_KRJUTO_REAL;
		}
		// FREE．NKIN_STAT ＝ "2"（債権仮充当（速報））の場合
		else if(JACStrConst.NKIN_STAT_SKN_SKH.equals(tmpNKIN_STAT))
		{
			// 債権仮充当(速報)
			tkskIdoEventCd = JACStrConst.TKSKIDO_EVCD_KRJUTO_SKH;
		}
		assert tkskIdoEventCd != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][gettkskIdoEventCd][tkskIdoEventCd = " + tkskIdoEventCd + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][gettkskIdoEventCd]");
		
		return tkskIdoEventCd;
	}
	
	/**
	 * 金庫を登録します。
	 * 
	 * @param inMap 入力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insKinko(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insKinko]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		paramList.setValue(inMap.getString(JBSbatCHIFM093.KNK_NO));			// 金庫番号
		paramList.setValue(JCCBatCommon.getSysDateTimeStamp());				// 世代登録年月日時分秒
		paramList.setValue(JACStrConst.KINKO_IDO_ADD);						// 金庫異動コード
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO));	// 請求契約番号
		paramList.setValue(super.opeDate);									// 金庫移動年月日
		paramList.setValue(null);											// 移動元金庫番号
		paramList.setValue(null);											// 統合先金庫番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_NO));		// 入金番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));		// 金庫料金項目コード
		paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));		// 金庫金額
		paramList.setValue(null);											// 精算方法コード
		paramList.setValue(JACStrConst.KNK_RIREKI_DATA_FLG_CURRENT);		// 履歴データフラグ
		paramList.setValue(null);											// 登録年月日時分秒
		paramList.setValue(null);											// 登録オペレータアカウント
		paramList.setValue(null);											// 更新年月日時分秒
		paramList.setValue(null);											// 更新オペレータアカウント
		paramList.setValue(null);											// 削除年月日時分秒
		paramList.setValue(null);											// 削除オペレータアカウント
		paramList.setValue(null);											// 無効フラグ
		paramList.setValue(null);											// 登録運用年月日
		paramList.setValue(null);											// 登録処理ＩＤ
		paramList.setValue(null);											// 更新運用年月日
		paramList.setValue(null);											// 更新処理ＩＤ
		paramList.setValue(null);											// 削除運用年月日
		paramList.setValue(null);											// 削除処理ＩＤ

		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insKinko][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_T_KNK_PKINSERT(paramList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insKinko]");
		
	}
	
	/**
	 * 債権を更新します。
	 * 
	 * @param saikenNo 債権番号
	 * @param saikenStat 債権ステータス
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updSaikenPk(String saikenNo, String saikenStat) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updSaikenPk]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(saikenStat);		// 債権ステータス
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updSaikenPk][paramList=" + paramList.getList().toString() + "]");
		
		JBSbatCommonDBInterface whereList = new JBSbatCommonDBInterface();
		
		whereList.setValue(saikenNo);		// 債権番号
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updSaikenPk][whereList=" + whereList.getList().toString() + "]");
		// SQL実行
		executeCH_T_SAIKEN_PKUPDATE(paramList.getList().toArray(), whereList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updSaikenPk]");
	}

	/**
	 * 債権を更新します。
	 * 
	 * @param saikenNo 債権番号
	 * @param saikenStat 債権ステータス
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updSaikenPkKakunoZumi(String saikenNo, String saikenStat) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updSaikenPk]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(saikenStat);		// 債権ステータス
		paramList.setValue(super.opeDate);	// バッチ運用日
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updSaikenPk][paramList=" + paramList.getList().toString() + "]");
		
		JBSbatCommonDBInterface whereList = new JBSbatCommonDBInterface();
		
		whereList.setValue(saikenNo);		// 債権番号
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updSaikenPk][whereList=" + whereList.getList().toString() + "]");
		// SQL実行
		executeCH_T_SAIKEN_PKUPDATE1(paramList.getList().toArray(), whereList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updSaikenPk]");
	}

	/**
	 * 料金項目抽出変換スキーマ検索処理を呼び出し、料金項目コードを取得します。
	 * 
	 * @param wkKinoSkbt 業務機能識別コード
	 * @param prcKmkList 料金項目コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getPrcKmkList(String wkKinoSkbt, ArrayList<String> prcKmkList) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcKmkList]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(super.systemCode);				// システムコード
		paramList.setValue(wkKinoSkbt);						// 業務機能識別コード
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);	// 抽出変換コード
		paramList.setValue(super.opeDate);					// 適用開始年月日
		paramList.setValue(super.opeDate);					// 適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcKmkList][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_015(paramList.getList().toArray());
		
		// 取得結果判定
		JBSbatCommonDBInterface prcKmkCsChgeMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		if (prcKmkCsChgeMap == null)
		{
			// マスタ未存在エラー
			String[] msgParam = new String[]
			{
				JBSbatCH_M_PRC_KMK_CS_CHGE.TABLE_NAME,
				JPCBatCommon.convListToString(paramList.getList()),
			};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		StringBuffer prckmk = null;
		while(prcKmkCsChgeMap != null)
		{
			prckmk = new StringBuffer();
			prckmk.append(prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD));
			prckmk.append(prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD));
			prckmk.append(prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD));
			prckmk.append(prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));

			prcKmkList.add(prckmk.toString());
			prcKmkCsChgeMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext(); 
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcKmkList]");
		return ;
	}
	
	/**
	 * 料金項目抽出変換スキーマ検索処理を呼び出し、料金項目コードを取得します。
	 * 
	 * @param wkKinoSkbt 業務機能識別コード
	 * @return String 料金項目コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getPrcKmkMishu(String wkKinoSkbt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcKmkList]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(super.systemCode);				// システムコード
		paramList.setValue(wkKinoSkbt);						// 業務機能識別コード
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);	// 抽出変換コード
		paramList.setValue(super.opeDate);					// 適用開始年月日
		paramList.setValue(super.opeDate);					// 適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcKmkList][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_015(paramList.getList().toArray());
		
		// 取得結果判定
		JBSbatCommonDBInterface prcKmkCsChgeMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		if (prcKmkCsChgeMap == null)
		{
			// マスタ未存在エラー
			String[] msgParam = new String[]
			{
				JBSbatCH_M_PRC_KMK_CS_CHGE.TABLE_NAME,
				JPCBatCommon.convListToString(paramList.getList()),
			};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		this.mishuPrcGrpCd 	= prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD);
		this.mishuPcrsCd 	= prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD);
		this.mishuPrcSvcCd 	= prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD);
		this.mishuPrcKmkCd 	= prcKmkCsChgeMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD);
		this.mishuInfoCd = makeStr(mishuPrcGrpCd, mishuPcrsCd, mishuPrcSvcCd, mishuPrcKmkCd);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcKmkList]");
		return ;
	}

	/**
	 * 料金項目抽出変換スキーマ検索処理を呼び出し、料金項目マップを取得します。
	 * 
	 * @param wkKinoSkbt 業務機能識別コード
	 * @return JBSbatCommonDBInterface 料金項目マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface getPrcKmkMap(String wkKinoSkbt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcKmkList]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(super.systemCode);				// システムコード
		paramList.setValue(wkKinoSkbt);						// 業務機能識別コード
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);	// 抽出変換コード
		paramList.setValue(super.opeDate);					// 適用開始年月日
		paramList.setValue(super.opeDate);					// 適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcKmkList][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_015(paramList.getList().toArray());
		
		// 取得結果判定
		JBSbatCommonDBInterface prcKmkCsChgeMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		if (prcKmkCsChgeMap == null)
		{
			// マスタ未存在エラー
			String[] msgParam = new String[]
			{
				JBSbatCH_M_PRC_KMK_CS_CHGE.TABLE_NAME,
				JPCBatCommon.convListToString(paramList.getList()),
			};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcKmkList]");
		return prcKmkCsChgeMap;
	}

	/**
	 * 出力項目を設定します。
	 * 
	 * @param inMap 入力電文
	 * @param outMap 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void setOutKmk(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outMap)throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setOutKmk]");
		
		outMap.setString(JBSbatCHIFM097.SEIKY_KEI_NO, 				inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO));
		outMap.setString(JBSbatCHIFM097.NYUKIN_NO, 					inMap.getString(JBSbatCHIFM093.NYUKIN_NO));
		outMap.setString(JBSbatCHIFM097.SEIKY_NO, 					inMap.getString(JBSbatCHIFM093.SEIKY_NO));
		outMap.setString(JBSbatCHIFM097.SEIKY_YM, 					inMap.getString(JBSbatCHIFM093.SEIKY_YM));
		outMap.setString(JBSbatCHIFM097.SAIKEN_NO, 					inMap.getString(JBSbatCHIFM093.SAIKEN_NO));
		outMap.setString(JBSbatCHIFM097.SEIRI_NO, 					inMap.getString(JBSbatCHIFM093.SEIRI_NO));
		outMap.setString(JBSbatCHIFM097.SVC_NO, 					inMap.getString(JBSbatCHIFM093.SVC_NO));
		outMap.setString(JBSbatCHIFM097.SVC_SKBT, 					inMap.getString(JBSbatCHIFM093.SVC_SKBT));
		outMap.setString(JBSbatCHIFM097.PRC_GRP_CD, 				inMap.getString(JBSbatCHIFM093.PRC_GRP_CD));
		outMap.setString(JBSbatCHIFM097.PCRS_CD, 					inMap.getString(JBSbatCHIFM093.PCRS_CD));
		outMap.setString(JBSbatCHIFM097.PRC_SVC_CD, 				inMap.getString(JBSbatCHIFM093.PRC_SVC_CD));
		outMap.setString(JBSbatCHIFM097.PRC_KMK_CD, 				inMap.getString(JBSbatCHIFM093.PRC_KMK_CD));
		outMap.setString(JBSbatCHIFM097.AMNT, 						String.valueOf(inMap.getBigDecimal(JBSbatCHIFM093.AMNT)));
		outMap.setString(JBSbatCHIFM097.KAGEN_SKBT_CD, 				inMap.getString(JBSbatCHIFM093.KAGEN_SKBT_CD));
		outMap.setString(JBSbatCHIFM097.NYUKIN_STAT, 				inMap.getString(JBSbatCHIFM093.NYUKIN_STAT));
		outMap.setString(JBSbatCHIFM097.NYUKIN_ROUTE_CD, 			inMap.getString(JBSbatCHIFM093.NYUKIN_ROUTE_CD));
		outMap.setString(JBSbatCHIFM097.NYUKIN_TG_SAIKEN_YM, 		inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM));
		outMap.setString(JBSbatCHIFM097.TOKUSOKU_NO, 				inMap.getString(JBSbatCHIFM093.TOKUSOKU_NO));
		outMap.setString(JBSbatCHIFM097.KNK_NO, 					inMap.getString(JBSbatCHIFM093.KNK_NO));
		outMap.setString(JBSbatCHIFM097.RSLT, 						inMap.getString(JBSbatCHIFM093.RSLT));
		outMap.setString(JBSbatCHIFM097.DATA, 						inMap.getString(JBSbatCHIFM093.DATA));
		outMap.setString(JBSbatCHIFM097.ERR_NAIYO, 					inMap.getString(JBSbatCHIFM093.ERR_NAIYO));
		
		outMap.setOutFlg(true);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setOutKmk]");
	}
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	金額					AMNT
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	債権番号				SAIKEN_NO
	 *		 	債権確定年月			SAIKEN_FIX_YM
	 *		 	料金グループコード		PRC_GRP_CD
	 *		 	料金コースコード		PCRS_CD
	 *		 	料金サービスコード		PRC_SVC_CD
	 *		 	料金項目コード			PRC_KMK_CD
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_UCWK_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("AMNT", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SAIKEN_NO", whereParam[0]);
		whereMap.setValue("SAIKEN_FIX_YM", whereParam[1]);
		whereMap.setValue("PRC_GRP_CD", whereParam[2]);
		whereMap.setValue("PCRS_CD", whereParam[3]);
		whereMap.setValue("PRC_SVC_CD", whereParam[4]);
		whereMap.setValue("PRC_KMK_CD", whereParam[5]);

		// DBアクセスを実行します
		db_CH_T_SAIKEN_UCWK_UPDATE.updateByPrimaryKeysBatch(whereMap, setMap, 1);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	金額
	 *			更新年月日
	 *		 	更新ユーザー
	 *			債権番号
	 *			債権確定年月
	 *			料金グループコード
	 *			料金コースコード
	 *			料金サービスコード
	 *			料金項目コード
	 * </pre>
	 * <p>
	 * @param param 設定項目の値。
	 * @return int 更新数。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int executeCH_T_SAIKEN_UCWK_CH_UPDATE_002(Object[] param) throws Exception
	{
		int retCnt = 0;
		// 条件のマップを作成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());

		// DBアクセスを実行します
		retCnt = db_CH_T_SAIKEN_UCWK_UPDATE.executeBySqlDefine(paramList, CH_T_SAIKEN_UCWK_CH_UPDATE_002);
		return(retCnt);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	債権番号				SAIKEN_NO
	 *		 	料金グループコード				PRC_GRP_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金サービスコード				PRC_SVC_CD
	 *		 	料金項目コード				PRC_KMK_CD
	 *		 	金額				AMNT
	 *		 	債権確定年月				SAIKEN_FIX_YM
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_UCWK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SAIKEN_NO", setParam[0]);
		setMap.setValue("PRC_GRP_CD", setParam[1]);
		setMap.setValue("PCRS_CD", setParam[2]);
		setMap.setValue("PRC_SVC_CD", setParam[3]);
		setMap.setValue("PRC_KMK_CD", setParam[4]);
		setMap.setValue("AMNT", setParam[5]);
		setMap.setValue("SAIKEN_FIX_YM", setParam[6]);
		setMap.setValue("ADD_DTM", setParam[7]);
		setMap.setValue("ADD_OPEACNT", setParam[8]);
		setMap.setValue("UPD_DTM", setParam[9]);
		setMap.setValue("UPD_OPEACNT", setParam[10]);
		setMap.setValue("DEL_DTM", setParam[11]);
		setMap.setValue("DEL_OPEACNT", setParam[12]);
		setMap.setValue("MK_FLG", setParam[13]);
		setMap.setValue("ADD_UNYO_YMD", setParam[14]);
		setMap.setValue("ADD_TRN_ID", setParam[15]);
		setMap.setValue("UPD_UNYO_YMD", setParam[16]);
		setMap.setValue("UPD_TRN_ID", setParam[17]);
		setMap.setValue("DEL_UNYO_YMD", setParam[18]);
		setMap.setValue("DEL_TRN_ID", setParam[19]);
	
		// DBアクセスを実行します
		saikenUcwkCnt += db_CH_T_SAIKEN_UCWK_INSERT.insertByPrimaryKeysBatch(setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	充当番号				JUTO_NO
	 *		 	充当種別コード				JUTO_SBT_CD
	 *		 	充当年月日				JUTO_YMD
	 *		 	充当額				JUTO_AMNT
	 *		 	取消年月日				CL_YMD
	 *		 	入金番号				NYUKIN_NO
	 *		 	金庫番号				KNK_NO
	 *		 	債権番号				SAIKEN_NO
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_JUTO_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("JUTO_NO", setParam[0]);
		setMap.setValue("JUTO_SBT_CD", setParam[1]);
		setMap.setValue("JUTO_YMD", setParam[2]);
		setMap.setValue("JUTO_AMNT", setParam[3]);
		setMap.setValue("CL_YMD", setParam[4]);
		setMap.setValue("NYUKIN_NO", setParam[5]);
		setMap.setValue("KNK_NO", setParam[6]);
		setMap.setValue("SAIKEN_NO", 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]);
		setMap.setValue("ADD_UNYO_YMD", setParam[15]);
		setMap.setValue("ADD_TRN_ID", setParam[16]);
		setMap.setValue("UPD_UNYO_YMD", setParam[17]);
		setMap.setValue("UPD_TRN_ID", setParam[18]);
		setMap.setValue("DEL_UNYO_YMD", setParam[19]);
		setMap.setValue("DEL_TRN_ID", setParam[20]);
	
		// DBアクセスを実行します
		db_CH_T_JUTO_INSERT.insertByPrimaryKeysBatch(setMap);
	}

	/**
	 * SQLKEY(CH_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	会計移動年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_KAIK_IDO_CH_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_KAIK_IDO.selectBySqlDefine(paramList, CH_T_KAIK_IDO_CH_SELECT_002);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	会計異動年月日				KAIK_IDO_YMD
	 *		 	会計異動通番				KAIK_IDO_SEQ
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	会計異動コード				KAIK_IDO_CD
	 *		 	料金グループコード				PRC_GRP_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金サービスコード				PRC_SVC_CD
	 *		 	料金項目コード				PRC_KMK_CD
	 *		 	異動前金額				IDO_BF_AMNT
	 *		 	異動後金額				IDO_AF_AMNT
	 *		 	異動金額				IDO_AMNT
	 *		 	請求年月				SEIKY_YM
	 *		 	会計年月				KAIK_YM
	 *		 	請求番号				SEIKY_NO
	 *		 	債権番号				SAIKEN_NO
	 *		 	入金番号				NYUKIN_NO
	 *		 	会計内訳コード				KAIK_UCWK_CD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_KAIK_IDO_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KAIK_IDO_YMD", setParam[0]);
		setMap.setValue("KAIK_IDO_SEQ", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("KAIK_IDO_CD", setParam[3]);
		setMap.setValue("PRC_GRP_CD", setParam[4]);
		setMap.setValue("PCRS_CD", setParam[5]);
		setMap.setValue("PRC_SVC_CD", setParam[6]);
		setMap.setValue("PRC_KMK_CD", setParam[7]);
		setMap.setValue("IDO_BF_AMNT", setParam[8]);
		setMap.setValue("IDO_AF_AMNT", setParam[9]);
		setMap.setValue("IDO_AMNT", setParam[10]);
		setMap.setValue("SEIKY_YM", setParam[11]);
		setMap.setValue("KAIK_YM", setParam[12]);
		setMap.setValue("SEIKY_NO", setParam[13]);
		setMap.setValue("SAIKEN_NO", setParam[14]);
		setMap.setValue("NYUKIN_NO", setParam[15]);
		setMap.setValue("KAIK_UCWK_CD", setParam[16]);
		setMap.setValue("ADD_DTM", setParam[17]);
		setMap.setValue("ADD_OPEACNT", setParam[18]);
		setMap.setValue("UPD_DTM", setParam[19]);
		setMap.setValue("UPD_OPEACNT", setParam[20]);
		setMap.setValue("DEL_DTM", setParam[21]);
		setMap.setValue("DEL_OPEACNT", setParam[22]);
		setMap.setValue("MK_FLG", setParam[23]);
		setMap.setValue("ADD_UNYO_YMD", setParam[24]);
		setMap.setValue("ADD_TRN_ID", setParam[25]);
		setMap.setValue("UPD_UNYO_YMD", setParam[26]);
		setMap.setValue("UPD_TRN_ID", setParam[27]);
		setMap.setValue("DEL_UNYO_YMD", setParam[28]);
		setMap.setValue("DEL_TRN_ID", setParam[29]);
	
		// DBアクセスを実行します
		db_CH_T_KAIK_IDO_INSERT.insertByPrimaryKeysBatch(setMap);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TOKUSOKU_NO
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeCH_T_TOKUSOKU_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("TOKUSOKU_NO", whereParam[0]);

		// DBアクセスを実行します
		return db_CH_T_TOKUSOKU.selectByPrimaryKeys(whereMap);
	}

	/**
	 * SQLKEY(CH_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	督促異動．督促番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_IDO_CH_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_TOKUSOKU_IDO.selectBySqlDefine(paramList, CH_T_TOKUSOKU_IDO_CH_SELECT_002);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	督促番号				TOKUSOKU_NO
	 *		 	督促異動番号				TOKUSOKU_IDO_NO
	 *		 	督促異動イベントコード				TOKUSOKU_IDO_EVENT_CD
	 *		 	督促異動年月日				TOKUSOKU_IDO_YMD
	 *		 	督促ステータス				TOKUSOKU_STAT
	 *		 	督促金額				TOKUSOKU_AMNT
	 *		 	支払約束受付年月日				PAY_YAKUSOKU_UK_YMD
	 *		 	支払約束年月日				PAY_YAKUSOKU_YMD
	 *		 	支払約束履行判定年月日				PAY_YAKUSOKU_RIKO_JDG_YMD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_IDO_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("TOKUSOKU_NO", setParam[0]);
		setMap.setValue("TOKUSOKU_IDO_NO", setParam[1]);
		setMap.setValue("TOKUSOKU_IDO_EVENT_CD", setParam[2]);
		setMap.setValue("TOKUSOKU_IDO_YMD", setParam[3]);
		setMap.setValue("TOKUSOKU_STAT", setParam[4]);
		setMap.setValue("TOKUSOKU_AMNT", setParam[5]);
		setMap.setValue("PAY_YAKUSOKU_UK_YMD", setParam[6]);
		setMap.setValue("PAY_YAKUSOKU_YMD", setParam[7]);
		setMap.setValue("PAY_YAKUSOKU_RIKO_JDG_YMD", setParam[8]);
		setMap.setValue("ADD_DTM", setParam[9]);
		setMap.setValue("ADD_OPEACNT", setParam[10]);
		setMap.setValue("UPD_DTM", setParam[11]);
		setMap.setValue("UPD_OPEACNT", setParam[12]);
		setMap.setValue("DEL_DTM", setParam[13]);
		setMap.setValue("DEL_OPEACNT", setParam[14]);
		setMap.setValue("MK_FLG", setParam[15]);
		setMap.setValue("ADD_UNYO_YMD", setParam[16]);
		setMap.setValue("ADD_TRN_ID", setParam[17]);
		setMap.setValue("UPD_UNYO_YMD", setParam[18]);
		setMap.setValue("UPD_TRN_ID", setParam[19]);
		setMap.setValue("DEL_UNYO_YMD", setParam[20]);
		setMap.setValue("DEL_TRN_ID", setParam[21]);
	
		// DBアクセスを実行します
		db_CH_T_TOKUSOKU_IDO_INSERT.insertByPrimaryKeysBatch(setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	金庫番号				KNK_NO
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	金庫移動コード				KNK_MOVE_CD
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	金庫移動年月日				KNK_IDO_YMD
	 *		 	移動元金庫番号				IDOMOTO_KNK_NO
	 *		 	統合先金庫番号				TOGO_KNK_NO
	 *		 	入金番号				NYUKIN_NO
	 *		 	金庫料金項目コード				KNK_PRC_KMK_CD
	 *		 	金庫金額				KNK_AMNT
	 *		 	精算方法コード				SSN_WAY_CD
	 *		 	履歴データフラグ				RIREKI_DATA_FLG
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_KNK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("KNK_NO", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("KNK_MOVE_CD", setParam[2]);
		setMap.setValue("SEIKY_KEI_NO", setParam[3]);
		setMap.setValue("KNK_IDO_YMD", setParam[4]);
		setMap.setValue("IDOMOTO_KNK_NO", setParam[5]);
		setMap.setValue("TOGO_KNK_NO", setParam[6]);
		setMap.setValue("NYUKIN_NO", setParam[7]);
		setMap.setValue("KNK_PRC_KMK_CD", setParam[8]);
		setMap.setValue("KNK_AMNT", setParam[9]);
		setMap.setValue("SSN_WAY_CD", setParam[10]);
		setMap.setValue("RIREKI_DATA_FLG", setParam[11]);
		setMap.setValue("ADD_DTM", setParam[12]);
		setMap.setValue("ADD_OPEACNT", setParam[13]);
		setMap.setValue("UPD_DTM", setParam[14]);
		setMap.setValue("UPD_OPEACNT", setParam[15]);
		setMap.setValue("DEL_DTM", setParam[16]);
		setMap.setValue("DEL_OPEACNT", setParam[17]);
		setMap.setValue("MK_FLG", setParam[18]);
		setMap.setValue("ADD_UNYO_YMD", setParam[19]);
		setMap.setValue("ADD_TRN_ID", setParam[20]);
		setMap.setValue("UPD_UNYO_YMD", setParam[21]);
		setMap.setValue("UPD_TRN_ID", setParam[22]);
		setMap.setValue("DEL_UNYO_YMD", setParam[23]);
		setMap.setValue("DEL_TRN_ID", setParam[24]);
	
		// DBアクセスを実行します
		db_CH_T_KNK_INSERT.insertByPrimaryKeysBatch(setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	債権ステータス				SAIKEN_STAT
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SAIKEN_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SAIKEN_STAT", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SAIKEN_NO", whereParam[0]);

		// DBアクセスを実行します
		saikenCnt += db_CH_T_SAIKEN_UPDATE.updateByPrimaryKeysBatch(whereMap, setMap, 1);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	債権ステータス				SAIKEN_STAT
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SAIKEN_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_PKUPDATE1(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SAIKEN_STAT", setParam[0]);
		setMap.setValue("JUTO_FIN_YMD", setParam[1]);
		
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SAIKEN_NO", whereParam[0]);

		// DBアクセスを実行します
		saikenCnt += db_CH_T_SAIKEN_UPDATE.updateByPrimaryKeysBatch(whereMap, setMap, 1);
	}
	
	/**
	 * SQLKEY(CH_SELECT_012)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	料金項目抽出変換．システムコード
	 *		 	料金項目抽出変換．業務機能識別コード
	 *		 	料金項目抽出変換．抽出変換コード
	 *		 	料金項目抽出変換．適用開始年月日
	 *		 	料金項目抽出変換．適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_KMK_CS_CHGE.selectBySqlDefine(paramList, CH_M_PRC_KMK_CS_CHGE_CH_SELECT_015);
	}

// OM-2015-0001697 MOD START
	/**
	 * SQLKEY(CH_SELECT_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	入金番号
	 *		 	債権番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
//	private void executeCH_T_JUTO_CH_SELECT_001(Object[] param) throws Exception
	private void executeCH_T_JUTO_CH_SELECT_004(Object[] param) throws Exception
// OM-2015-0001697 MOD END
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
// OM-2015-0001697 MOD START
//		db_CH_T_JUTO.selectBySqlDefine(paramList, CH_T_JUTO_CH_SELECT_001);
		db_CH_T_JUTO.selectBySqlDefine(paramList, CH_T_JUTO_CH_SELECT_004);
// OM-2015-0001697 MOD END
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	充当年月日				JUTO_YMD
	 *		 	充当額				JUTO_AMNT
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	JUTO_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_JUTO_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("JUTO_YMD", setParam[0]);
		setMap.setValue("JUTO_AMNT", setParam[1]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("JUTO_NO", whereParam[0]);

		// DBアクセスを実行します
		db_CH_T_JUTO_UPDATE.updateByPrimaryKeysBatch(whereMap, setMap, 1);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *			督促ステータス				TOKUSOKU_STAT
	 *		 	督促金額				TOKUSOKU_AMNT
	 *			督促管理終了年月日				TOKUSOKU_ENDYMD
	 *			支払約束受付年月日				PAY_YAKUSOKU_UK_YMD
	 *			支払約束年月日				PAY_YAKUSOKU_YMD
	 *			支払約束履行判定年月日				PAY_YAKUSOKU_RIKO_JDG_YMD
	 *	 		利用停止解除依頼年月日				USE_STP_RLS_REQ_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TOKUSOKU_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("TOKUSOKU_STAT", setParam[0]);
		setMap.setValue("TOKUSOKU_AMNT", setParam[1]);
		setMap.setValue("TOKUSOKU_ENDYMD", setParam[2]);
		setMap.setValue("PAY_YAKUSOKU_UK_YMD", setParam[3]);
		setMap.setValue("PAY_YAKUSOKU_YMD", setParam[4]);
		setMap.setValue("PAY_YAKUSOKU_RIKO_JDG_YMD", setParam[5]);
		setMap.setValue("USE_STP_RLS_REQ_YMD", setParam[6]);
		setMap.setValue("TOKUSOKU_IDO_EVENT_CD", setParam[7]);
		setMap.setValue("TOKUSOKU_IDO_YMD", setParam[8]);

		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("TOKUSOKU_NO", whereParam[0]);

		// DBアクセスを実行します
		tokusokuCnt += db_CH_T_TOKUSOKU_UPDATE.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * SQLKEY(CH_SELECT_018)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			請求年月
	 *			請求方法コード(口振)
	 *			請求方法コード(郵振)
	 *			請求方法コード(クレジット)
	 *			請求種別コード(定例請求)
	 *			請求年月
	 *			債権番号
	 *			システムコード
	 *			業務機能識別（合算請求作成）
	 *			業務機能識別（未収額（合算請求））
	 *			業務機能識別（合算請求作成（当月請求額合計）
	 *			抽出変換コード
	 *			バッチ運用日
	 *			バッチ運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_UCWK_CH_SELECT_018(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());
		paramList.setValue(param[12].toString());
		paramList.setValue(param[13].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.selectBySqlDefine(paramList, CH_T_SEIKY_UCWK_CH_SELECT_018);
	}

	/**
	 * SQLKEY(CH_UPDATE_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 executeCH_T_SEIKY_UCWK_CH_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.executeBySqlDefine(paramList, CH_T_SEIKY_UCWK_CH_UPDATE_001);
	}
	
	/**
	 * SQLKEY(CH_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求年月
	 *			イベントコード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_SCHDL_TEIGI_CH_UPDATE_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_CH_SELECT_002);
	}
	
	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_NO
	 *		 	SEIKY_KEI_NO
	 *			SEIKY_YM
	 *		 	SEIRI_NO
	 *		 	SVC_KEI_NO
	 *		 	PRC_GRP_CD
	 *		 	PCRS_CD
	 *		 	PRC_SVC_CD
	 *		 	PRC_KMK_CD
	 *		 	GSAN_SEIKY_YM
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return 削除件数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int executeCH_T_SEIKY_UCWK_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_NO", whereParam[0]);
		whereMap.setValue("SEIKY_KEI_NO", whereParam[1]);
		whereMap.setValue("SEIKY_YM", whereParam[2]);
		whereMap.setValue("SEIRI_NO", whereParam[3]);
		whereMap.setValue("SVC_KEI_NO", whereParam[4]);
		whereMap.setValue("PRC_GRP_CD", whereParam[5]);
		whereMap.setValue("PCRS_CD", whereParam[6]);
		whereMap.setValue("PRC_SVC_CD", whereParam[7]);
		whereMap.setValue("PRC_KMK_CD", whereParam[8]);
		whereMap.setValue("GSAN_SEIKY_YM", whereParam[9]);

		// DBアクセスを実行します
		return db_CH_T_SEIKY_UCWK.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	請求番号				SEIKY_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *			請求年月				SEIKY_YM
	 *		 	整理番号				SEIRI_NO
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	料金グループコード				PRC_GRP_CD
	 *		 	料金コースコード				PCRS_CD
	 *		 	料金サービスコード				PRC_SVC_CD
	 *		 	料金項目コード				PRC_KMK_CD
	 *		 	合算請求年月				GSAN_SEIKY_YM
	 *		 	利用開始年月日				USE_STAYMD
	 *		 	利用終了年月日				USE_ENDYMD
	 *		 	金額				AMNT
	 *		 	料金訂正登録フラグ				PRC_TEISE_ADD_FLG
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_UCWK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_NO", setParam[0]);
		setMap.setValue("SEIKY_KEI_NO", setParam[1]);
		setMap.setValue("SEIKY_YM", setParam[2]);
		setMap.setValue("SEIRI_NO", setParam[3]);
		setMap.setValue("SVC_KEI_NO", setParam[4]);
		setMap.setValue("PRC_GRP_CD", setParam[5]);
		setMap.setValue("PCRS_CD", setParam[6]);
		setMap.setValue("PRC_SVC_CD", setParam[7]);
		setMap.setValue("PRC_KMK_CD", setParam[8]);
		setMap.setValue("GSAN_SEIKY_YM", setParam[9]);
		setMap.setValue("USE_STAYMD", setParam[10]);
		setMap.setValue("USE_ENDYMD", setParam[11]);
		setMap.setValue("AMNT", setParam[12]);
		setMap.setValue("PRC_TEISE_ADD_FLG", setParam[13]);
		setMap.setValue("ADD_DTM", setParam[14]);
		setMap.setValue("ADD_OPEACNT", setParam[15]);
		setMap.setValue("UPD_DTM", setParam[16]);
		setMap.setValue("UPD_OPEACNT", setParam[17]);
		setMap.setValue("DEL_DTM", setParam[18]);
		setMap.setValue("DEL_OPEACNT", setParam[19]);
		setMap.setValue("MK_FLG", setParam[20]);
		setMap.setValue("ADD_UNYO_YMD", setParam[21]);
		setMap.setValue("ADD_TRN_ID", setParam[22]);
		setMap.setValue("UPD_UNYO_YMD", setParam[23]);
		setMap.setValue("UPD_TRN_ID", setParam[24]);
		setMap.setValue("DEL_UNYO_YMD", setParam[25]);
		setMap.setValue("DEL_TRN_ID", setParam[26]);
		setMap.setValue("SVC_DTL_SKBT_NO", setParam[27]);
		setMap.setValue("SEIKY_UCWK_NO", setParam[28]);
	
		// DBアクセスを実行します
		db_CH_T_SEIKY_UCWK.insertByPrimaryKeys(setMap);
	}
	/**
	 * SQLKEY(CH_SELECT_031)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	債権年月
	 *		 	債権ステータス
	 *		 	債権ステータス
	 *		 	料金グループコード
	 *		 	料金コースコード
	 *		 	料金サービスコード
	 *		 	料金項目コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_CH_SELECT_031(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());

		// DBアクセスを実行します
		db_CH_T_SAIKEN.selectBySqlDefine(paramList, CH_T_SAIKEN_CH_SELECT_031);
	}

	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 充当スキーマ検索処理を呼び出し、充当番号を取得します。
	 * 
	 * @param inMap 入力電文
	 * @return String 充当番号（存在しない場合：null）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String getJutoNo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getJutoNo]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(inMap.getString(JBSbatCHIFM093.NYUKIN_NO));				// 入金番号
		paramList.setValue(inMap.getString(JBSbatCHIFM093.SAIKEN_NO));				// 債権番号
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getJutoNo][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
// OM-2015-0001697 MOD START
//		executeCH_T_JUTO_CH_SELECT_001(paramList.getList().toArray());
		executeCH_T_JUTO_CH_SELECT_004(paramList.getList().toArray());
// OM-2015-0001697 MOD END
		
		// 取得結果判定
		JBSbatCommonDBInterface dbMap = db_CH_T_JUTO.selectNext();
		if (dbMap == null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getJutoNo]");
			return null;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getJutoNo][getJutoNo=" + dbMap.getString(JBSbatCH_T_JUTO.JUTO_NO) + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getJutoNo]");
		return dbMap.getString(JBSbatCH_T_JUTO.JUTO_NO);
	}
	
	/**
	 * 充当スキーマのPK更新します。
	 * 
	 * @param jutoNo 充当番号
	 * @param inMap 入力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updJutoInfo(String jutoNo, JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updJutoInfo]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		paramList.setValue(super.opeDate);															// 充当年月日
		// 金額
		// FREE．NKIN_STAT ＝ "0"（債権充当） の場合
		if(JACStrConst.NKIN_STAT_SKN_JUTO.equals(tmpNKIN_STAT))
		{
			paramList.setValue(inMap.getBigDecimal(JBSbatCHIFM093.AMNT));
		}
		// FREE．NKIN_STAT ≠ "0"（債権充当） の場合
		else
		{
			paramList.setValue(BigDecimal.ZERO);
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updJutoInfo][paramList=" + paramList.getList().toString() + "]");
		
		JBSbatCommonDBInterface whereList = new JBSbatCommonDBInterface();
		
		whereList.setValue(jutoNo); // 充当番号
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updJutoInfo][whereList=" + whereList.getList().toString() + "]");
		// SQL実行
		executeCH_T_JUTO_PKUPDATE(paramList.getList().toArray(), whereList.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJutoInfo]");
	}

	/**
	 * 入金．処理済フラグの更新を行います。
	 * @param inMap 入力電文
	 * @param outputInItem 出力電文
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void nyukinDisp(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][nyukinDisp]");
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// 出力項目設定
		outMap.setString(JBSbatCHIFM097.NYUKIN_TRN_YMD, 			inMap.getString(JBSbatCHIFM093.NYUKIN_TRN_YMD));
		outMap.setString(JBSbatCHIFM097.CVSTORE_CD, 				inMap.getString(JBSbatCHIFM093.CVSTORE_CD));
		outMap.setString(JBSbatCHIFM097.CVSTORE_REAL_SOKHO_TCH_YMD, inMap.getString(JBSbatCHIFM093.CVSTORE_REAL_SOKHO_TCH_YMD));
		outMap.setString(JBSbatCHIFM097.CVSTORE_SOKHO_TCH_YMD, 		inMap.getString(JBSbatCHIFM093.CVSTORE_SOKHO_TCH_YMD));
		
		// 出力項目設定
		setOutKmk(inMap, outMap);
		
		outputInItem.addOutMapList(outMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][nyukinDisp]");
	}
	
	/**
	 * 文字を連結します
	 * @param string　文字
	 * @return strBuf　連結した文字列
	 */
	private String makeStr(String ...string)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeStr]");
		
		StringBuffer strBuf = new StringBuffer();
		for(String str:string){
			strBuf.append(str);
		}
		assert strBuf != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeStr][strBuf = " + strBuf.toString() + "]") : true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeStr]");
		
		return strBuf.toString();
	}

	/**
	 * 料金項目抽出変換スキーマ検索処理を呼び出し、料金項目コードを取得します。
	 * 
	 * @param wkKinoSkbt 業務機能識別コード
	 * @return String 料金項目コード
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void getPrcKmkMishuSkn(String wkKinoSkbt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getPrcKmkList]");
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(super.systemCode);				// システムコード
		paramList.setValue(wkKinoSkbt);						// 業務機能識別コード
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);	// 抽出変換コード
		paramList.setValue(super.opeDate);					// 適用開始年月日
		paramList.setValue(super.opeDate);					// 適用終了年月日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getPrcKmkList][paramList=" + paramList.getList().toString() + "]");
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_015(paramList.getList().toArray());
		
		// 取得結果判定
		JBSbatCommonDBInterface dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		if (dbMap == null)
		{
			// マスタ未存在エラー
			String[] msgParam = new String[]
			{
				JBSbatCH_M_PRC_KMK_CS_CHGE.TABLE_NAME,
				JPCBatCommon.convListToString(paramList.getList()),
			};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		// 取得結果がある限り処理を継続
		while(dbMap != null)
		{
			// キー作成
			String key = dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_GRP_CD)
						+ dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD)
						+ dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD)
						+ dbMap.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD);
			// 取得結果を料金項目抽出変換マップに退避
			mishuSknKmkMap.put(key, "1");
			
			dbMap = db_CH_M_PRC_KMK_CS_CHGE.selectNext();
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getPrcKmkList]");
		return ;
	}
	
	/**
	 * 請求内訳に対し、過去未収債権に対する入金が、
	 * 請求処理日以降・請求依頼日までに発生した場合の未収情報の削除を実施します。
	 * 
	 * @param inMap 入力ファイル
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void seikyUcwkDisp(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][seikyUcwkDisp]");
		
		// 入金対象債権年月
		String nyukinTgSaikenYm  = inMap.getString(JBSbatCHIFM093.NYUKIN_TG_SAIKEN_YM);
		
		// 前月以前の債権に対する充当の場合のみ処理する
		if(nyukinTgSaikenYm.compareTo(seikySyoriYm) >= 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp][当月債権のため処理対象外]");
			return;
		}
		
		// 債権充当として来たデータが以下の条件に当てはまる場合、請求内訳からデータを削除する。
		// １：処理を実行しているタイミングが「請求処理日＜バッチ運用日＜＝処理対象請求方法の依頼日」
		// ２：処理対象の請求内訳データに合算請求データが含まれている
		
		// 処理順
		// １：債権充当データの各項目をキーとして、請求、請求内訳、債権スキーマからデータを取得する。
		// ２：請求方法によって処理対象期間の判定期間を切り替える
		// 　　"1"（窓口）：対象外。処理を終了する
		// 　　"2","3"（口振、郵振）：請求処理日<運用日<=口座振替依頼日
		// 　　"4"（クレジット）：請求処理日<運用日<=クレジット請求依頼日
		// 　　運用日が判定期間外の場合は処理を終了する。
		// ３：合算請求データが含まれているかを確認する。
		// 　　合算請求データがない場合は処理を終了する。
		// ４：債権充当データの金額を元に、合算請求データの金額を再計算し、更新する。
		// 　　内訳未納レコードが計算の結果0円になった場合、そのレコードを削除する。
		// ５：充当を行った未収額（合算請求）のレコードを削除する。
		
		// 処理実行日が判定期間外の場合終了
		// 直近請求処理日 < 処理実行日 <= 判定日時
		
		String seikyKeiNo   = inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO);		// 債権番号
		String saikenNo     = inMap.getString(JBSbatCHIFM093.SAIKEN_NO);		// 債権番号
		BigDecimal fileAmnt = inMap.getBigDecimal(JBSbatCHIFM093.AMNT);			// 金額
		
		// 請求方法コードを取得する
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 検索条件値設定
		paramList.setValue(seikySyoriYm);						// 請求年月
		paramList.setValue(JACStrConst.PAY_WAY_CD_KHR);			// 請求方法コード(口振)
		paramList.setValue(JACStrConst.PAY_WAY_CD_YHR);			// 請求方法コード(郵振)
		paramList.setValue(JACStrConst.PAY_WAY_CD_CRE);			// 請求方法コード(クレジット)
		paramList.setValue(JACStrConst.SIKYSHBTS_TEIGK_SEIKY);	// 請求種別コード(定例請求)
		paramList.setValue(seikySyoriYm);						// 請求年月
		paramList.setValue(saikenNo);							// 債権番号
		paramList.setValue(super.systemCode);					// システムコード
		paramList.setValue(workKinoGsanTgt);					// 業務機能識別（合算請求作成）
		paramList.setValue(workKinoGsanMis);					// 業務機能識別（未収額（合算請求））
		paramList.setValue(JACStrConst.GS_GK_BFN);				// 業務機能識別（合算請求作成（当月請求額合計））
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);		// 抽出変換コード
		paramList.setValue(super.opeDate);						// バッチ運用日
		paramList.setValue(super.opeDate);						// バッチ運用日
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][" + paramList.getList().toString() + "]");
		
		executeCH_T_SEIKY_UCWK_CH_SELECT_018(paramList.getList().toArray());
		JBSbatCommonDBInterface retMap = db_CH_T_SEIKY_UCWK.selectNext();
		
		// 値が取得できなかった場合は終了する
		if (retMap == null)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][該当データなし]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp]");
			
			return;
		}
		
		// 請求方法コード
		String skyWayCd = retMap.getString(JBSbatCH_T_SEIKY.SEIKY_WAY_CD);
		
		// 判定日時
		String judgeYmd = null;
		
		// 請求方法コードが"2"（口振）"3"（郵振）の時
		if (JACStrConst.PAY_WAY_CD_KHR.equals(skyWayCd)
			|| JACStrConst.PAY_WAY_CD_YHR.equals(skyWayCd))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][請求方法コード=2 or 3：口振、郵振][judgeYmd=" + kozaSeikyYmd +"]");
			
			// 判定日時に口振依頼日を設定
			judgeYmd = kozaSeikyYmd;
		}
		// 請求方法コードが"4"（クレジット）の時
		else if (JACStrConst.PAY_WAY_CD_CRE.equals(skyWayCd))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][請求方法コード=4：クレジット][judgeYmd=" + creSeikyYmd + "]");
			
			// 判定日時にクレジット依頼日を設定
			judgeYmd = creSeikyYmd;
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][対象外][請求方法コード=1：窓口]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp]");
			
			return;
		}
		
		// 処理実行日が判定期間外の場合終了
		// 直近請求処理日 < 処理実行日 <= 判定日時
		if (seikyShoriYmd.compareTo(super.opeDate) >= 0 || super.opeDate.compareTo(judgeYmd) > 0)
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][対象外][判定期間外][seikyShoriYmd=" + seikyShoriYmd + ", opeDate=" + super.opeDate + ", judgeYmd=" + judgeYmd +"]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp]");
			
			return;
		}
		
		// 請求番号
		String seikyNo  = retMap.getString(JBSbatCH_T_SEIKY_UCWK.SEIKY_NO);
		
		// 減算前登録フラグ
		genzanInsFlg = true;
		// 減算前登録情報リスト
		ArrayList<JBSbatCommonDBInterface> bfGenList = new ArrayList<JBSbatCommonDBInterface>();;
		
		// 取得した請求内訳レコードをループ
		while (retMap != null)
		{
			// 整理番号
			String seiriNo		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.SEIRI_NO);
			// サービス契約番号
			String svcKeiNo		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.SVC_KEI_NO);
			// 料金グループコード
			String prcGrpCd		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_GRP_CD);
			// 料金コースコード
			String pcrsCd		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.PCRS_CD);
			// 料金サービスコード
			String prcSvcCd		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_SVC_CD);
			// 料金項目コード
			String prcKmkCd		 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_KMK_CD);
			// 合算請求年月
			String gsanSeikyYm	 = retMap.getString(JBSbatCH_T_SEIKY_UCWK.GSAN_SEIKY_YM);
			
			// 判定用料金項目(料金項目を結合して作成)
			String tmpKmkCd = prcGrpCd.concat(pcrsCd).concat(prcSvcCd).concat(prcKmkCd);
			retMap.setValue(JDG_PRC_KMK, tmpKmkCd);
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][判定用料金項目=" + tmpKmkCd +"]");
			
			// 減算前レコードが既に存在する場合
			if(prcKmkBfGenList.contains(tmpKmkCd))
			{
				// 減算前登録グラグをfalseにする
				genzanInsFlg = false;
				retMap = db_CH_T_SEIKY_UCWK.selectNext();
				continue;
			}
			
			BigDecimal dbAmnt = retMap.getBigDecimal(JBSbatCH_T_SEIKY_UCWK.AMNT);
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][料金項目コード=" + prcKmkCd +"][金額=" + dbAmnt.intValue() + "][充当金額=" + fileAmnt.intValue() + "]");
			
			BigDecimal updAmnt = dbAmnt.subtract(fileAmnt);
			
			// 請求額合計の場合
			if(tmpKmkCd.equals(prcKmkSeikyGk))
			{
				// 減算前登録情報作成
				bfGenList.add(retMap);
				// 更新
				updSeikyUcwk(seikyNo, seikyKeiNo, seiriNo, svcKeiNo, prcGrpCd, pcrsCd, prcSvcCd, prcKmkCd, gsanSeikyYm, updAmnt);
			}
			// 請求額合計以外の場合
			else
			{
				// 未収金額　かつ　合算請求年月　≠　債権年月　の場合
				if(tmpKmkCd.equals(prcKmkGsanMishu) && !nyukinTgSaikenYm.equals(gsanSeikyYm))
				{
					retMap = db_CH_T_SEIKY_UCWK.selectNext();
					continue;
				}
				
				// 金額＝0円の場合削除
				if (updAmnt.intValue() == 0)
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][金額が0円になったため、レコード削除を実行]");
					
					// 減算前登録情報作成
					bfGenList.add(retMap);
					// 削除
					delSeikyUcwk(seikyNo, seikyKeiNo, seiriNo, svcKeiNo, prcGrpCd, pcrsCd, prcSvcCd, prcKmkCd, gsanSeikyYm);
				}
				// 0円以外の場合は更新を行う
				else
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][レコード更新]");
					
					// 減算前登録情報作成
					bfGenList.add(retMap);
					// 更新
					updSeikyUcwk(seikyNo, seikyKeiNo, seiriNo, svcKeiNo, prcGrpCd, pcrsCd, prcSvcCd, prcKmkCd, gsanSeikyYm, updAmnt);
				}
			}
			
			retMap = db_CH_T_SEIKY_UCWK.selectNext();
		}
		
			// 減額前登録
		insSeikyUcwk(bfGenList);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp]");
	}
	
	/**
	 * 請求内訳の削除を行います。
	 * 
	 * @param seikyNo 請求番号
	 * @param seikykeiNo 請求契約番号
	 * @param seiriNo 整理番号
	 * @param svcKeiNo サービス契約番号
	 * @param prcGrpCd 料金グループコード
	 * @param pcrsCd 料金コースコード
	 * @param prcSvcCd 料金サービスコード
	 * @param prcKmkCd 料金項目コード
	 * @param gsanSeikyYm 合算請求年月
	 * @throws Exception
	 */
	private void delSeikyUcwk(String seikyNo, String seikyKeiNo, String seiriNo, String svcKeiNo, String prcGrpCd, String pcrsCd, String prcSvcCd, String prcKmkCd, String gsanSeikyYm) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][delSeieyUcwk]");
		
		// パラメータセット
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(seikyNo);			// 請求番号
		paramList.setValue(seikyKeiNo);			// 請求番号
		paramList.setValue(seikySyoriYm);		// 請求年月
		paramList.setValue(seiriNo);			// 請求番号
		paramList.setValue(svcKeiNo);			// 請求番号
		paramList.setValue(prcGrpCd);			// 料金グループコード
		paramList.setValue(pcrsCd);				// 料金コースコード
		paramList.setValue(prcSvcCd);			// 料金サービスコード
		paramList.setValue(prcKmkCd);			// 料金項目コード
		paramList.setValue(gsanSeikyYm);		// 合算請求年月
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][delSeieyUcwk][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SEIKY_UCWK_PKDELETE(paramList.getList().toArray());
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][delSeieyUcwk]");
	}

	/**
	 * 請求内訳の更新を行います。
	 * 
	 * @param seikyNo 請求番号
	 * @param seikykeiNo 請求契約番号
	 * @param seiriNo 整理番号
	 * @param svcKeiNo サービス契約番号
	 * @param prcGrpCd 料金グループコード
	 * @param pcrsCd 料金コースコード
	 * @param prcSvcCd 料金サービスコード
	 * @param prcKmkCd 料金項目コード
	 * @param gsanSeikyYm 合算請求年月
	 * @param amnt 金額
	 * @throws Exception
	 */
	private void updSeikyUcwk(String seikyNo, String seikyKeiNo, String seiriNo, String svcKeiNo, String prcGrpCd, String pcrsCd, String prcSvcCd, String prcKmkCd, String gsanSeikyYm, BigDecimal amnt) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updSeieyUcwk]");
		
		// パラメータセット
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(amnt);				// 金額
		paramList.setValue(seikyNo);			// 請求番号
		paramList.setValue(seikyKeiNo);			// 請求契約番号
		paramList.setValue(seikySyoriYm);		// 請求年月
		paramList.setValue(seiriNo);			// 整理番号
		paramList.setValue(svcKeiNo);			// サービス契約番号
		paramList.setValue(prcGrpCd);			// 料金グループコード
		paramList.setValue(pcrsCd);				// 料金コースコード
		paramList.setValue(prcSvcCd);			// 料金サービスコード
		paramList.setValue(prcKmkCd);			// 料金項目コード
		paramList.setValue(gsanSeikyYm);		// 合算請求年月
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updSeieyUcwk][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SEIKY_UCWK_CH_UPDATE_001(paramList.getList().toArray());
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updSeieyUcwk]");
	}

	/**
	 * 請求内訳の登録を行います。
	 * 
	 * @param bfGenList 
	 * @throws Exception
	 */
	private void insSeikyUcwk(ArrayList<JBSbatCommonDBInterface> bfGenList) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insSeikyUcwk]");
		
		for(JBSbatCommonDBInterface dbMap:bfGenList)
		{
			String prcKmk = dbMap.getString(JDG_PRC_KMK);

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insSeikyUcwk][setParam=" + dbMap.getMap().toString() + "]");
			// 減算前登録フラグ=trueの場合
			if(!genzanInsFlg && !prcKmkGsanMishu.equals(prcKmk))
			{
				continue;
			}
			
			// パラメータセット
			JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
			// 請求番号
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.SEIKY_NO));
			// 請求契約番号
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.SEIKY_KEI_NO));
			// 請求年月
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.SEIKY_YM));
			// 整理番号
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.SEIRI_NO));
			// サービス契約番号
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.SVC_KEI_NO));
			// 料金グループコード
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.PRC_GRP_CD));
			// 料金コースコード
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.PCRS_CD));
			// 料金サービスコード
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.PRC_SVC_CD));
			// 料金項目コード
			setParam.setValue(dbMap.getString(JBSbatCH_T_SEIKY_UCWK.PRC_KMK_CD).substring(0, 9).concat("40"));
			// 合算請求年月
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.GSAN_SEIKY_YM));
			// 利用開始年月日
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.USE_STAYMD));
			// 利用終了年月日
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.USE_ENDYMD));
			// 金額
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.AMNT));
			// 料金訂正登録フラグ
			setParam.setValue(dbMap.getValue(JBSbatCH_T_SEIKY_UCWK.PRC_TEISE_ADD_FLG));
			// 登録年月日時分秒
			setParam.setValue(null);
			// 登録オペレータアカウント
			setParam.setValue(null);
			// 更新年月日時分秒
			setParam.setValue(null);
			// 更新オペレータアカウント
			setParam.setValue(null);
			// 削除年月日時分秒
			setParam.setValue(null);
			// 削除オペレータアカウント
			setParam.setValue(null);
			// 無効フラグ
			setParam.setValue(null);
			// 登録運用年月日
			setParam.setValue(null);
			// 登録処理ID
			setParam.setValue(null);
			// 更新運用年月日
			setParam.setValue(null);
			// 更新処理ID
			setParam.setValue(null);
			// 削除運用年月日
			setParam.setValue(null);
			// 削除処理ID
			setParam.setValue(null);
			// サービス詳細識別番号
			setParam.setValue(null);
			// 請求内訳番号
			setParam.setValue("1");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insSeikyUcwk][setParam=" + setParam.getList().toString() + "]");
			
			// SQL実行
			executeCH_T_SEIKY_UCWK_PKINSERT(setParam.getList().toArray());
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insSeikyUcwk]");
	}
	
	private void selectSaikenStat(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectSaikenStat]");
		
		String seikyKeiNo = inMap.getString(JBSbatCHIFM093.SEIKY_KEI_NO);
		saikenStatMap = new HashMap<String, String>();
		
		if(saikenStatMapAll.containsKey(seikyKeiNo))
		{
			saikenStatMap = saikenStatMapAll.get(seikyKeiNo);
		}
		else
		{
			JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
			
			paramList.setValue(seikyKeiNo);		// 請求契約番号 
			paramList.setValue(JACStrConst.SAIKEN_STAT_FIX_SEIKY);		// 未収
			paramList.setValue(JACStrConst.SAIKEN_STAT_REAL_KAKNO);		// リアル 
			paramList.setValue(JACStrConst.SAIKEN_STAT_KARI_KAKNO);		// 仮 
			paramList.setValue(JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO);	// 一部
			paramList.setValue(JACStrConst.SAIKEN_STAT_KASHID_ADD);		// 貸倒 
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][" + paramList.getList().toString() + "]");
			
			executeCH_T_SAIKEN_CH_SELECT_031(paramList.getList().toArray());
			JBSbatCommonDBInterface retMap = db_CH_T_SAIKEN.selectNext();
			
			// 値が取得できなかった場合は終了する
			if (retMap == null)
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][seikyUcwkDisp][該当データなし]");
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][seikyUcwkDisp]");
				
				return;
			}
			
			// 取得した請求内訳レコードをループ
			while (retMap != null)
			{
				saikenStatMap.put(retMap.getString(JBSbatCH_T_SAIKEN.SAIKEN_YM), retMap.getString(JBSbatCH_T_SAIKEN.SAIKEN_STAT));
				
				retMap = db_CH_T_SAIKEN.selectNext();
			}
			saikenStatMapAll.put(seikyKeiNo, saikenStatMap);
		}
		
	}
}