/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHKariNyukinClPrc
*	ソースファイル名	：JBSbatCHKariNyukinClPrc.java
*	作成者				：富士通　
*	作成日				：2011年07月26日
*＜機能概要＞
*　仮入金取消処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/07/26   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM008;
import eo.business.util.table.JBSbatCH_M_PRC_KMK_CS_CHGE;
import eo.business.util.table.JBSbatCH_T_JUTO;
import eo.business.util.table.JBSbatCH_T_NYUKIN;
import eo.business.util.table.JBSbatCH_T_SAIKEN;
import eo.business.util.table.JBSbatCH_T_SAIKEN_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.common.util.JPCUtilCommon;
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 JBSbatCHKariNyukinClPrc extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(料金項目抽出変換)*/
	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_NYUKIN = "CH_T_NYUKIN";

	/** テーブル(充当)*/
	private static final String D_TBL_NAME_CH_T_JUTO = "CH_T_JUTO";

	/** テーブル(債権内訳)*/
	private static final String D_TBL_NAME_CH_T_SAIKEN_UCWK = "CH_T_SAIKEN_UCWK";

	/** テーブル(債権)*/
	private static final String D_TBL_NAME_CH_T_SAIKEN = "CH_T_SAIKEN";

	/** テーブル(督促)*/
	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";

	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_M_PRC_KMK_CS_CHGE_CH_SELECT_004 = "CH_SELECT_004";

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_T_JUTO_CH_SELECT_002 = "CH_SELECT_002";

	/** SQL定義キー(CH_SELECT_004)*/
	private static final String CH_T_TOKUSOKU_CH_SELECT_004 = "CH_SELECT_004";

	/** SQL定義キー(CH_SELECT_002)*/
	private static final String CH_T_TOKUSOKU_IDO_CH_SELECT_002 = "CH_SELECT_002";

	/** テーブルアクセスクラス(料金項目抽出変換)*/
	private JBSbatSQLAccess db_CH_M_PRC_KMK_CS_CHGE = null;

	/** テーブルアクセスクラス(入金)*/
	private JBSbatSQLAccess db_CH_T_NYUKIN = null;

	/** テーブルアクセスクラス(充当)*/
	private JBSbatSQLAccess db_CH_T_JUTO = null;

	/** テーブルアクセスクラス(債権内訳)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN_UCWK = null;

	/** テーブルアクセスクラス(債権)*/
	private JBSbatSQLAccess db_CH_T_SAIKEN = null;

	/** テーブルアクセスクラス(督促)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU = null;

	/** テーブルアクセスクラス(督促異動)*/
	private JBSbatSQLAccess db_CH_T_TOKUSOKU_IDO = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 督促異動番号桁数 */
	private static final int TOKUSOKU_IDO_NO_LENGTH = 12;
	
	/** 督促異動番号初期値 */
	private static final String TOKUSOKU_IDO_NO_INIT = "1";
	
	/** 充当・債権関連更新用リスト（充当番号、債権番号、充当額）*/
	private List<Map<String, Object>> jutoSaikenInfoList = null;
	
	/** 督促異動作成用督促情報（督促番号、督促ステータス、督促金額、支払約束受付日、支払約束日） */
	private Map<String, Object> tokusokuInfoMap = null;
	
	/** 料金項目コードマップ（充当額＿合計） */
	private Map<String, String> prcKmkCdJutoMap = null;
	
	/** 料金項目コードマップ（リアル速報充当額＿合計） */
	private Map<String, String> prcKmkCdRealJutoMap = null;;
	
	/** 料金項目コードマップ（速報充当額＿合計） */
	private Map<String, String> prcKmkCdSokJutoMap = null;
	
	/** 充当額マップ */
	private Map<String, BigDecimal> jutoAmntMap = null;
	
	
	// 更新件数
	/** 入金更新件数 */
	private int updCntNyukin = 0;
	
	/** 充当更新件数 */
	private int updCntJuto = 0;
	
	/** 債権更新件数 */
	private int updCntSaiken = 0;
	
	/** 督促更新件数 */
	private int updCntTokusoku = 0;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_PRC_KMK_CS_CHGE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_KMK_CS_CHGE);
		db_CH_T_NYUKIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_NYUKIN);
		db_CH_T_JUTO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_JUTO);
		db_CH_T_SAIKEN_UCWK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN_UCWK);
		db_CH_T_SAIKEN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SAIKEN);
		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);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][opeDate=" + super.opeDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][freeItem=" + super.freeItem + "]");
		
		JACbatParamUtil paramUtil = new JACbatParamUtil(super.commonItem);
		
		// 業務機能識別コード取得
		// 料金項目コード（充当額＿合計）
		String workKinoSkbtJuto = paramUtil.getSystemParameter(JACStrConst.SYSPARA_WORK_KINO_SKBT, JACStrConst.SYSID_JUTO_GOKEI);
		// 料金項目コード（リアル速報充当額＿合計）
		String workKinoSkbtRealJuto = paramUtil.getSystemParameter(JACStrConst.SYSPARA_WORK_KINO_SKBT, JACStrConst.SYSID_REAL_SOKHO_JUTO_GK);
		// 料金項目コード（速報充当額＿合計）
		String workKinoSkbtSokJuto = paramUtil.getSystemParameter(JACStrConst.SYSPARA_WORK_KINO_SKBT, JACStrConst.SYSID_SOKHO_JUTO_GK);
		
		// 料金項目コード取得
		// 充当額＿合計
		prcKmkCdJutoMap = makePrcCdMap(workKinoSkbtJuto);
		// リアル速報充当額＿合計
		prcKmkCdRealJutoMap = makePrcCdMap(workKinoSkbtRealJuto);
		// 速報充当額＿合計
		prcKmkCdSokJutoMap = makePrcCdMap(workKinoSkbtSokJuto);
		paramUtil.close();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 指定した業務機能識別コードで取得した料金コースコード、料金サービスコード、料金項目コードを退避マップに格納します。
	 * 
	 * @param workKinoSkbtCd 
	 * @throws Exception 
	 */
	private Map<String, String> makePrcCdMap(String workKinoSkbtCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeJutoPrcCdMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeJutoPrcCdMap][workKinoSkbtCd=" + workKinoSkbtCd + "]");
		
		Map<String, String> prcKmkCdMap = new HashMap<String, String>();
		
		JBSbatCommonDBInterface prcKmkCdKariJuto = selectPrcKmkCdChsht(workKinoSkbtCd);
		
		// 料金コースコード
		prcKmkCdMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD, prcKmkCdKariJuto.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD));
		// 料金サービスコード
		prcKmkCdMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD, prcKmkCdKariJuto.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD));
		// 料金項目コード
		prcKmkCdMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD, prcKmkCdKariJuto.getString(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeJutoPrcCdMap][prcKmkCdMap=" + prcKmkCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeJutoPrcCdMap]");
		
		return prcKmkCdMap;
	}

	/**
	 * 料金項目コードを返します。
	 * 
	 * @param workKinoSkbtCd 業務機能識別コード
	 * @return prcKmkCsChgeMap 料金項目コード取得用MAP
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectPrcKmkCdChsht(String workKinoSkbtCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectPrcKmkCdChsht]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectPrcKmkCdChsht][workKinoSkbtCd=" + workKinoSkbtCd + "]");
		
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 料金項目抽出変換．システムコード
		paramList.setValue(super.systemCode);
		// 料金項目抽出変換．業務機能識別コード
		paramList.setValue(workKinoSkbtCd);
		// 料金項目抽出変換．抽出変換コード
		paramList.setValue(JACStrConst.CHSHT_CHG_CD_CST);
		// 料金項目抽出変換．適用開始年月日
		paramList.setValue(super.opeDate);
		// 料金項目抽出変換．適用終了年月日
		paramList.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectPrcKmkCdChsht][paramList=" + paramList.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_PRC_KMK_CS_CHGE_CH_SELECT_004(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,
				paramList.getList().toString()
			};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectPrcKmkCdChsht][prcKmkCsChgeMap=" + prcKmkCsChgeMap.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectPrcKmkCdChsht]");
		
		return prcKmkCsChgeMap;
	}

	/**
	 * 主処理
	 * @param inMap　仮入金取消データ
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap = " + inMap.getMap().toString() + "]");
		
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// エラーレコードの場合は処理を終了
		if (JACStrConst.ERRFLG_ERROR.equals(inMap.getString(JBSbatCHIFM008.ERR_FLG)))
		{
			return outputItem;
		}
		
		// 入金更新
		updateNyukin(inMap);
		
		jutoSaikenInfoList = new ArrayList<Map<String, Object>>();
		// 更新対象充当・債権関連情報抽出
		selectJutoInfo(inMap.getString(JBSbatCHIFM008.NYUKIN_NO), prcKmkCdRealJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD), 
				prcKmkCdRealJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD), prcKmkCdRealJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));
		
		selectJutoInfo(inMap.getString(JBSbatCHIFM008.NYUKIN_NO), prcKmkCdSokJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD), 
				prcKmkCdSokJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD), prcKmkCdSokJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));
		
		selectJutoAmnt(inMap.getString(JBSbatCHIFM008.NYUKIN_NO), prcKmkCdJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD), 
				prcKmkCdJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD), prcKmkCdJutoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD));
		
		String saikenNo = null;
		String syunoYmd = inMap.getString(JBSbatCHIFM008.SYUNO_DTM);
		
		for (int i = 0; i < jutoSaikenInfoList.size(); i++)
		{
			Map<String, Object> jutoSaikeninfoMap = jutoSaikenInfoList.get(i);
			
			saikenNo = jutoSaikeninfoMap.get(JBSbatCH_T_SAIKEN.SAIKEN_NO).toString();
			
			// 充当更新
			updateJuto(syunoYmd, jutoSaikeninfoMap.get(JBSbatCH_T_JUTO.JUTO_NO).toString());
			
			// 債権内訳削除
			deleteSaikenUchiwake(saikenNo, jutoSaikeninfoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD).toString(), 
					jutoSaikeninfoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD).toString(), jutoSaikeninfoMap.get(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD).toString());
			
			// 債権更新
			if (!jutoAmntMap.containsKey(saikenNo) || BigDecimal.ZERO.equals(jutoAmntMap.get(saikenNo)))
			{
				// 請求確定に更新
				updateSaiken(saikenNo, JACStrConst.SAIKEN_STAT_FIX_SEIKY);
			}
			else
			{
				// 一部収納に更新
				updateSaiken(saikenNo, JACStrConst.SAIKEN_STAT_ICHIBU_KAKNO);
			}
		}
		
		// 督促戻し対象以外の場合は処理を終了
		if (!JACStrConst.TOKUSOKU_RTRN_FLG_TAISHO.equals(inMap.getString(JBSbatCHIFM008.TOKUSOKU_RTRN_FLG)))
		{
			return outputItem;
		}
		
		// 督促異動作成用督促情報取得処理
		selectTokuskInfo(inMap.getString(JBSbatCHIFM008.TOKUSOKU_NO));
		
		String tokusokuNo = inMap.getString(JBSbatCHIFM008.TOKUSOKU_NO);
		String aftTokusokuStat = inMap.getString(JBSbatCHIFM008.ATO_TOKUSOKU_STAT);
		BigDecimal aftTokusokuAmnt = inMap.getBigDecimal(JBSbatCHIFM008.ATO_TOKUSOKU_AMNT);
		
		// 督促更新
		if (JACStrConst.USE_STP_TRGT_FLG_STP_TRGT.equals(inMap.getString(JBSbatCHIFM008.RIYO_STP_TRGT_FLG)))
		{
			// 利用停止対象
			updateTokuskUseStop(aftTokusokuStat, aftTokusokuAmnt, tokusokuNo);
		}
		else
		{
			// 非対象
			updateTokusk(aftTokusokuStat, aftTokusokuAmnt, tokusokuNo);
		}
		
		// 督促異動登録
		insertTokuskIdo(tokusokuNo, calculateTokusokuIdoNo(tokusokuNo));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 督促異動番号を求めます。
	 * 
	 * @param tokusokuNo 督促番号
	 * @return 督促異動番号
	 * @throws Exception 
	 */
	private String calculateTokusokuIdoNo(String tokusokuNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][calculateTokusokuIdoNo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][calculateTokusokuIdoNo][tokusokuNo = " + tokusokuNo + "]");
		
		String tokusokuIdoNo = TOKUSOKU_IDO_NO_INIT;
		
		JBSbatCommonDBInterface tokusokuIdoInfo = selectTokusokuIdo(tokusokuNo);
		
		if (tokusokuIdoInfo != null)
		{
			tokusokuIdoNo = String.valueOf((Long.parseLong(tokusokuIdoInfo.getString(JBSbatCH_T_TOKUSOKU_IDO.TOKUSOKU_IDO_NO)) + 1));
			tokusokuIdoNo = JPCUtilCommon.fillZero(tokusokuIdoNo, TOKUSOKU_IDO_NO_LENGTH, false);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][calculateTokusokuIdoNo][tokusokuIdoNo = " + tokusokuIdoNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][calculateTokusokuIdoNo]");
		
		return tokusokuIdoNo;
	}

	/**
	 * 督促異動情報を取得します。
	 * 
	 * @param tokusokuNo 督促異動番号
	 * @return 督促異動情報
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface selectTokusokuIdo(String tokusokuNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectTokusokuIdo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectTokusokuIdo][tokusokuNo = " + tokusokuNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 督促異動.督促番号
		whereParam.setValue(tokusokuNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokusokuIdo][whereParam = " + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_TOKUSOKU_IDO_CH_SELECT_002(whereParam.getList().toArray());
		
		JBSbatCommonDBInterface tokusokuIdoInfo = db_CH_T_TOKUSOKU_IDO.selectNext();
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectTokusokuIdo][tokusokuIdoInfo = " + tokusokuIdoInfo.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectTokusokuIdo]");
		
		return tokusokuIdoInfo;
	}

	/**
	 * 督促を更新します。（利用停止対象の場合）
	 * 
	 * @param aftTokusokuStat 更新後督促ステータス
	 * @param aftTokusokuAmnt 更新後督促金額
	 * @throws Exception 
	 */
	private void updateTokuskUseStop(String aftTokusokuStat, BigDecimal aftTokusokuAmnt, String tokusokuNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokuskUseStop]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokuskUseStop][aftTokusokuStat = " + aftTokusokuStat + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokuskUseStop][aftTokusokuAmnt = " + aftTokusokuAmnt.toPlainString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokuskUseStop][tokusokuNo = " + tokusokuNo + "]");
		
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 督促.督促ステータス
		setParam.setValue(aftTokusokuStat);
		// 督促.督促金額
		setParam.setValue(aftTokusokuAmnt);
		// 督促.利用停止依頼年月日
		setParam.setValue(super.opeDate);
		// 督促.利用停止解除依頼年月日
		setParam.setValue(null);
		// 督促.督促異動イベントコード
		setParam.setValue(JACStrConst.TKSKIDO_EVCD_KARINKIN_CL);
		// 督促.督促異動年月日
		setParam.setValue(super.opeDate);
		
		// 督促.督促番号
		whereParam.setValue(tokusokuNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateTokuskUseStop][setParam = " + setParam.getList().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateTokuskUseStop][whereParam = " + whereParam.getList().toString() + "]");
		
		// 更新実行
		executeCH_T_TOKUSOKU_PKUPDATE01(setParam.getList().toArray(), whereParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateTokuskUseStop]");
	}

	/**
	 * 債権内訳を削除します。
	 * 
	 * @param saikenNo 債権番号
	 * @throws Exception 
	 */
	private void deleteSaikenUchiwake(String saikenNo, String pcrs, String prcSvcCd, String prcKmkCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][deleteSaikenUchiwake]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][deleteSaikenUchiwake][saikenNo = " + saikenNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 債権内訳.債権番号
		whereParam.setValue(saikenNo);
		// 債権内訳.料金コースコード
		whereParam.setValue(pcrs);
		// 債権内訳.料金サービスコード
		whereParam.setValue(prcSvcCd);
		// 債権内訳.料金項目コード
		whereParam.setValue(prcKmkCd);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][deleteSaikenUchiwake][whereParam = " + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_SAIKEN_UCWK_PKDELETE(whereParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][deleteSaikenUchiwake]");
	}

	/**
	 * 充当情報を取得します。
	 * 
	 * @param nyukinNo 入金番号
	 * @throws Exception 
	 */
	private void selectJutoInfo(String nyukinNo, String pcrsCd, String prcSvcCd, String prcKmkCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectJutoInfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectJutoInfo][nyukinNo = " + nyukinNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 充当.入金番号
		whereParam.setValue(nyukinNo);
		// 充当.料金コースコード
		whereParam.setValue(pcrsCd);
		// 充当.料金サービスコード
		whereParam.setValue(prcSvcCd);
		// 充当.料金項目コード
		whereParam.setValue(prcKmkCd);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectJutoInfo][whereParam = " + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_JUTO_CH_SELECT_002(whereParam.getList().toArray());
		JBSbatCommonDBInterface outputInfo = db_CH_T_JUTO.selectNext();
		
		Map<String, Object> jutoSaikenInfoMap = null;
		
		while (outputInfo != null)
		{
			jutoSaikenInfoMap = new HashMap<String, Object>();
			
			// 料金コースコード
			jutoSaikenInfoMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PCRS_CD, pcrsCd);
			// 料金サービスコード
			jutoSaikenInfoMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_SVC_CD, prcSvcCd);
			// 料金項目コード
			jutoSaikenInfoMap.put(JBSbatCH_M_PRC_KMK_CS_CHGE.PRC_KMK_CD, prcKmkCd);
			// 充当番号
			jutoSaikenInfoMap.put(JBSbatCH_T_JUTO.JUTO_NO, outputInfo.getString(JBSbatCH_T_JUTO.JUTO_NO));
			// 債権番号
			jutoSaikenInfoMap.put(JBSbatCH_T_SAIKEN.SAIKEN_NO, outputInfo.getString(JBSbatCH_T_SAIKEN.SAIKEN_NO));
			// 金額 
			jutoSaikenInfoMap.put(JBSbatCH_T_SAIKEN_UCWK.AMNT, outputInfo.getBigDecimal(JBSbatCH_T_SAIKEN_UCWK.AMNT));
			
			jutoSaikenInfoList.add(jutoSaikenInfoMap);
			
			outputInfo = db_CH_T_JUTO.selectNext();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectJutoInfo]");
	}

	/**
	 * 充当金額を取得します。
	 * 
	 * @param nyukinNo 入金番号
	 * @throws Exception 
	 */
	private void selectJutoAmnt(String nyukinNo, String pcrsCd, String prcSvcCd, String prcKmkCd) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectJutoInfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectJutoInfo][nyukinNo = " + nyukinNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 充当.入金番号
		whereParam.setValue(nyukinNo);
		// 充当.料金コースコード
		whereParam.setValue(pcrsCd);
		// 充当.料金サービスコード
		whereParam.setValue(prcSvcCd);
		// 充当.料金項目コード
		whereParam.setValue(prcKmkCd);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectJutoInfo][whereParam = " + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_T_JUTO_CH_SELECT_002(whereParam.getList().toArray());
		JBSbatCommonDBInterface outputInfo = db_CH_T_JUTO.selectNext();
		
		jutoAmntMap = new HashMap<String, BigDecimal>();
		
		
		while (outputInfo != null)
		{
			jutoAmntMap.put(outputInfo.getString(JBSbatCH_T_JUTO.SAIKEN_NO), outputInfo.getBigDecimal(JBSbatCH_T_SAIKEN_UCWK.AMNT));
			
			outputInfo = db_CH_T_JUTO.selectNext();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectJutoInfo]");
	}
	
	/**
	 * 督促異動情報を取得し、退避リストに格納します。
	 * 
	 * @param tokusokuNo 督促番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void selectTokuskInfo(String tokusokuNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectTokuskInfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectTokuskInfo][tokusokuNo = " + tokusokuNo + "]");
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();

		// 督促異動.督促番号
		whereParam.setValue(tokusokuNo);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectTokuskInfo][whereParam = " + whereParam.getList().toString() + "]");

		// SQL実行
		executeCH_T_TOKUSOKU_CH_SELECT_004(whereParam.getList().toArray());

		JBSbatCommonDBInterface resultMap = new JBSbatCommonDBInterface();
		resultMap = db_CH_T_TOKUSOKU.selectNext();

		tokusokuInfoMap = new HashMap<String, Object>();
		
		if (resultMap != null)
		{
			// 督促番号
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO, resultMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_NO));
			// 督促異動イベントコード
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_EVENT_CD, resultMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_EVENT_CD));
			// 督促異動年月日
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_YMD, resultMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_YMD));
			// 督促ステータス
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT, resultMap.getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));
			// 督促金額
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.TOKUSOKU_AMNT, resultMap.getBigDecimal(JBSbatCH_T_TOKUSOKU.TOKUSOKU_AMNT));
			// 支払約束受付年月日
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_UK_YMD, resultMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_UK_YMD));
			// 支払約束年月日
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_YMD, resultMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_YMD));
			// 支払約束履行判定年月日
			tokusokuInfoMap.put(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_RIKO_JDG_YMD, resultMap.getString(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_RIKO_JDG_YMD));
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectTokuskInfo]");
	}

	/**
	 * 入金スキーマを更新します。
	 * 
	 * @param inMap 仮入金取消データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateNyukin(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateNyukin]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateNyukin][inMap = " + inMap.getMap().toString() + "]");
		
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();

		// 入金.入金ステータス
		setParam.setValue(JACStrConst.NYUKIN_STAT_CL);
		// 入金.コンビニ速報取消通知年月日
		setParam.setValue(inMap.getString(JBSbatCHIFM008.CVSTORE_SOKHO_CL_TCH_YMD));
		// 入金.更新年月日時分秒
		setParam.setValue(null);
		// 入金.更新オペレータアカウント
		setParam.setValue(null);
		// 入金.入金取消年月日
		setParam.setValue(inMap.getString(JBSbatCHIFM008.SYUNO_DTM));
		// 入金.入金取消理由コード
		setParam.setValue(JACStrConst.NKIN_CL_RSN_CD_CVS);

		// 入金.入金番号
		whereParam.setValue(inMap.getString(JBSbatCHIFM008.NYUKIN_NO));

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateNyukin][setParam = " + setParam.getList().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateNyukin][whereParam = " + whereParam.getList().toString() + "]");

		// 更新実行
		executeCH_T_NYUKIN_PKUPDATE(setParam.getList().toArray(), whereParam.getList().toArray());

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateNyukin]");
	}

	/**
	 * 充当スキーマを更新します。
	 * 
	 * @param syunoYmd 収納年月日
	 * @param jutoNo 充当番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateJuto(String syunoYmd, String jutoNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateJuto]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateJuto][syunoYmd = " + syunoYmd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateJuto][jutoNo = " + jutoNo + "]");
		
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 更新値
		// 充当.取消年月日
		setParam.setValue(syunoYmd);
		
		// 条件値
		// 充当.取消年月日
		whereParam.setValue(jutoNo);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateJuto][setParam = " + setParam.getList().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateJuto][whereParam = " + whereParam.getList().toString() + "]");
		
		// 更新実行
		executeCH_T_JUTO_PKUPDATE(setParam.getList().toArray(), whereParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateJuto]");
	}

	/**
	 * 債権スキーマを更新します。
	 * 
	 * @param saikenNo 債権番号
	 * @param updateSaikenSta 更新債権ステータス
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateSaiken(String saikenNo, String updateSaikenSta) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateSaiken]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateSaiken][saikenNo = " + saikenNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateSaiken][updateSaikenSta = " + updateSaikenSta + "]");

		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();

		// 債権.債権ステータス
		setParam.setValue(updateSaikenSta);

		// 債権.債権番号
		whereParam.setValue(saikenNo);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateSaiken][setParam = " + setParam.getList().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateSaiken][whereParam = " + whereParam.getList().toString() + "]");

		// 更新実行
		executeCH_T_SAIKEN_PKUPDATE(setParam.getList().toArray(), whereParam.getList().toArray());

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateSaiken]");
	}

	/**
	 * 督促スキーマを更新します。
	 * 
	 * @param aftTokusokuStat 更新後督促ステータス
	 * @param aftTokusokuAmnt 更新後督促金額
	 * @param tokusokuNo 督促番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateTokusk(String aftTokusokuStat, BigDecimal aftTokusokuAmnt, String tokusokuNo) throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokusk]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokusk][aftTokusokuStat = " + aftTokusokuStat + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokusk][aftTokusokuAmnt = " + aftTokusokuAmnt.toPlainString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateTokusk][tokusokuNo = " + tokusokuNo + "]");
		
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();

		// 督促.督促ステータス
		setParam.setValue(aftTokusokuStat);
		// 督促.督促金額
		setParam.setValue(aftTokusokuAmnt);
		// 督促.督促異動イベントコード
		setParam.setValue(JACStrConst.TKSKIDO_EVCD_KARINKIN_CL);
		// 督促.督促異動年月日
		setParam.setValue(super.opeDate);

		// 督促.督促番号
		whereParam.setValue(tokusokuNo);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateTokusk][setParam = " + setParam.getList().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateTokusk][whereParam = " + whereParam.getList().toString() + "]");

		// 更新実行
		executeCH_T_TOKUSOKU_PKUPDATE02(setParam.getList().toArray(), whereParam.getList().toArray());

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateTokusk]");
	}

	/**
	 * 督促異動スキーマを登録します。
	 * 
	 * @param tokusokuIdoNo 督促異動番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insertTokuskIdo(String tokusokuNo, String tokusokuIdoNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insertTokuskIdo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insertTokuskIdo][tokusokuNo = " + tokusokuNo + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insertTokuskIdo][tokusokuIdoNo = " + tokusokuIdoNo + "]");
		
		JBSbatCommonDBInterface setParam = new JBSbatCommonDBInterface();
		
		// 督促異動.督促番号
		setParam.setValue(tokusokuNo);
		// 督促異動.督促異動番号
		setParam.setValue(tokusokuIdoNo);
		// 督促異動.督促異動イベントコード
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_EVENT_CD));
		// 督促異動.督促異動年月日
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_IDO_YMD));
		// 督促異動.督促ステータス
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));
		// 督促異動.督促金額
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.TOKUSOKU_AMNT));
		// 督促異動.支払約束受付年月日
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_UK_YMD));
		// 督促異動.支払約束年月日
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_YMD));
		// 督促異動.支払約束履行判定年月日
		setParam.setValue(tokusokuInfoMap.get(JBSbatCH_T_TOKUSOKU.PAY_YAKUSOKU_RIKO_JDG_YMD));
		// 督促異動.登録年月日時分秒
		setParam.setValue(null);
		// 督促異動.登録オペレータアカウント
		setParam.setValue(null);
		// 督促異動.更新年月日時分秒
		setParam.setValue(null);
		// 督促異動.更新オペレータアカウント
		setParam.setValue(null);
		// 督促異動.削除年月日時分秒
		setParam.setValue(null);
		// 督促異動.削除オペレータアカウント
		setParam.setValue(null);
		// 督促異動.無効フラグ
		setParam.setValue(null);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insertTokuskIdo][setParam = " + setParam.getList().toString() + "]");
		
		// 更新実行
		executeCH_T_TOKUSOKU_IDO_PKINSERT(setParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insertTokuskIdo]");
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_PRC_KMK_CS_CHGE.close();
		db_CH_T_NYUKIN.close();
		db_CH_T_JUTO.close();
		db_CH_T_SAIKEN_UCWK.close();
		db_CH_T_SAIKEN.close();
		db_CH_T_TOKUSOKU.close();
		db_CH_T_TOKUSOKU_IDO.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		// 入金更新件数ログ出力
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1190AI, new String[] {JBSbatCH_T_NYUKIN.TABLE_NAME, String.valueOf(updCntNyukin)});
		
		// 充当更新件数ログ出力
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1190AI, new String[] {JBSbatCH_T_JUTO.TABLE_NAME, String.valueOf(updCntJuto)});
		
		// 債権更新件数ログ出力
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1190AI, new String[] {JBSbatCH_T_SAIKEN.TABLE_NAME, String.valueOf(updCntSaiken)});
		
		// 督促更新件数ログ出力
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1190AI, new String[] {JBSbatCH_T_TOKUSOKU.TABLE_NAME, String.valueOf(updCntTokusoku)});
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * 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_M_PRC_KMK_CS_CHGE_CH_SELECT_004(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_004);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	入金ステータス				NYUKIN_STAT
	 *		 	コンビニ速報取消通知年月日				CVSTORE_SOKHO_CL_TCH_YMD
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	入金取消年月日				NYUKIN_CL_YMD
	 *		 	入金取消理由コード				NYUKIN_CLRE_CD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	NYUKIN_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_NYUKIN_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("NYUKIN_STAT", setParam[0]);
		setMap.setValue("CVSTORE_SOKHO_CL_TCH_YMD", setParam[1]);
		setMap.setValue("UPD_DTM", setParam[2]);
		setMap.setValue("UPD_OPEACNT", setParam[3]);
		setMap.setValue("NYUKIN_CL_YMD", setParam[4]);
		setMap.setValue("NYUKIN_CLRE_CD", setParam[5]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("NYUKIN_NO", whereParam[0]);

		// DBアクセスを実行します
		updCntNyukin += db_CH_T_NYUKIN.updateByPrimaryKeys(whereMap, 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_JUTO_CH_SELECT_002(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());

		// DBアクセスを実行します
		db_CH_T_JUTO.selectBySqlDefine(paramList, CH_T_JUTO_CH_SELECT_002);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	取消年月日				CL_YMD
	 *		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("CL_YMD", setParam[0]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("JUTO_NO", whereParam[0]);

		// DBアクセスを実行します
		updCntJuto += db_CH_T_JUTO.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(ＰＫ　削除)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SAIKEN_NO
	 *		 	PCRS_CD
	 *		 	PRC_SVC_CD
	 *		 	PRC_KMK_CD
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SAIKEN_UCWK_PKDELETE(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SAIKEN_NO", whereParam[0]);
		whereMap.setValue("PCRS_CD", whereParam[1]);
		whereMap.setValue("PRC_SVC_CD", whereParam[2]);
		whereMap.setValue("PRC_KMK_CD", whereParam[3]);

		// DBアクセスを実行します
		db_CH_T_SAIKEN_UCWK.deleteByPrimaryKeys(whereMap);
	}

	/**
	 * 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アクセスを実行します
		updCntSaiken += db_CH_T_SAIKEN.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * 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_TOKUSOKU_CH_SELECT_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CH_T_TOKUSOKU.selectBySqlDefine(paramList, CH_T_TOKUSOKU_CH_SELECT_004);
	}

	/**
	 * 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
	 *		 	利用停止依頼年月日				USE_STP_REQ_YMD
	 *		 	利用停止解除依頼年月日				USE_STP_RLS_REQ_YMD
	 *		 	督促異動イベントコード				TOKUSOKU_IDO_EVENT_CD
	 *		 	督促異動年月日				TOKUSOKU_IDO_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TOKUSOKU_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_PKUPDATE01(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("TOKUSOKU_STAT", setParam[0]);
		setMap.setValue("TOKUSOKU_AMNT", setParam[1]);
		setMap.setValue("USE_STP_REQ_YMD", setParam[2]);
		setMap.setValue("USE_STP_RLS_REQ_YMD", setParam[3]);
		setMap.setValue("TOKUSOKU_IDO_EVENT_CD", setParam[4]);
		setMap.setValue("TOKUSOKU_IDO_YMD", setParam[5]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("TOKUSOKU_NO", whereParam[0]);

		// DBアクセスを実行します
		updCntTokusoku += db_CH_T_TOKUSOKU.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * 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_IDO_EVENT_CD
	 *		 	督促異動年月日				TOKUSOKU_IDO_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TOKUSOKU_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_TOKUSOKU_PKUPDATE02(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_IDO_EVENT_CD", setParam[2]);
		setMap.setValue("TOKUSOKU_IDO_YMD", setParam[3]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("TOKUSOKU_NO", whereParam[0]);

		// DBアクセスを実行します
		updCntTokusoku += db_CH_T_TOKUSOKU.updateByPrimaryKeys(whereMap, 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_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
	 * </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]);
	
		// DBアクセスを実行します
		db_CH_T_TOKUSOKU_IDO.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
