/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom  					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHAccessSeikyNyukinAdd
*	ソースファイル名	：JBSbatCHAccessSeikyNyukinAdd.java
*	作成者				：富士通　
*	作成日				：2014年03月11日
*＜機能概要＞
*Access請求書入金登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v7.00		2014/03/11	 FJ) 小掠	【OM-2014-0000767】新規作成　配列更新しない版
*	v8.00		2014/03/28	 FJ) 小掠	【OM-2014-0001206】1件毎にシーケンス取得に変更
*	v52.00.00	2020/11/12	 FJ)星野	【ANK-3838-0000】窓口払い手数料の顧客負担方式導入
*********************************************************************/
package eo.business.service;

import java.math.BigDecimal;
import java.util.Arrays;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatCHIFM043;
import eo.business.util.file.JBSbatCHIFM210;
import eo.business.util.table.JBSbatCH_T_NYUKIN;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JPCUtilCommon;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.db.JBSbatSQLAccess;

/**
* 入金登録 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHAccessSeikyNyukinAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(入金)*/
	private static final String D_TBL_NAME_CH_T_NYUKIN = "CH_T_NYUKIN";

	/** SQL定義キー(CH_SELECT_016)*/
	private static final String CH_T_NYUKIN_CH_SELECT_016 = "CH_SELECT_016";

	/** テーブルアクセスクラス(入金)*/
	private JBSbatSQLAccess db_CH_T_NYUKIN = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 配列更新メソッド：第３引数：1(更新) */
	private static final int CH_T_NYUKIN_UPDATE_FUNC  = 1;
	
	/** 入金状態識別コード（リアル） */
	private static final String NYUKIN_STAT_SKBT_REAL = "1";
	
	/** 入金状態識別コード（速報） */
	private static final String NYUKIN_STAT_SKBT_SOKHO = "2";
	
	/** 入金状態識別コード（確報） */
	private static final String NYUKIN_STAT_SKBT_KAKHO = "3";
	
	/** 更新項目インデックス：入金ステータス */
	private static final int UPD_IDX_NYUKIN_STAT = 0;
	
	/** 更新項目インデックス：入金経路コード */
	private static final int UPD_IDX_NYUKIN_ROUTE_CD = 1;
	
	/** 更新項目インデックス：収納機関コード */
	private static final int UPD_IDX_SHUNOKIKAN_CD = 2;
	
	/** 更新項目インデックス：外部組織収納年月日 */
	private static final int UPD_IDX_OUT_ORG_SHUNO_YMD = 3;
	
	/** 更新項目インデックス：入金処理年月日 */
	private static final int UPD_IDX_NYUKIN_TRN_YMD = 4;
	
	/** 更新項目インデックス：入金処理時分秒 */
	private static final int UPD_IDX_NYUKIN_TRN_HMS = 5;
	
	/** 更新項目インデックス：領収年月日 */
	private static final int UPD_IDX_RECEIPT_YMD = 6;
	
	/** 更新項目インデックス：領収時分秒 */
	private static final int UPD_IDX_RECEIPT_HMS = 7;
	
	/** 更新項目インデックス：入金額 */
	private static final int UPD_IDX_NYUKIN_AMNT = 8;
	
	/** 更新項目インデックス：請求番号 */
	private static final int UPD_IDX_SEIKY_NO = 9;
	
	/** 更新項目インデックス：請求契約番号 */
	private static final int UPD_IDX_SEIKY_KEI_NO = 10;
	
	/** 更新項目インデックス：入金登録方法コード */
	private static final int UPD_IDX_NYUKIN_ADD_WAY_CD = 11;
	
	/** 更新項目インデックス：入金処理済フラグ */
	private static final int UPD_IDX_NYUKIN_SYRZM_FLG = 12;
	
	/** 更新項目インデックス：窓口金融機関コード */
	private static final int UPD_IDX_MADOGUCHI_BANK_CD = 13;
	
	/** 更新項目インデックス：窓口金融機関支店コード */
	private static final int UPD_IDX_MADOGUCHI_BANK_SHITEN_CD = 14;
	
	/** 更新項目インデックス：コンビニエンスストアコード */
	private static final int UPD_IDX_CVSTORE_CD = 15;
	
	/** 更新項目インデックス：コンビニ受付店コード */
	private static final int UPD_IDX_CVSTORE_UK_TEN_CD = 16;
	
	/** 更新項目インデックス：EANメーカーコード */
	private static final int UPD_IDX_EAN_MAKER_CD = 17;
	
	/** 更新項目インデックス：コンビニリアル業務コード */
	private static final int UPD_IDX_CVSTORE_REAL_WORK_CD = 18;
	
	/** 更新項目インデックス：コンビニリアル速報通知年月日 */
	private static final int UPD_IDX_CVSTORE_REAL_SOKHO_TCH_YMD = 19;
	
	/** 更新項目インデックス：コンビニリアル速報通知時分秒 */
	private static final int UPD_IDX_CVSTORE_REAL_SOKHO_TCH_HMS = 20;
	
	/** 更新項目インデックス：コンビニリアル速報処理済フラグ */
	private static final int UPD_IDX_CVS_REAL_SOKHO_SYRZM_FLG = 21;
	
	/** 更新項目インデックス：コンビニ速報通知年月日 */
	private static final int UPD_IDX_CVSTORE_SOKHO_TCH_YMD = 22;
	
	/** 更新項目インデックス：コンビニ速報処理済フラグ */
	private static final int UPD_IDX_CVSTORE_SOKHO_SYRZM_FLG = 23;
	
	/** 更新項目インデックス：コンビニ確報通知年月日 */
	private static final int UPD_IDX_CVSTORE_KAKHO_TCH_YMD = 24;
	
	/** 更新項目インデックス：コンビニ支払予定年月日 */
	private static final int UPD_IDX_CVSTORE_PAY_RSV_YMD = 25;
	
	/** 更新項目インデックス：コンビニ速報取消通知年月日 */
	private static final int UPD_IDX_CVSTORE_SOKHO_CL_TCH_YMD = 26;
	
	/** 登録項目インデックス：入金番号 */
	private static final int INS_IDX_NYUKIN_NO = 0;
	
	/** 登録項目インデックス：入金ステータス */
	private static final int INS_IDX_NYUKIN_STAT = 1;
	
	/** 登録項目インデックス：入金経路コード */
	private static final int INS_IDX_NYUKIN_ROUTE_CD = 2;
	
	/** 登録項目インデックス：収納機関コード */
	private static final int INS_IDX_SHUNOKIKAN_CD = 3;
	
	/** 登録項目インデックス：外部組織収納年月日 */
	private static final int INS_IDX_OUT_ORG_SHUNO_YMD = 4;
	
	/** 登録項目インデックス：入金処理年月日 */
	private static final int INS_IDX_NYUKIN_TRN_YMD = 5;
	
	/** 登録項目インデックス：入金処理時分秒 */
	private static final int INS_IDX_NYUKIN_TRN_HMS = 6;
	
	/** 登録項目インデックス：領収年月日 */
	private static final int INS_IDX_RECEIPT_YMD = 7;
	
	/** 登録項目インデックス：領収時分秒 */
	private static final int INS_IDX_RECEIPT_HMS = 8;
	
	/** 登録項目インデックス：入金額 */
	private static final int INS_IDX_NYUKIN_AMNT = 9;
	
	/** 登録項目インデックス：請求番号 */
	private static final int INS_IDX_SEIKY_NO = 12;
	
	/** 登録項目インデックス：請求契約番号 */
	private static final int INS_IDX_SEIKY_KEI_NO = 13;
	
	/** 登録項目インデックス：入金登録方法コード */
	private static final int INS_IDX_NYUKIN_ADD_WAY_CD = 14;
	
	/** 登録項目インデックス：入金処理済フラグ  */
	private static final int INS_IDX_NYUKIN_SYRZM_FLG = 15;
	
	/** 登録項目インデックス：窓口金融機関コード */
	private static final int INS_IDX_MADOGUCHI_BANK_CD = 16;
	
	/** 登録項目インデックス：窓口金融機関支店コード */
	private static final int INS_IDX_MADOGUCHI_BANK_SHITEN_CD = 17;
	
	/** 登録項目インデックス：受取組織コード */
	private static final int INS_IDX_UKETORI_ORG_CD = 25;
	
	/** 登録項目インデックス：コンビニエンスストアコード */
	private static final int INS_IDX_CVSTORE_CD = 27;
	
	/** 登録項目インデックス：コンビニ受付店コード */
	private static final int INS_IDX_CVSTORE_UK_TEN_CD = 28;
	
	/** 登録項目インデックス：EANメーカーコード */
	private static final int INS_IDX_EAN_MAKER_CD = 29;
	
	/** 登録項目インデックス：コンビニリアル業務コード */
	private static final int INS_IDX_CVSTORE_REAL_WORK_CD = 30;
	
	/** 登録項目インデックス：コンビニリアル速報通知年月日 */
	private static final int INS_IDX_CVSTORE_REAL_SOKHO_TCH_YMD = 31;
	
	/** 登録項目インデックス：コンビニリアル速報通知時分秒 */
	private static final int INS_IDX_CVSTORE_REAL_SOKHO_TCH_HMS = 32;
	
	/** 登録項目インデックス：コンビニリアル速報処理済フラグ */
	private static final int INS_IDX_CVS_REAL_SOKHO_SYRZM_FLG = 33;
	
	/** 登録項目インデックス：コンビニ速報通知年月日 */
	private static final int INS_IDX_CVSTORE_SOKHO_TCH_YMD = 34;
	
	/** 登録項目インデックス：コンビニ速報処理済フラグ */
	private static final int INS_IDX_CVSTORE_SOKHO_SYRZM_FLG = 35;
	
	/** 登録項目インデックス：コンビニ確報通知年月日 */
	private static final int INS_IDX_CVSTORE_KAKHO_TCH_YMD = 36;
	
	/** 登録項目インデックス：コンビニ支払予定年月日 */
	private static final int INS_IDX_CVSTORE_PAY_RSV_YMD = 37;
	
	/** 登録項目インデックス：コンビニ速報取消通知年月日 */
	private static final int INS_IDX_CVSTORE_SOKHO_CL_TCH_YMD = 38;
	
	/** 登録項目インデックス：無効フラグ */
	private static final int INS_IDX_MK_FLG = 50;

	/** 更新項目数 */
	private static final int UPD_KMK_NUM = 30;
	
	/** 登録項目数 */
	private static final int INS_KMK_NUM = 51;

	/** 入金スキーマ更新件数 */
	private int updateCnt = 0;
	
	/** free項目 */
	private String[] freeItems = null;
	
	/** 入金番号採番変数 */
	private BigDecimal tmpSeqNyukinNo = null;
	
	/** 入金番号文字長 */
	private static final int SEQ_LEN_NYUKIN = 12;
	
	/** 請求契約存在有無（無） */
	private static final String SEIKY_KEI_UMU_NASI = "0";
	
	/** 退避用請求契約番号 */
	private static String taihiSeikyKeiNo = JACStrConst.KARA_MOJI;

	/**
	 * 初期処理
	 * @param commonItem バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_T_NYUKIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_NYUKIN);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][opeDate=" + super.opeDate + "]");
		
		// free項目を取得
		String freeItem = commonItem.getFreeItem();
		freeItems = freeItem.split(JACStrConst.FREE_DIV);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][freeItem=" + freeItems[0] + "]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @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, "[L][execute][inMap=" + inMap.getMap().toString() + "]");
		
		// 新規登録時に使用する入金番号を取得
		String nyukinNo = null;
		
		JBSbatOutputItem outputInItem = new JBSbatOutputItem();
		String seikyKeiUmu = inMap.getString(JBSbatCHIFM043.SEIKY_KEI_UMU);
		
		//請求契約有無フラグが無しならば
		if(SEIKY_KEI_UMU_NASI.equals(seikyKeiUmu))
		{
			//請求契約番号を退避し
			taihiSeikyKeiNo = inMap.getString(JBSbatCHIFM043.SEIKY_KEI_NO);
			
			//スキーマ登録用にALL空白に設定
			inMap.setString(JBSbatCHIFM043.SEIKY_KEI_NO, JACStrConst.SEIKY_KEI_NO_SP);
		}

		// コンビニは既存レコードの存在をチェック。存在すれば更新
// ANK-3838-00-00対応 20201112 星野 MOD START
//		if (JACStrConst.NYKNKEIRCD_CVSTORE.equals(inMap.getString(JBSbatCHIFM043.NYUKIN_ROUTE_CD)))
		if (
			JACStrConst.NYKNKEIRCD_CVSTORE.equals(inMap.getString(JBSbatCHIFM043.NYUKIN_ROUTE_CD))
			|| JACStrConst.NYKNKEIRCD_CVSTORE_ETC.equals(inMap.getString(JBSbatCHIFM043.NYUKIN_ROUTE_CD))
		)
// ANK-3838-00-00対応 20201112 星野 MOD END
		{
			// 入金スキーマ更新対象抽出
			selectNyukinInfo(inMap);
			
			JBSbatCommonDBInterface selectMap = db_CH_T_NYUKIN.selectNext();
			
			// 更新対象が存在する場合
			while(selectMap != null)
			{
				assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][execute][selectMap=" + selectMap.getMap().toString() + "]") : true;
				
				if(updJudge(selectMap))
				{
					// 入金スキーマ更新
					updateNyukin(inMap, selectMap);
					
					// 入金番号を更新時に使用した値に変更
					nyukinNo = selectMap.getString(JBSbatCH_T_NYUKIN.NYUKIN_NO);
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute] Update nyukinNo=" + nyukinNo );
					
					// 入金情報を出力する
					createOutputFile(outputInItem, nyukinNo, inMap);
					
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
					return outputInItem;
				}
				
				selectMap = db_CH_T_NYUKIN.selectNext();
			}
		}
		
		// 入金番号を取得する
		String nyukinNo_wk = JCCBatCommon.getNextSeq(commonItem, JACStrConst.SEQ_NYUKIN_NO);
		nyukinNo = JPCUtilCommon.fillZero(String.valueOf(nyukinNo_wk), SEQ_LEN_NYUKIN, false);
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute] insert nyukinNo=" + nyukinNo );
		
		// 入金スキーマ登録
		insertNyukin(inMap, nyukinNo);
		
		// 入金情報を出力する
		createOutputFile(outputInItem, nyukinNo, inMap);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputInItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 取得した入金情報を更新するかどうか判定します。
	 * 
	 * @param dbMap 入金取得結果
	 * @return boolean 判定結果（true：更新対象　false：登録対象）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private boolean updJudge(JBSbatCommonDBInterface dbMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updJudge]");
		String nyukinStat = dbMap.getString(JBSbatCH_T_NYUKIN.NYUKIN_STAT);
		
		// リアル速報の場合
		if(NYUKIN_STAT_SKBT_REAL.equals(freeItems[0]))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJudge]");
			return false;
		}
		// 速報の場合
		else if(NYUKIN_STAT_SKBT_SOKHO.equals(freeItems[0]))
		{
			// 入金．入金ステータス　＝　'001'（リアル速報）の場合
			if(JACStrConst.NYUKIN_STAT_REAL_SOKHO.equals(nyukinStat))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJudge]");
				return true;
			}
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJudge]");
			return false;
		}
		// 確報の場合
		else
		{
			// 入金．入金ステータス　＝　'001'（リアル速報）or　'002'（速報）の場合
			if(JACStrConst.NYUKIN_STAT_REAL_SOKHO.equals(nyukinStat) || JACStrConst.NYUKIN_STAT_SOKHO.equals(nyukinStat))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJudge]");
				return true;
			}
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updJudge]");
			return false;
		}
	}
	
	/**
	 * 入金スキーマ更新対象データを取得します。
	 * 
	 * @param inMap 入力電文
	 * @return DB取得値
	 * @throws Exception　業務サービス内で発生した例外全般
	 */
	private void selectNyukinInfo(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectNyukinInfo]");
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// 請求番号
		String seikyNo = inMap.getString(JBSbatCHIFM043.SEIKY_NO);
		
		// 請求番号が未設定の場合
		if(JACStrConst.KARA_MOJI.equals(seikyNo) || null == seikyNo)
		{
			// アスタリスク（半角）を設定する
			seikyNo = JACStrConst.ASTERISK;
		}
		
		// 条件値に求めた請求番号を設定する
		whereParam.setValue(seikyNo);
		
		// 請求契約番号
		whereParam.setValue(inMap.get(JBSbatCHIFM043.SEIKY_KEI_NO));
		// 入金経路コード
		whereParam.setValue(inMap.get(JBSbatCHIFM043.NYUKIN_ROUTE_CD));
		//領収年月日
		whereParam.setValue(inMap.get(JBSbatCHIFM043.RECEIPT_YMD));
		//領収時分秒
		whereParam.setValue(inMap.getString(JBSbatCHIFM043.RECEIPT_HMS).trim());
		//コンビニエンスストアコード
		whereParam.setValue(inMap.get(JBSbatCHIFM043.CVSTORE_CD));

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectNyukinInfo][whereParam=" + whereParam.getList().toString() + "]");
		
		// 検索実行
		executeCH_T_NYUKIN_CH_SELECT_016(whereParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectNyukinInfo]");
		
	}

	/**
	 * 入金スキーマを更新します。
	 * 
	 * @param inMap 入力電文
	 * @param selectMap DB取得値
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void updateNyukin(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface selectMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][updateNyukin]");
		
		// 取得値を設定値に移動
		Object[] setArray = selectInfoToArray(selectMap);
		
		// 入金経路コード
		makeSetArray(setArray, inMap, UPD_IDX_NYUKIN_ROUTE_CD, JBSbatCHIFM043.NYUKIN_ROUTE_CD);
		// 収納機関コード
		makeSetArray(setArray, inMap, UPD_IDX_SHUNOKIKAN_CD, JBSbatCHIFM043.SHUNOKIKAN_CD);
		// 外部組織収納年月日
		makeSetArray(setArray, inMap, UPD_IDX_OUT_ORG_SHUNO_YMD, JBSbatCHIFM043.OUT_ORG_SHUNO_YMD);
		// 領収年月日
		makeSetArray(setArray, inMap, UPD_IDX_RECEIPT_YMD, JBSbatCHIFM043.RECEIPT_YMD);
		// 領収時分秒
		makeSetArray(setArray, inMap, UPD_IDX_RECEIPT_HMS, JBSbatCHIFM043.RECEIPT_HMS);
		// 入金額
		makeSetArray(setArray, inMap, UPD_IDX_NYUKIN_AMNT, JBSbatCHIFM043.NYUKIN_AMNT);
		// 請求番号
		makeSetArray(setArray, inMap, UPD_IDX_SEIKY_NO, JBSbatCHIFM043.SEIKY_NO);
		// 請求契約番号
		makeSetArray(setArray, inMap, UPD_IDX_SEIKY_KEI_NO, JBSbatCHIFM043.SEIKY_KEI_NO);
		// 入金処理済フラグ 
		makeSetArray(setArray, inMap, UPD_IDX_NYUKIN_SYRZM_FLG, JBSbatCHIFM043.NYUKIN_SYRZM_FLG);
		// 窓口金融機関コード
		makeSetArray(setArray, inMap, UPD_IDX_MADOGUCHI_BANK_CD, JBSbatCHIFM043.MADOGUCHI_BANK_CD);
		// 窓口金融機関支店コード
		makeSetArray(setArray, inMap, UPD_IDX_MADOGUCHI_BANK_SHITEN_CD, JBSbatCHIFM043.MADOGUCHI_BANK_SHITEN_CD);
		// コンビニエンスストアコード
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_CD, JBSbatCHIFM043.CVSTORE_CD);
		// コンビニ受付店コード
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_UK_TEN_CD, JBSbatCHIFM043.CVSTORE_UK_TEN_CD);
		// EANメーカーコード
		makeSetArray(setArray, inMap, UPD_IDX_EAN_MAKER_CD, JBSbatCHIFM043.CVSTORE_KAKNO_DAIKO_COMP);
		// コンビニリアル業務コード
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_REAL_WORK_CD, JBSbatCHIFM043.WORK_DIV);
		// コンビニリアル速報通知年月日
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_REAL_SOKHO_TCH_YMD, JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_YMD);
		// コンビニリアル速報通知時分秒
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_REAL_SOKHO_TCH_HMS, JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_HMS);
		// コンビニ速報処理済フラグ
		makeSetArray(setArray, inMap, UPD_IDX_CVS_REAL_SOKHO_SYRZM_FLG, JBSbatCHIFM043.CVS_REAL_SOKHO_SYRZM_FLG);
		// コンビニ速報通知年月日
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_SOKHO_TCH_YMD, JBSbatCHIFM043.CVSTORE_SOKHO_TCH_YMD);
		// コンビニ速報処理済フラグ
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_SOKHO_SYRZM_FLG, JBSbatCHIFM043.CVSTORE_SOKHO_SYRZM_FLG);
		// コンビニ確報通知年月日
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_KAKHO_TCH_YMD, JBSbatCHIFM043.CVSTORE_KAKHO_TCH_YMD);
		// コンビニ支払予定年月日
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_PAY_RSV_YMD, JBSbatCHIFM043.CVSTORE_PAY_RSV_YMD);
		// コンビニ速報取消通知年月日
		makeSetArray(setArray, inMap, UPD_IDX_CVSTORE_SOKHO_CL_TCH_YMD, JBSbatCHIFM043.CVSTORE_SOKHO_CL_TCH_YMD);

		// 「リアル」の場合
		if(NYUKIN_STAT_SKBT_REAL.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[UPD_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_REAL_SOKHO;
		}
		// 「速報」の場合
		else if(NYUKIN_STAT_SKBT_SOKHO.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[UPD_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_SOKHO;
		}
		// 「確報」の場合
		else if(NYUKIN_STAT_SKBT_KAKHO.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[UPD_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_ZUMI;
			// 入金処理年月日
			setArray[UPD_IDX_NYUKIN_TRN_YMD] = super.opeDate;
			// 入金処理時分秒
			setArray[UPD_IDX_NYUKIN_TRN_HMS] = JCCBatCommon.getSysDateTimeStamp().substring(8, 17);
		}
		
		// 入金登録方法コード
		// 請求書発行シーケンス　＝　'09'（分割請求書） の場合
		if(JACStrConst.SKS_HAKKO_SEQ_BNKATS.equals(inMap.get(JBSbatCHIFM043.SKS_HAKKO_SEQ)))
		{
			setArray[UPD_IDX_NYUKIN_ADD_WAY_CD] = JACStrConst.NYUKIN_ADD_WAY_ACCESS;
		}
		else
		{
			setArray[UPD_IDX_NYUKIN_ADD_WAY_CD] = JACStrConst.NYUKIN_ADD_WAY_AUTO;
		}
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		// 入金番号
		whereParam.setValue(selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_NO));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateNyukin][setArray=" + Arrays.asList(setArray).toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][updateNyukin][whereParam=" + whereParam.getList().toString() + "]");
		
		// 入金スキーマ更新処理実行
		executeCH_T_NYUKIN_PKUPDATE(setArray, whereParam.getList().toArray());
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][updateNyukin]");
	}
	

	/**
	 * 入力電文の情報を判定して配列に格納します。
	 * 
	 * @param setArray DB取得値
	 * @param inMap 入力電文
	 * @param idx 登録項目インデックス番号
	 * @param columnNm カラム名
	 * @throws Exception　業務サービス内で発生した例外全般
	 */
	private void makeSetArray(Object[] setArray, JBSbatServiceInterfaceMap inMap, int idx, String columnNm) throws Exception
	{
		// 入力電文の値をトリムした結果が""（空）でない場合
		if(!JACStrConst.KARA_MOJI.equals(inMap.get(columnNm).toString().trim()))
		{
			// 対象の項目に格納
			setArray[idx] = inMap.get(columnNm);
		}
	}

	/**
	 * DB取得値を配列に格納します。
	 * 
	 * @param selectMap DB取得値
	 * @return DB設定値
	 * @throws Exception　業務サービス内で発生した例外全般
	 */
	private Object[] selectInfoToArray(JBSbatCommonDBInterface selectMap) throws Exception
	{
		Object[] setArray = new Object[UPD_KMK_NUM];
		
		// 入金経路コード
		setArray[UPD_IDX_NYUKIN_ROUTE_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_ROUTE_CD);
		// 収納機関コード
		setArray[UPD_IDX_SHUNOKIKAN_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.SHUNOKIKAN_CD);
		// 外部組織収納年月日
		setArray[UPD_IDX_OUT_ORG_SHUNO_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.OUT_ORG_SHUNO_YMD);
		// 入金処理年月日
		setArray[UPD_IDX_NYUKIN_TRN_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_TRN_YMD);
		// 入金処理時分秒
		setArray[UPD_IDX_NYUKIN_TRN_HMS] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_TRN_HMS);
		// 領収年月日
		setArray[UPD_IDX_RECEIPT_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.RECEIPT_YMD);
		// 領収時分秒
		setArray[UPD_IDX_RECEIPT_HMS] = selectMap.getValue(JBSbatCH_T_NYUKIN.RECEIPT_HMS);
		// 入金額
		setArray[UPD_IDX_NYUKIN_AMNT] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_AMNT);
		// 請求番号
		setArray[UPD_IDX_SEIKY_NO] = selectMap.getValue(JBSbatCH_T_NYUKIN.SEIKY_NO);
		// 請求契約番号
		setArray[UPD_IDX_SEIKY_KEI_NO] = selectMap.getValue(JBSbatCH_T_NYUKIN.SEIKY_KEI_NO);
		// 入金登録方法コード
		setArray[UPD_IDX_NYUKIN_ADD_WAY_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_ADD_WAY_CD);
		// 入金処理済フラグ 
		setArray[UPD_IDX_NYUKIN_SYRZM_FLG] = selectMap.getValue(JBSbatCH_T_NYUKIN.NYUKIN_SYRZM_FLG);
		// 窓口金融機関コード
		setArray[UPD_IDX_MADOGUCHI_BANK_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.MADOGUCHI_BANK_CD);
		// 窓口金融機関支店コード
		setArray[UPD_IDX_MADOGUCHI_BANK_SHITEN_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.MADOGUCHI_BANK_SHITEN_CD);
		// コンビニエンスストアコード
		setArray[UPD_IDX_CVSTORE_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_CD);
		// コンビニ受付店コード
		setArray[UPD_IDX_CVSTORE_UK_TEN_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_UK_TEN_CD);
		// EANメーカーコード
		setArray[UPD_IDX_EAN_MAKER_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.EAN_MAKER_CD);
		// コンビニリアル業務コード
		setArray[UPD_IDX_CVSTORE_REAL_WORK_CD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_REAL_WORK_CD);
		// コンビニリアル速報通知年月日
		setArray[UPD_IDX_CVSTORE_REAL_SOKHO_TCH_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_REAL_SOKHO_TCH_YMD);
		// コンビニリアル速報通知時分秒
		setArray[UPD_IDX_CVSTORE_REAL_SOKHO_TCH_HMS] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_REAL_SOKHO_TCH_HMS);
		// コンビニリアル速報処理済フラグ
		setArray[UPD_IDX_CVS_REAL_SOKHO_SYRZM_FLG] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVS_REAL_SOKHO_SYRZM_FLG);
		// コンビニ速報通知年月日
		setArray[UPD_IDX_CVSTORE_SOKHO_TCH_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_SOKHO_TCH_YMD);
		// コンビニ速報処理済フラグ
		setArray[UPD_IDX_CVSTORE_SOKHO_SYRZM_FLG] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_SOKHO_SYRZM_FLG);
		// コンビニ確報通知年月日
		setArray[UPD_IDX_CVSTORE_KAKHO_TCH_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_KAKHO_TCH_YMD);
		// コンビニ支払予定年月日
		setArray[UPD_IDX_CVSTORE_PAY_RSV_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_PAY_RSV_YMD);
		// コンビニ速報取消通知年月日
		setArray[UPD_IDX_CVSTORE_SOKHO_CL_TCH_YMD] = selectMap.getValue(JBSbatCH_T_NYUKIN.CVSTORE_SOKHO_CL_TCH_YMD);
		
		return setArray;
	}

	/**
	 * 入金スキーマに登録します。
	 * 
	 * @param inMap 入力電文
	 * @param nyukinNo 入金番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void insertNyukin(JBSbatServiceInterfaceMap inMap, String nyukinNo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][insertNyukin]");
		
		// 設定値
		Object[] setArray = new Object[INS_KMK_NUM];
		// 入金番号
		setArray[INS_IDX_NYUKIN_NO] = nyukinNo;
		// 入金経路コード
		setArray[INS_IDX_NYUKIN_ROUTE_CD] = inMap.get(JBSbatCHIFM043.NYUKIN_ROUTE_CD);
		// 収納機関コード
		setArray[INS_IDX_SHUNOKIKAN_CD] = inMap.get(JBSbatCHIFM043.SHUNOKIKAN_CD);
		// 外部組織収納年月日
		setArray[INS_IDX_OUT_ORG_SHUNO_YMD] = inMap.get(JBSbatCHIFM043.OUT_ORG_SHUNO_YMD);
		// 領収年月日
		setArray[INS_IDX_RECEIPT_YMD] = inMap.get(JBSbatCHIFM043.RECEIPT_YMD);
		// 領収時分秒
		setArray[INS_IDX_RECEIPT_HMS] = inMap.get(JBSbatCHIFM043.RECEIPT_HMS);
		// 入金額
		setArray[INS_IDX_NYUKIN_AMNT] = inMap.get(JBSbatCHIFM043.NYUKIN_AMNT);
		// 請求番号
		setArray[INS_IDX_SEIKY_NO] = inMap.get(JBSbatCHIFM043.SEIKY_NO);
		// 請求契約番号
		setArray[INS_IDX_SEIKY_KEI_NO] = inMap.get(JBSbatCHIFM043.SEIKY_KEI_NO);
		// 入金登録方法コード
		setArray[INS_IDX_NYUKIN_ADD_WAY_CD] = JACStrConst.NYUKIN_ADD_WAY_AUTO;
		// 入金処理済フラグ 
		setArray[INS_IDX_NYUKIN_SYRZM_FLG] = inMap.get(JBSbatCHIFM043.NYUKIN_SYRZM_FLG);
		// 窓口金融機関コード
		setArray[INS_IDX_MADOGUCHI_BANK_CD] = inMap.get(JBSbatCHIFM043.MADOGUCHI_BANK_CD);
		// 窓口金融機関支店コード
		setArray[INS_IDX_MADOGUCHI_BANK_SHITEN_CD] = inMap.get(JBSbatCHIFM043.MADOGUCHI_BANK_SHITEN_CD);
		// 受取組織コード
		setArray[INS_IDX_UKETORI_ORG_CD] = JACStrConst.SPACE_1;
		// コンビニエンスストアコード
		setArray[INS_IDX_CVSTORE_CD] = inMap.get(JBSbatCHIFM043.CVSTORE_CD);
		// コンビニ受付店コード
		setArray[INS_IDX_CVSTORE_UK_TEN_CD] = inMap.get(JBSbatCHIFM043.CVSTORE_UK_TEN_CD);
		// EANメーカーコード
		setArray[INS_IDX_EAN_MAKER_CD] = inMap.get(JBSbatCHIFM043.CVSTORE_KAKNO_DAIKO_COMP);
		// コンビニリアル業務コード
		setArray[INS_IDX_CVSTORE_REAL_WORK_CD] = inMap.get(JBSbatCHIFM043.WORK_DIV);
		// コンビニリアル速報通知年月日
		setArray[INS_IDX_CVSTORE_REAL_SOKHO_TCH_YMD] = inMap.get(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_YMD);
		// コンビニリアル速報通知時分秒
		setArray[INS_IDX_CVSTORE_REAL_SOKHO_TCH_HMS] = inMap.get(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_HMS);
		// コンビニリアル速報処理済フラグ
		setArray[INS_IDX_CVS_REAL_SOKHO_SYRZM_FLG] = inMap.get(JBSbatCHIFM043.CVS_REAL_SOKHO_SYRZM_FLG);
		// コンビニ速報通知年月日
		setArray[INS_IDX_CVSTORE_SOKHO_TCH_YMD] = inMap.get(JBSbatCHIFM043.CVSTORE_SOKHO_TCH_YMD);
		// コンビニ速報処理済フラグ
		setArray[INS_IDX_CVSTORE_SOKHO_SYRZM_FLG] = inMap.get(JBSbatCHIFM043.CVSTORE_SOKHO_SYRZM_FLG);
		// コンビニ確報通知年月日
		setArray[INS_IDX_CVSTORE_KAKHO_TCH_YMD] = inMap.get(JBSbatCHIFM043.CVSTORE_KAKHO_TCH_YMD);
		// コンビニ支払予定年月日
		setArray[INS_IDX_CVSTORE_PAY_RSV_YMD] = inMap.get(JBSbatCHIFM043.CVSTORE_PAY_RSV_YMD);
		// コンビニ速報取消通知年月日
		setArray[INS_IDX_CVSTORE_SOKHO_CL_TCH_YMD] = inMap.get(JBSbatCHIFM043.CVSTORE_SOKHO_CL_TCH_YMD);
		// 無効フラグ
		setArray[INS_IDX_MK_FLG] = JACStrConst.MK_FLG_MK;
		
		// 「リアル」の場合
		if(NYUKIN_STAT_SKBT_REAL.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[INS_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_REAL_SOKHO;

		}
		// 「速報」の場合
		else if(NYUKIN_STAT_SKBT_SOKHO.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[INS_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_SOKHO;
		}
		// 「確報」の場合
		else if(NYUKIN_STAT_SKBT_KAKHO.equals(freeItems[0]))
		{
			// 入金ステータス
			setArray[INS_IDX_NYUKIN_STAT] = JACStrConst.NYUKIN_STAT_ZUMI;
			// 入金処理年月日
			setArray[INS_IDX_NYUKIN_TRN_YMD] = super.opeDate;
			// 入金処理時分秒
			setArray[INS_IDX_NYUKIN_TRN_HMS] = JCCBatCommon.getSysDateTimeStamp().substring(8, 17);
		}
		
		// 入金登録方法コード
		// 請求書発行シーケンス　＝　'09'（分割請求書） の場合
		if(JACStrConst.SKS_HAKKO_SEQ_BNKATS.equals(inMap.get(JBSbatCHIFM043.SKS_HAKKO_SEQ)))
		{
			setArray[INS_IDX_NYUKIN_ADD_WAY_CD] = JACStrConst.NYUKIN_ADD_WAY_ACCESS;
		}
		else
		{
			setArray[INS_IDX_NYUKIN_ADD_WAY_CD] = JACStrConst.NYUKIN_ADD_WAY_AUTO;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][insertNyukin][setArray=" + Arrays.asList(setArray).toString() + "]");
		
		// 入金スキーマ登録処理実行
		executeCH_T_NYUKIN_PKINSERT(setArray);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][insertNyukin]");
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/

		db_CH_T_NYUKIN.clearBatch();

		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_T_NYUKIN.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		// 入金スキーマ更新件数をログ出力
		super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECHB1190AI,
				new String[] {JBSbatCH_T_NYUKIN.TABLE_NAME, String.valueOf(updateCnt)});
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CH_SELECT_016)で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_NYUKIN_CH_SELECT_016(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_NYUKIN.selectBySqlDefine(paramList, CH_T_NYUKIN_CH_SELECT_016);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	入金ステータス				NYUKIN_STAT
	 *		 	入金経路コード				NYUKIN_ROUTE_CD
	 *		 	収納機関コード				SHUNOKIKAN_CD
	 *		 	外部組織収納年月日				OUT_ORG_SHUNO_YMD
	 *		 	入金処理年月日				NYUKIN_TRN_YMD
	 *		 	入金処理時分秒				NYUKIN_TRN_HMS
	 *		 	領収年月日				RECEIPT_YMD
	 *		 	領収時分秒				RECEIPT_HMS
	 *		 	入金額				NYUKIN_AMNT
	 *		 	請求番号				SEIKY_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	入金登録方法コード				NYUKIN_ADD_WAY_CD
	 *		 	入金処理済フラグ				NYUKIN_SYRZM_FLG
	 *		 	窓口金融機関コード				MADOGUCHI_BANK_CD
	 *		 	窓口金融機関支店コード				MADOGUCHI_BANK_SHITEN_CD
	 *		 	コンビニエンスストアコード				CVSTORE_CD
	 *		 	コンビニ受付店コード				CVSTORE_UK_TEN_CD
	 *		 	ＥＡＮメーカーコード				EAN_MAKER_CD
	 *		 	コンビニリアル業務コード				CVSTORE_REAL_WORK_CD
	 *		 	コンビニリアル速報通知年月日				CVSTORE_REAL_SOKHO_TCH_YMD
	 *		 	コンビニリアル速報通知時分秒				CVSTORE_REAL_SOKHO_TCH_HMS
	 *		 	コンビニリアル速報処理済フラグ				CVS_REAL_SOKHO_SYRZM_FLG
	 *		 	コンビニ速報通知年月日				CVSTORE_SOKHO_TCH_YMD
	 *		 	コンビニ速報処理済フラグ				CVSTORE_SOKHO_SYRZM_FLG
	 *		 	コンビニ確報通知年月日				CVSTORE_KAKHO_TCH_YMD
	 *		 	コンビニ支払予定年月日				CVSTORE_PAY_RSV_YMD
	 *		 	コンビニ速報取消通知年月日				CVSTORE_SOKHO_CL_TCH_YMD
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		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("NYUKIN_ROUTE_CD", setParam[1]);
		setMap.setValue("SHUNOKIKAN_CD", setParam[2]);
		setMap.setValue("OUT_ORG_SHUNO_YMD", setParam[3]);
		setMap.setValue("NYUKIN_TRN_YMD", setParam[4]);
		setMap.setValue("NYUKIN_TRN_HMS", setParam[5]);
		setMap.setValue("RECEIPT_YMD", setParam[6]);
		setMap.setValue("RECEIPT_HMS", setParam[7]);
		setMap.setValue("NYUKIN_AMNT", setParam[8]);
		setMap.setValue("SEIKY_NO", setParam[9]);
		setMap.setValue("SEIKY_KEI_NO", setParam[10]);
		setMap.setValue("NYUKIN_ADD_WAY_CD", setParam[11]);
		setMap.setValue("NYUKIN_SYRZM_FLG", setParam[12]);
		setMap.setValue("MADOGUCHI_BANK_CD", setParam[13]);
		setMap.setValue("MADOGUCHI_BANK_SHITEN_CD", setParam[14]);
		setMap.setValue("CVSTORE_CD", setParam[15]);
		setMap.setValue("CVSTORE_UK_TEN_CD", setParam[16]);
		setMap.setValue("EAN_MAKER_CD", setParam[17]);
		setMap.setValue("CVSTORE_REAL_WORK_CD", setParam[18]);
		setMap.setValue("CVSTORE_REAL_SOKHO_TCH_YMD", setParam[19]);
		setMap.setValue("CVSTORE_REAL_SOKHO_TCH_HMS", setParam[20]);
		setMap.setValue("CVS_REAL_SOKHO_SYRZM_FLG", setParam[21]);
		setMap.setValue("CVSTORE_SOKHO_TCH_YMD", setParam[22]);
		setMap.setValue("CVSTORE_SOKHO_SYRZM_FLG", setParam[23]);
		setMap.setValue("CVSTORE_KAKHO_TCH_YMD", setParam[24]);
		setMap.setValue("CVSTORE_PAY_RSV_YMD", setParam[25]);
		setMap.setValue("CVSTORE_SOKHO_CL_TCH_YMD", setParam[26]);
		setMap.setValue("UPD_DTM", setParam[27]);
		setMap.setValue("UPD_OPEACNT", setParam[28]);
	
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("NYUKIN_NO", whereParam[0]);

		// DBアクセスを実行します
		updateCnt += db_CH_T_NYUKIN.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	入金番号				NYUKIN_NO
	 *		 	入金ステータス				NYUKIN_STAT
	 *		 	入金経路コード				NYUKIN_ROUTE_CD
	 *		 	収納機関コード				SHUNOKIKAN_CD
	 *		 	外部組織収納年月日				OUT_ORG_SHUNO_YMD
	 *		 	入金処理年月日				NYUKIN_TRN_YMD
	 *		 	入金処理時分秒				NYUKIN_TRN_HMS
	 *		 	領収年月日				RECEIPT_YMD
	 *		 	領収時分秒				RECEIPT_HMS
	 *		 	入金額				NYUKIN_AMNT
	 *		 	入金取消年月日				NYUKIN_CL_YMD
	 *		 	入金取消理由コード				NYUKIN_CLRE_CD
	 *		 	請求番号				SEIKY_NO
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	入金登録方法コード				NYUKIN_ADD_WAY_CD
	 *		 	入金処理済フラグ				NYUKIN_SYRZM_FLG
	 *		 	窓口金融機関コード				MADOGUCHI_BANK_CD
	 *		 	窓口金融機関支店コード				MADOGUCHI_BANK_SHITEN_CD
	 *		 	口座振替金融機関コード				KHRI_BANK_CD
	 *		 	口座振替金融機関支店コード				KHRI_BANK_SHITEN_CD
	 *		 	クレジットカード会社コード				CRECARD_COMP_CD
	 *		 	債権回収委託会社コード				SKNKSITKCM_CD
	 *		 	指定口座コード				SHITEIKOZA_CD
	 *		 	払込先金融機関コード				HRAKMISAKI_BANK_CD
	 *		 	払込先金融機関支店コード				HRAKMISAKI_BANK_SHITEN_CD
	 *		 	受取組織コード				UKETORI_ORG_CD
	 *		 	社内使用分組織コード				SYAYOBUN_ORG_CD
	 *		 	コンビニエンスストアコード				CVSTORE_CD
	 *		 	コンビニ受付店コード				CVSTORE_UK_TEN_CD
	 *		 	ＥＡＮメーカーコード				EAN_MAKER_CD
	 *		 	コンビニリアル業務コード				CVSTORE_REAL_WORK_CD
	 *		 	コンビニリアル速報通知年月日				CVSTORE_REAL_SOKHO_TCH_YMD
	 *		 	コンビニリアル速報通知時分秒				CVSTORE_REAL_SOKHO_TCH_HMS
	 *		 	コンビニリアル速報処理済フラグ				CVS_REAL_SOKHO_SYRZM_FLG
	 *		 	コンビニ速報通知年月日				CVSTORE_SOKHO_TCH_YMD
	 *		 	コンビニ速報処理済フラグ				CVSTORE_SOKHO_SYRZM_FLG
	 *		 	コンビニ確報通知年月日				CVSTORE_KAKHO_TCH_YMD
	 *		 	コンビニ支払予定年月日				CVSTORE_PAY_RSV_YMD
	 *		 	コンビニ速報取消通知年月日				CVSTORE_SOKHO_CL_TCH_YMD
	 *		 	郵券受取組織コード				YUKEN_UKETORI_ORG_CD
	 *		 	郵便自動振込金融機関コード				YJHRI_BANK_CD
	 *		 	郵便自動振込金融機関支店コード				YJHRI_BANK_SHITEN_CD
	 *		 	郵便振込金融機関コード				YHRIKOMI_BANK_CD
	 *		 	郵便振込金融機関支店コード				YHRIKOMI_BANK_SHITEN_CD
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_NYUKIN_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("NYUKIN_NO", setParam[0]);
		setMap.setValue("NYUKIN_STAT", setParam[1]);
		setMap.setValue("NYUKIN_ROUTE_CD", setParam[2]);
		setMap.setValue("SHUNOKIKAN_CD", setParam[3]);
		setMap.setValue("OUT_ORG_SHUNO_YMD", setParam[4]);
		setMap.setValue("NYUKIN_TRN_YMD", setParam[5]);
		setMap.setValue("NYUKIN_TRN_HMS", setParam[6]);
		setMap.setValue("RECEIPT_YMD", setParam[7]);
		setMap.setValue("RECEIPT_HMS", setParam[8]);
		setMap.setValue("NYUKIN_AMNT", setParam[9]);
		setMap.setValue("NYUKIN_CL_YMD", setParam[10]);
		setMap.setValue("NYUKIN_CLRE_CD", setParam[11]);
		setMap.setValue("SEIKY_NO", setParam[12]);
		setMap.setValue("SEIKY_KEI_NO", setParam[13]);
		setMap.setValue("NYUKIN_ADD_WAY_CD", setParam[14]);
		setMap.setValue("NYUKIN_SYRZM_FLG", setParam[15]);
		setMap.setValue("MADOGUCHI_BANK_CD", setParam[16]);
		setMap.setValue("MADOGUCHI_BANK_SHITEN_CD", setParam[17]);
		setMap.setValue("KHRI_BANK_CD", setParam[18]);
		setMap.setValue("KHRI_BANK_SHITEN_CD", setParam[19]);
		setMap.setValue("CRECARD_COMP_CD", setParam[20]);
		setMap.setValue("SKNKSITKCM_CD", setParam[21]);
		setMap.setValue("SHITEIKOZA_CD", setParam[22]);
		setMap.setValue("HRAKMISAKI_BANK_CD", setParam[23]);
		setMap.setValue("HRAKMISAKI_BANK_SHITEN_CD", setParam[24]);
		setMap.setValue("UKETORI_ORG_CD", setParam[25]);
		setMap.setValue("SYAYOBUN_ORG_CD", setParam[26]);
		setMap.setValue("CVSTORE_CD", setParam[27]);
		setMap.setValue("CVSTORE_UK_TEN_CD", setParam[28]);
		setMap.setValue("EAN_MAKER_CD", setParam[29]);
		setMap.setValue("CVSTORE_REAL_WORK_CD", setParam[30]);
		setMap.setValue("CVSTORE_REAL_SOKHO_TCH_YMD", setParam[31]);
		setMap.setValue("CVSTORE_REAL_SOKHO_TCH_HMS", setParam[32]);
		setMap.setValue("CVS_REAL_SOKHO_SYRZM_FLG", setParam[33]);
		setMap.setValue("CVSTORE_SOKHO_TCH_YMD", setParam[34]);
		setMap.setValue("CVSTORE_SOKHO_SYRZM_FLG", setParam[35]);
		setMap.setValue("CVSTORE_KAKHO_TCH_YMD", setParam[36]);
		setMap.setValue("CVSTORE_PAY_RSV_YMD", setParam[37]);
		setMap.setValue("CVSTORE_SOKHO_CL_TCH_YMD", setParam[38]);
		setMap.setValue("YUKEN_UKETORI_ORG_CD", setParam[39]);
		setMap.setValue("YJHRI_BANK_CD", setParam[40]);
		setMap.setValue("YJHRI_BANK_SHITEN_CD", setParam[41]);
		setMap.setValue("YHRIKOMI_BANK_CD", setParam[42]);
		setMap.setValue("YHRIKOMI_BANK_SHITEN_CD", setParam[43]);
		setMap.setValue("ADD_DTM", setParam[44]);
		setMap.setValue("ADD_OPEACNT", setParam[45]);
		setMap.setValue("UPD_DTM", setParam[46]);
		setMap.setValue("UPD_OPEACNT", setParam[47]);
		setMap.setValue("DEL_DTM", setParam[48]);
		setMap.setValue("DEL_OPEACNT", setParam[49]);
		setMap.setValue("MK_FLG", setParam[50]);
	
		// DBアクセスを実行します
		db_CH_T_NYUKIN.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * ファイルに出力する値を設定します。
	 * @param outputInItem 出力ファイル
	 * @param nyukinNo 入金番号
	 * @param inMap 入力電文
	 * @throws Exception
	 */
	private void createOutputFile(JBSbatOutputItem outputInItem, String nyukinNo, JBSbatServiceInterfaceMap inMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][createOutputFile]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][createOutputFile][出力対象入金番号＝" + nyukinNo + "]");
		
		String seikyKeiNo = inMap.getString(JBSbatCHIFM043.SEIKY_KEI_NO);
		
		//請求契約番号がALL空白に設定されていたら、退避していた番号と差し替え。
		if(seikyKeiNo.equals(JACStrConst.SEIKY_KEI_NO_SP))
		{
			inMap.setString(JBSbatCHIFM043.SEIKY_KEI_NO, taihiSeikyKeiNo);
		}
		
		// ファイルに出力する値を設定します。
		inMap.setString(JBSbatCHIFM210.NYUKIN_NO,  nyukinNo);													// 入金番号
		
		inMap.setOutFlg(true);
		outputInItem.addOutMapList(inMap);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][createOutputFile]");
	}
}
