/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHCvsRealNkinSokhoChk
*	ソースファイル名	：JBSbatCHCvsRealNkinSokhoChk.java
*	作成者				：富士通　
*	作成日				：2011年10月13日
*＜機能概要＞
*　コンビニリアル入金速報データチェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/10/13   富士通		新規作成
*	v3.00		2012/07/17   FJ）冨井	【TAI-2012-0000054】SQL性能監査対応
*	v3.01		2012/08/29   FJ）岡田	【TG1-2012-0000137・138】金額の属性チェック変更
*	v3.02		2012/09/20   FJ）岡田	【ST1-2012-0000611】金額の属性チェック見直し
*	v3.03		2012/11/02   FJ) 垣内	【ST2-2012-0001778】存在しない請求契約番号で金庫TBLに登録される
*	v4.00		2012/12/26   FJ) 早崎	【ST1-2012-0000880】ファイルレイアウト通りに編集設定するように修正を行う
*	v5.00		2013/08/25   FJ) 狭間	【OM-2013-0000882】入金データファイル項目追加
*	v5.01		2013/10/27   FJ) 柴田	【OM-2013-0002835】コンビニ仮入金データ．コンビニ受付店コードに、
*														　 コンビニリアル入金速報データ．店舗コードの右から7桁を
* 														　 セットする処理を追加。
*	v6.00		2014/01/22   FJ) 小掠	【OM-2014-0000245】請求契約の世代抽出に予約適用年月日、予約適用コードを追加。
*	v52.00.00	2020/11/12	 FJ)星野	【ANK-3838-0000】窓口払い手数料の顧客負担方式導入
*	v52.00.01	2020/12/21	 FJ) 星野   【ANK-3838-32-00】窓口払い手数料の顧客負担方式導入 コンビニ会社コードの４分割化
*	v57.00.00	2022/02/25   FJ）西窪	【ANK-4206-00-00】請求書再発行時の発行回数改善対応
*********************************************************************/
package eo.business.service;

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.JCHbatSeikyKaknoBusinessUtil;
import eo.business.util.file.JBSbatCHIFE019;
import eo.business.util.file.JBSbatCHIFE020;
import eo.business.util.file.JBSbatCHIFM043;
import eo.business.util.table.JBSbatCH_M_CVSTORE;
import eo.business.util.table.JBSbatCH_T_SEIKY;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.constant.JZM0171Constant;
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;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHCvsRealNkinSokhoChk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(コンビニエンスストア)*/
	private static final String D_TBL_NAME_CH_M_CVSTORE = "CH_M_CVSTORE";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_CH_T_SEIKY = "CH_T_SEIKY";

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";

	/** テーブル(請求)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_KEI = "KK_T_SEIKY_KEI";

	/** SQL定義キー(CH_SELECT_001)*/
	private static final String CH_M_CVSTORE_CH_SELECT_001 = "CH_SELECT_001";

	/** SQL定義キー(CH_SELECT_007)*/
	private static final String CH_T_SEIKY_CH_SELECT_007 = "CH_SELECT_007";
	
	/** SQL定義キー(CH_SELECT_005)*/
	private static final String ZM_M_CD_NM_KANRI_CH_SELECT_005 = "CH_SELECT_005";

	/** SQL定義キー(CH_SELECT_013)*/
	private static final String KK_T_SEIKY_KEI_CH_SELECT_013 = "CH_SELECT_013";

	/** テーブルアクセスクラス(コンビニエンスストア)*/
	private JBSbatSQLAccess db_CH_M_CVSTORE = null;

	/** テーブルアクセスクラス(請求)*/
	private JBSbatSQLAccess db_CH_T_SEIKY = null;

	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;

	/** テーブルアクセスクラス(請求契約)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_KEI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	
	/**▼▼▼▼▼▼クラス変数追加 開始▼▼▼▼▼▼*/
	
	/** 編集後入力情報マップキー＿ファイルID */
	private static final String FILE_ID = "FILE_ID";

	/** 編集後入力情報マップキー＿レコード区分 */
	private static final String REC_DIV = "REC_DIV";

	/** 編集後入力情報マップキー＿ヘッダ＿ファイル作成日 */
	private static final String H_FILE_MAKE_YMD = "H_FILE_MAKE_YMD";

	/** 編集後入力情報マップキー＿ヘッダ＿ファイル作成時間 */
	private static final String H_FILE_MAKE_HMS = "H_FILE_MAKE_HM";

	/** 編集後入力情報マップキー＿ヘッダ＿ユーザ識別コード */
	private static final String H_USER_SKBT_CD = "H_USER_SKBT_CD";

	/** 編集後入力情報マップキー＿ヘッダ＿共有VANセンタコード */
	private static final String H_VAN_CENTER_CD = "H_VAN_CENTER_CD";

	/** 編集後入力情報マップキー＿ヘッダ＿ユーザセンタコード */
	private static final String H_USER_CENTER_CD = "H_USER_CENTER_CD";
	
	/** 編集後入力情報マップキー＿ヘッダ＿予備 */
	private static final String H_YOBI = "H_YOBI";

	/** 編集後入力情報マップキー＿データ＿業務区分 */
	private static final String D_GYOM_DIV = "D_GYOM_DIV";

	/** 編集後入力情報マップキー＿データ＿コンビニコード */
	private static final String D_CVS_CD = "D_CVS_CD";

	/** 編集後入力情報マップキー＿データ＿店舗コード */
	private static final String D_TENPO_CD = "D_TENPO_CD";

	/** 編集後入力情報マップキー＿データ＿コンビニ収納日 */
	private static final String D_CVS_SHUNO_YMD = "D_CVS_SHUNO_YMD";

	/** 編集後入力情報マップキー＿データ＿コンビニ収納時間 */
	private static final String D_CVS_SHUNO_HM = "D_CVS_SHUNO_HM";

	/** 編集後入力情報マップキー＿データ＿コンビニ営業日 */
	private static final String D_CVS_EIGYO_YMD = "D_CVS_EIGYO_YMD";

	/** 編集後入力情報マップキー＿データ＿EAN識別子 */
	private static final String D_EAN_SKBTS = "D_EAN_SKBTS";

	/** 編集後入力情報マップキー＿データ＿EANメーカーコード */
	private static final String D_EAN_MAKER_CD = "D_EAN_MAKER_CD";

	/** 編集後入力情報マップキー＿データ＿EAN会社コード */
	private static final String D_EAN_COMP_CD = "D_EAN_COMP_CD";

	/** 編集後入力情報マップキー＿データ＿EAN請求月 */
	private static final String D_EAN_SEIKY_MON = "D_EAN_SEIKY_MON";

	/** 編集後入力情報マップキー＿データ＿EAN請求年 */
	private static final String D_EAN_SEIKY_YEAR = "D_EANSEIKY_YEAR";

	/** 編集後入力情報マップキー＿データ＿EAN群番号 */
	private static final String D_EAN_GUN_NO = "D_EAN_GUN_NO";

	/** 編集後入力情報マップキー＿データ＿EAN発行シーケンス */
	private static final String D_EAN_HAKKO_SEQ = "D_EAN_HAKKO_SEQ";

	/** 編集後入力情報マップキー＿データ＿EAN請求先番号 */
	private static final String D_EAN_SEIKY_SAKI_NO = "D_EAN_SEIKY_SAKI_NO";

	/** 編集後入力情報マップキー＿データ＿EAN再発行区分 */
	private static final String D_EAN_RE_HAKKO_DIV = "D_EAN_RE_HAKKO_DIV";

	/** 編集後入力情報マップキー＿データ＿EAN支払期限日 */
	private static final String D_EAN_PAY_KIGEN_YMD = "D_EAN_PAY_KIGEN_YMD";

	/** 編集後入力情報マップキー＿データ＿EAN印紙フラグ */
	private static final String D_EAN_INS_FLG = "D_EAN_INS_FLG";

	/** 編集後入力情報マップキー＿データ＿EAN支払金額 */
	private static final String D_EAN_PAY_AMNT = "D_EAN_PAY_AMNT";

	/** 編集後入力情報マップキー＿データ＿EANチェックデジット */
	private static final String D_EAN_CHKDIGT = "D_EAN_CHKDIGT";

	/** 編集後入力情報マップキー＿データ＿収納情報予備 */
	private static final String D_SHUNO_INFO_YOBI = "D_SHUNO_INFO_YOBI";

	/** 編集後入力情報マップキー＿データ＿ユーザセンタコード */
	private static final String D_USER_CENTER_CD = "D_USER_CENTER_CD";

	/** 編集後入力情報マップキー＿データ＿ユーザセンター別SEQ */
	private static final String D_USER_CENTER_BT_SEQ = "D_USER_CETER_BT_SEQ";

	/** 編集後入力情報マップキー＿データ＿予備 */
	private static final String D_YOBI = "D_YOBI";

	/** 編集後入力情報マップキー＿エンド＿総件数 */
	private static final String E_TOTAL_CNT = "E_TOTAL_CNT";

	/** 編集後入力情報マップキー＿エンド＿予備 */
	private static final String E_YOBI = "E_YOBI";


	/** 編集後入力情報桁数＿ヘッダ＿ファイル作成日 */
	private static final int H_FILE_MAKE_YMD_LENGTH = 8;

	/** 編集後入力情報桁数＿ヘッダ＿ファイル作成時間 */
	private static final int H_FILE_MAKE_HMS_LENGTH = 8;

	/** 編集後入力情報桁数＿ヘッダ＿ユーザ識別コード */
	private static final int H_USER_SKBT_CD_LENGTH = 5;

	/** 編集後入力情報桁数＿ヘッダ＿共有VANセンタコード */
	private static final int H_VAN_CENTER_CD_LENGTH = 2;

	/** 編集後入力情報桁数＿ヘッダ＿ユーザセンタコード */
	private static final int H_USER_CENTER_CD_LENGTH = 2;

	/** 編集後入力情報桁数＿ヘッダ＿予備 */
	private static final int H_YOBI_LENGTH = 94;

	/** 編集後入力情報桁数＿データ＿業務区分 */
	private static final int D_GYOM_DIV_LENGTH = 2;

	/** 編集後入力情報桁数＿データ＿コンビニコード */
	private static final int D_CVS_CD_LENGTH = 10;

	/** 編集後入力情報桁数＿データ＿店舗コード */
	private static final int D_TENPO_CD_LENGTH = 8;

	/** 編集後入力情報桁数＿データ＿コンビニ収納日 */
	private static final int D_CVS_SHUNO_YMD_LENGTH = 8;

	/** 編集後入力情報桁数＿データ＿コンビニ収納時間 */
	private static final int D_CVS_SHUNO_HM_LENGTH = 4;

	/** 編集後入力情報桁数＿データ＿コンビニ営業日 */
	private static final int D_CVS_EIGYO_YMD_LENGTH = 8;

	/** 編集後入力情報桁数＿データ＿EAN識別子 */
	private static final int D_EAN_SKBTS_LENGTH = 2;

	/** 編集後入力情報桁数＿データ＿EANメーカーコード */
	private static final int D_EAN_MAKER_CD_LENGTH = 6;

	/** 編集後入力情報桁数＿データ＿EAN会社コード */
	private static final int D_EAN_COMP_CD_LENGTH = 5;

	/** 編集後入力情報桁数＿データ＿EAN請求月 */
	private static final int D_EAN_SEIKY_MON_LENGTH = 2;

	/** 編集後入力情報桁数＿データ＿EAN請求年 */
	private static final int D_EAN_SEIKY_YEAR_LENGTH = 2;

	/** 編集後入力情報桁数＿データ＿EAN群番号 */
	private static final int D_EAN_GUN_NO_LENGTH = 1;

	/** 編集後入力情報桁数＿データ＿EAN発行シーケンス */
	private static final int D_EAN_HAKKO_SEQ_LENGTH = 1;

	/** 編集後入力情報桁数＿データ＿EAN請求先番号 */
	private static final int D_EAN_SEIKY_SAKI_NO_LENGTH = 10;

	/** 編集後入力情報桁数＿データ＿EAN再発行区分 */
	private static final int D_EAN_RE_HAKKO_DIV_LENGTH = 1;

	/** 編集後入力情報桁数＿データ＿EAN支払期限日 */
	private static final int D_EAN_PAY_KIGEN_YMD_LENGTH = 6;

	/** 編集後入力情報桁数＿データ＿EAN印紙フラグ */
	private static final int D_EAN_INS_FLG_LENGTH = 1;

	/** 編集後入力情報桁数＿データ＿EAN支払金額 */
	private static final int D_EAN_PAY_AMNT_LENGTH = 6;

	/** 編集後入力情報桁数＿データ＿EANチェックデジット */
	private static final int D_EAN_CHKDIGT_LENGTH = 1;

	/** 編集後入力情報桁数＿データ＿収納情報予備 */
	private static final int D_SHUNO_INFO_YOBI_LENGTH = 3;

	/** 編集後入力情報桁数＿データ＿ユーザセンタコード */
	private static final int D_USER_CENTER_CD_LENGTH = 2;

	/** 編集後入力情報桁数＿データ＿ユーザセンター別SEQ */
	private static final int D_USER_CENTER_BT_SEQ_LENGTH = 8;

	/** 編集後入力情報桁数＿データ＿予備 */
	private static final int D_YOBI_LENGTH = 22;

	/** 編集後入力情報桁数＿エンド＿総件数 */
	private static final int E_TOTAL_CNT_LENGTH = 11;

	/** 編集後入力情報桁数＿エンド＿予備 */
	private static final int E_YOBI_LENGTH = 108;

	
	/** 日付書式変換コード：yyMM形式 */
	private static final String DAY_FORMAT_CHG_YYYYMM = "1";
	
	/** 日付書式変換コード：MMdd形式 */
	private static final String DAY_FORMAT_CHG_YYYYMMDD = "2";
	
	/** 秒数（000） */
	private static final String SECOND_000 = "000";
	
	/** EAN群番号 */
	private static final String EAN_GUN_NO = "6";
	
	/** 日付桁数＿yyyyMMdd形式 */
	private static final int YYYYMMDD_LENGTH = 8;
	
	/** 日付桁数＿yyyyMM形式 */
	private static final int YYYYMM_LENGTH = 6;
	
	/** 時分秒桁数＿HHmmssS */
	private static final int HHMMSSS_LENGTH = 7;
	
	/** エラーコード：正常 */
	private static final String ERR_CD_NORMAL = "";
	
	/** エラー内容マップ */
	private Map<String, String> errNaiyoMap = null;
	
	/** 収納機関コードマップ */
	private Map<String, String> shunoKikanCdMap = null;
	
	/** 入金経路コードマップ */
	private Map<String, String> nyukinRouteCdMap = null;
	
	/** ユーザ識別コードマップ */
	private Map<String, String> userSkbtCdMap = null;
	
	/** EANメーカーコード（リアル）マップ */
	private Map<String, String> eanMakerCdMap = null;
	
	/** EAN会社コードマップ */
	private Map<String, String> eanCompCdMap = null;
	
	/** 業務区分マップ */
	private Map<String, String> gyomuDivMap = null;
	
	/** コンビニエンスストアコード */
	private String tempCvsCd = null;
	
	/** エラーコード */
	private String errCd = null;
	
	/** 前回レコード区分 */
	private String befRecDiv = null;
	
	/** レコード件数 */
	private int recCnt = 0;
	
	/** インスタンス変数 */
	private JACbatParamUtil paramUtil = null;
	
	/** 退避　ファイル作成日 */
	private String tempFileMakeYmd = null;
	
	/** 退避　ファイル作成時間 */
	private String tempFileMakeHms = null;
	
// ANK-3838-00-00対応 20201112 星野 ADD START
	/** free項目 */
	private String[] freeItems = null;
// ANK-3838-00-00対応 20201112 星野 ADD END

	
	/** 請求契約存在有無（無） */
	private static final String SEIKY_KEI_UMU_NASI = "0";

	/** 請求契約存在有無（有） */
	private static final String SEIKY_KEI_UMU_ARI = "1";
	
// ANK-3838-00-00対応 20201112 星野 ADD START
	/** さくらＫＣＳ区分（さくらＫＣＳ） */
	private static final String SAKURA_KCS = "1";
// ANK-3838-00-00対応 20201112 星野 ADD END

	/**▲▲▲▲▲▲クラス変数追加 終了▲▲▲▲▲▲*/
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_CVSTORE = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_CVSTORE);
		db_CH_T_SEIKY = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_SEIKY);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		db_KK_T_SEIKY_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_KEI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		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 + "]");
		
// ANK-3838-00-00対応 20201112 星野 ADD START
		// free項目を取得 
		// freeItems[0] ： さくらＫＣＳ区分　 1:さくらＫＣＳ　左記以外（未設定含む）：さくらＫＣＳ以外
		String freeItem = commonItem.getFreeItem();
		freeItems = freeItem.split(JACStrConst.FREE_DIV);
// ANK-3838-00-00対応 20201112 星野 ADD END

		
		this.paramUtil = new JACbatParamUtil(super.commonItem);
		try
		{
			// エラー内容マップ作成
			this.makeErrNaiyoMap();
			
			// 入金経路コードマップ作成
			this.makeNyukinRouteCdMap();
			
			// 収納機関コードマップ作成
			this.makeShunoKikanCdMap();
			
			// ユーザ識別コードマップ作成
			this.makeUserSkbtCdMap();
			
			// EANメーカーコード（リアル）マップ作成
			this.makeEanMakerCdMap();
			
			// EAN会社コード（リアル）マップ作成
			this.makeEanCompCdMap();
			
			// 業務区分マップ作成
			this.makeGyoumuDivMap();
		}
		finally
		{
			this.paramUtil.close();
		}
		
		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 inMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute][inMap=" + inMap.getMap().toString() + "]"):true;
		
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		// 最終レコード判定
		if(inMap == null)
		{
			// エンドレコード以外
			if(!JACStrConst.DATA_KUBUN_END.equals(befRecDiv))
			{
				this.errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0002;
				
				// エラーレコードを出力共通電文に設定
				outputItem.addOutMapList_2(this.makeCvsRealErrListInfo(null));
			}
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
			
			return outputItem;
		}

		// ダミーレコード設定
		outputItem.addOutMapList(new JBSbatServiceInterfaceMap());
		
		// ファイルID取得
		String fileId = inMap.getString(JBSbatCHIFE019.FILE_ID);
		// レコード区分取得
		String recDiv = String.valueOf(inMap.getString(JBSbatCHIFE019.DATE).charAt(0));
		// その他取得
		String otherInfo = inMap.getString(JBSbatCHIFE019.DATE);
		
		// 入力情報編集
		Map<String, String> editAftInMap = this.editInMap(fileId, recDiv, otherInfo);
		if(editAftInMap == null)
		{
			// エラーレコードを出力共通電文に設定し、処理終了
			outputItem.addOutMapList_2(this.makeCvsRealErrListInfo(inMap.getMap()));
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
			
			return outputItem;
		}
		
		// データ順序チェック
		errCd = chkDataJun(recDiv);
		if(!ERR_CD_NORMAL.equals(this.errCd))
		{
			// エラーレコードを出力共通電文に設定し、処理終了
			outputItem.addOutMapList_2(this.makeCvsRealErrListInfo(inMap.getMap()));
			
			// レコード区分を退避
			this.befRecDiv = recDiv;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
			
			return outputItem;
		}
		
		// ヘッダレコードの場合
		if(JACStrConst.DATA_KUBUN_HEADER.equals(recDiv))
		{
			// レコード件数クリア
			this.recCnt = 0;
		}
		
		// レコード件数カウントアップ
		this.recCnt++;
		
		// データ項目チェック
		this.errCd = this.checkRec(editAftInMap);
		if (!ERR_CD_NORMAL.equals(this.errCd))
		{
			// エラーレコードを出力共通電文に設定し、処理終了
			outputItem.addOutMapList_2(this.makeCvsRealErrListInfo(editAftInMap));
			
			// レコード区分を退避
			this.befRecDiv = recDiv;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
			
			return outputItem;
		}
		
		
		// ヘッダレコードまたはエンドレコードの場合
		if(JACStrConst.DATA_KUBUN_HEADER.equals(recDiv) || JACStrConst.DATA_KUBUN_END.equals(recDiv))
		{
			// エラーコード
			this.errCd = ERR_CD_NORMAL;
		}
		// データレコードの場合
		else if (JACStrConst.REC_DIV_DATA_CVS_REAL.equals(recDiv))
		{
			// 請求番号取得
			String seikyNo = this.checkSkyUmu(editAftInMap);

			// 請求契約存在有無
			String seikyKeiUmu = JACStrConst.KARA_MOJI;

			// 請求情報が未存在の場合のみ、請求契約情報存在チェック
			if(seikyNo == null || "".equals(seikyNo))
			{
				seikyKeiUmu = checkSkyKeiChk(editAftInMap);
			}
			else
			{
				seikyKeiUmu = SEIKY_KEI_UMU_ARI;
			}
			
			// コンビニ仮入金データ作成
			outputItem.addOutMapList(this.makeCvsKariNyukinInfo(editAftInMap, seikyNo, seikyKeiUmu));
		}
		
		// レコード区分退避
		this.befRecDiv = recDiv;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_CVSTORE.close();
		db_CH_T_SEIKY.close();
		db_ZM_M_CD_NM_KANRI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
		
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼メソッド追加  開始▼▼▼▼▼▼*/
	
	/**
	 * エラー内容マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeErrNaiyoMap() throws Exception
	{
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeErrNaiyoMap]");
		
		// エラー内容マップ
		this.errNaiyoMap = new HashMap<String, String>();
		
		
		// 各エラー内容をマップに設定
		for(int i = 1; i < 20; i++)
		{
			// 業務パラメータID作成
			StringBuffer buf = new StringBuffer(JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E);
			// 左埋め0パディング
			String no = JPCUtilCommon.fillZero(String.valueOf(i), 4, false);
			buf.append(no);
			// エラー内容をマップに設定
			this.errNaiyoMap.put(buf.toString(), paramUtil.getGyoumuParameter(buf.toString()));
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeErrNaiyoMap][errNaiyoMap=" + errNaiyoMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeErrNaiyoMap]");
		
		return;
	}
	
	/**
	 * 入金経路コードマップを作成します
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeNyukinRouteCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeNyukinRouteCdMap]");
		
		// 入金経路コードマップ
		this.nyukinRouteCdMap = new HashMap<String, String>();
		// 入金経路コードマップ
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用入金経路コードを取得
			this.nyukinRouteCdMap.put(JACStrConst.WORKID_NKIN_ROUTE_CD_CVT, paramUtil.getGyoumuParameter(JACStrConst.WORKID_NKIN_ROUTE_CD_CVT));
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			this.nyukinRouteCdMap.put(JACStrConst.WORKID_NKIN_ROUTE_CD_CVS, paramUtil.getGyoumuParameter(JACStrConst.WORKID_NKIN_ROUTE_CD_CVS));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeNyukinRouteCdMap][nyukinRouteCdMap=" + nyukinRouteCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeNyukinRouteCdMap]");
	}
	

	/**
	 * 収納機関コードマップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeShunoKikanCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeShunoKikanCdMap]");
		
		// 収納機関コードマップ
		this.shunoKikanCdMap = new HashMap<String, String>();
		
		// 収納機関コードを取得し、マップ化する
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用収納機関コードを取得
			this.shunoKikanCdMap.put(JACStrConst.WORKID_SHUNOKIKAN_CD_RCU,  paramUtil.getGyoumuParameter(JACStrConst.WORKID_SHUNOKIKAN_CD_RCU));
			this.shunoKikanCdMap.put(JACStrConst.WORKID_SHUNOKIKAN_CD_RCO,  paramUtil.getGyoumuParameter(JACStrConst.WORKID_SHUNOKIKAN_CD_RCO));
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			this.shunoKikanCdMap.put(JACStrConst.WORKID_SHUNOKIKAN_CD_CVS,  paramUtil.getGyoumuParameter(JACStrConst.WORKID_SHUNOKIKAN_CD_CVS));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeShunoKikanCdMap][shunoKikanCdMap=" + shunoKikanCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeShunoKikanCdMap]");
		
		return ;
	}
	
	/**
	 * ユーザ識別コードマップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeUserSkbtCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeUserSkbtCdMap]");
		
		// ユーザ識別コードマップ
		this.userSkbtCdMap = new HashMap<String, String>();
		
		// ユーザ識別コードを取得し、マップ化する
		
		userSkbtCdMap.put(JACStrConst.WAKPARA_CH_CVSRAL_USERSKBTCD,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_CVSRAL_USERSKBTCD));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeUserSkbtCdMap][userSkbtCdMap=" + userSkbtCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeUserSkbtCdMap]");
		
		return;
	}

	/**
	 * EANメーカーコード（リアル）マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeEanMakerCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeEanMakerCdMap]");
		
		// EANメーカーコード（リアル）マップ
		this.eanMakerCdMap = new HashMap<String, String>();
		
		// EANメーカーコード（リアル）を取得し、マップ化する
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用メーカーコードを取得
			this.eanMakerCdMap.put(JACStrConst.WAKPARA_CH_MAKER_RCU_SAKURA,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_MAKER_RCU_SAKURA));
			this.eanMakerCdMap.put(JACStrConst.WAKPARA_CH_MAKER_RCO_SAKURA,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_MAKER_RCO_SAKURA));
			
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			this.eanMakerCdMap.put(JACStrConst.WAKPARA_CH_MAKER_CODE_REAL,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_MAKER_CODE_REAL));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeEanMakerCdMap][eanMakerCdMp=" + eanMakerCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeEanMakerCdMap]");
	}
	
	/**
	 * EAN会社コード（リアル）マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeEanCompCdMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeEanCompCdMap]");
		
		// EAN会社コード（リアル）マップ
		this.eanCompCdMap = new HashMap<String, String>();
		
		// EAN会社コード（リアル）を取得し、マップ化する
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用会社コードを取得
// ANK-3838-32-00対応 20201221 星野 MOD START
//			this.eanCompCdMap.put(JACStrConst.WAKPARA_CH_COMP_REA_SAKURA,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_COMP_REA_SAKURA));
			this.eanCompCdMap.put(JACStrConst.WAKPARA_CH_COMP_RCU_SAKURA,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_COMP_RCU_SAKURA));
			this.eanCompCdMap.put(JACStrConst.WAKPARA_CH_COMP_RCO_SAKURA,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_COMP_RCO_SAKURA));
// ANK-3838-32-00対応 20201221 星野 MOD END
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			this.eanCompCdMap.put(JACStrConst.WAKPARA_CH_COMP_CODE_REAL,  paramUtil.getGyoumuParameter(JACStrConst.WAKPARA_CH_COMP_CODE_REAL));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeEanCompCdMap][eanCompCdMap=" + eanCompCdMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeEanCompCdMap]");
	}
	
	/**
	 * 業務区分マップを作成します。
	 * 
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private void makeGyoumuDivMap() throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeGyoumuDivMap]");
		
		// 業務区分マップ
		this.gyomuDivMap = new HashMap<String, String>();
		
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// コード区分
		whereParam.setValue(JZM0171Constant.CD00912);
		// 適用開始年月日
		whereParam.setValue(super.opeDate);
		// 適用終了年月日
		whereParam.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeGyoumuDivMap][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeZM_M_CD_NM_KANRI_CH_SELECT_005(whereParam.getList().toArray());
		
		// 結果を取得
		JBSbatCommonDBInterface dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		
		
		if(null == dbMap)
		{
			// ログ出力（【最重要】ＤＢ未存在エラー）
			String[] msgParam = new String[]
			{ JBSbatZM_M_CD_NM_KANRI.TABLE_NAME, whereParam.getList().toString() };
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECHB0270CH, msgParam);
		}
		// 結果をマップに設定
		while(dbMap != null)
		{
			// コード区分
			String cdDiv = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
			// コード区分名
			String cdDivNm = dbMap.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			
			this.gyomuDivMap.put(cdDiv, cdDivNm);
			
			dbMap = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][makeGyoumuDivMap][gyomuDivMap=" + gyomuDivMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeGyoumuDivMap]");
	}
	
	/**
	 * 入力情報を項目ごとに桁数で区切り、編集します。
	 * 
	 * @param fileId ファイルID
	 * @param recDiv レコード区分
	 * @param otherInfo その他の情報
	 * @return 編集後入力情報マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> editInMap(String fileId, String recDiv, String otherInfo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editInMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editInMap][recDiv=" + recDiv + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editInMap][otherInfo=" + otherInfo + "]");
		
		// 編集後入力情報マップ
		Map<String, String> editAftInMap = null;
		
		// レコード区分チェック
		// ヘッダレコード
		if (JACStrConst.DATA_KUBUN_HEADER.equals(recDiv))
		{
			editAftInMap = this.editHederMap(fileId, recDiv, otherInfo);
		}
		// データレコード
		else if (JACStrConst.REC_DIV_DATA_CVS_REAL.equals(recDiv))
		{
			editAftInMap = this.editDataMap(fileId, recDiv, otherInfo);
		}
		// エンドレコード
		else if (JACStrConst.DATA_KUBUN_END.equals(recDiv))
		{
			editAftInMap = this.editEndMap(fileId, recDiv, otherInfo);
		}
		// 該当なし
		else
		{
			// エラーコード：ファイル レコード区分 エラー
			this.errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0001;
		}
		
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editInMap][editAftInMap=" + editAftInMap.toString() + "]"):true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editInMap]");
		
		return editAftInMap;
	}

	/**
	 * 入力情報をヘッダレコード用の項目定義でマップに詰め替えて返します。
	 * 
	 * @param fileId ファイルID
	 * @param recDiv レコード区分
	 * @param otherInfo その他の情報
	 * @return 編集後入力情報マップ（ヘッダレコード用）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> editHederMap(String fileId, String recDiv, String otherInfo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editHederMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editHederMap][recDiv=" + recDiv + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editHederMap][otherInfo=" + otherInfo + "]");
		
		// 編集後入力情報マップ（ヘッダレコード用）
		Map<String, String> headerMap = new HashMap<String, String>();
		int idx = 1;
		
		// ファイルID
		headerMap.put(FILE_ID,						fileId);
		// レコード区分
		headerMap.put(REC_DIV,						recDiv);
		// ファイル作成日
		headerMap.put(H_FILE_MAKE_YMD,				otherInfo.substring(idx, idx += H_FILE_MAKE_YMD_LENGTH));
		// ファイル作成時間
		headerMap.put(H_FILE_MAKE_HMS,				otherInfo.substring(idx, idx += H_FILE_MAKE_HMS_LENGTH));
		// ユーザ識別コード
		headerMap.put(H_USER_SKBT_CD,				otherInfo.substring(idx, idx += H_USER_SKBT_CD_LENGTH));
		// 共有VANセンタコード
		headerMap.put(H_VAN_CENTER_CD,				otherInfo.substring(idx, idx += H_VAN_CENTER_CD_LENGTH));
		// ユーザセンタコード
		headerMap.put(H_USER_CENTER_CD,				otherInfo.substring(idx, idx += H_USER_CENTER_CD_LENGTH));
		// 予備
		headerMap.put(H_YOBI, otherInfo.substring(idx, idx += H_YOBI_LENGTH));

		// 退避　ファイル作成日 */
		this.tempFileMakeYmd = headerMap.get(H_FILE_MAKE_YMD);
		
		//退避　ファイル作成時間 */
		this.tempFileMakeHms = headerMap.get(H_FILE_MAKE_HMS);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editHederMap][headerMap=" + headerMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editHederMap]");
		
		return headerMap;
	}

	/**
	 * 入力情報をデータレコード用の項目定義でマップに詰め替えて返します。
	 * 
	 * @param fileId ファイルID
	 * @param recDiv レコード区分
	 * @param otherInfo その他の情報
	 * @return 編集後入力情報マップ（データレコード用）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> editDataMap(String fileId, String recDiv, String otherInfo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editDataMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editDataMap][recDiv=" + recDiv + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editDataMap][otherInfo=" + otherInfo + "]");
		
		// 編集後入力情報マップ（ヘッダレコード用）
		Map<String, String> dataMap = new HashMap<String, String>();
		int idx = 1;
		
		// ファイルID
		dataMap.put(FILE_ID, fileId);
		// レコード区分
		dataMap.put(REC_DIV, recDiv);
		
		// 業務区分
		dataMap.put(D_GYOM_DIV,					otherInfo.substring(idx, idx += D_GYOM_DIV_LENGTH));
		// コンビニコード
		dataMap.put(D_CVS_CD,					otherInfo.substring(idx, idx += D_CVS_CD_LENGTH));
		// 店舗コード
		dataMap.put(D_TENPO_CD,					otherInfo.substring(idx, idx += D_TENPO_CD_LENGTH));
		// コンビニ収納日
		dataMap.put(D_CVS_SHUNO_YMD,			otherInfo.substring(idx, idx += D_CVS_SHUNO_YMD_LENGTH));
		// コンビニ収納時間
		dataMap.put(D_CVS_SHUNO_HM,				otherInfo.substring(idx, idx += D_CVS_SHUNO_HM_LENGTH));
		// コンビニ営業日
		dataMap.put(D_CVS_EIGYO_YMD,			otherInfo.substring(idx, idx += D_CVS_EIGYO_YMD_LENGTH));
		// EAN識別子
		dataMap.put(D_EAN_SKBTS,				otherInfo.substring(idx, idx += D_EAN_SKBTS_LENGTH));
		// EANメーカーコード
		dataMap.put(D_EAN_MAKER_CD,				otherInfo.substring(idx, idx += D_EAN_MAKER_CD_LENGTH));
		// EAN会社コード
		dataMap.put(D_EAN_COMP_CD,				otherInfo.substring(idx, idx += D_EAN_COMP_CD_LENGTH));
		// EAN請求月
		dataMap.put(D_EAN_SEIKY_MON,			otherInfo.substring(idx, idx += D_EAN_SEIKY_MON_LENGTH));
		// EAN請求年
		dataMap.put(D_EAN_SEIKY_YEAR,			otherInfo.substring(idx, idx += D_EAN_SEIKY_YEAR_LENGTH));
		// EAN群番号
		dataMap.put(D_EAN_GUN_NO,				otherInfo.substring(idx, idx += D_EAN_GUN_NO_LENGTH));
		// EAN発行シーケンス
		dataMap.put(D_EAN_HAKKO_SEQ,			otherInfo.substring(idx, idx += D_EAN_HAKKO_SEQ_LENGTH));
		// EAN請求先番号
		dataMap.put(D_EAN_SEIKY_SAKI_NO,		otherInfo.substring(idx, idx += D_EAN_SEIKY_SAKI_NO_LENGTH));
		// EAN再発行区分
		dataMap.put(D_EAN_RE_HAKKO_DIV,			otherInfo.substring(idx, idx += D_EAN_RE_HAKKO_DIV_LENGTH));
		// EAN支払期限日
		dataMap.put(D_EAN_PAY_KIGEN_YMD,		otherInfo.substring(idx, idx += D_EAN_PAY_KIGEN_YMD_LENGTH));
		// EAN印紙フラグ
		dataMap.put(D_EAN_INS_FLG,				otherInfo.substring(idx, idx += D_EAN_INS_FLG_LENGTH));
		// EAN支払金額
		dataMap.put(D_EAN_PAY_AMNT,				otherInfo.substring(idx, idx += D_EAN_PAY_AMNT_LENGTH));
		// EANチェックデジット
		dataMap.put(D_EAN_CHKDIGT,				otherInfo.substring(idx, idx += D_EAN_CHKDIGT_LENGTH));
		// 収納情報予備
		dataMap.put(D_SHUNO_INFO_YOBI,			otherInfo.substring(idx, idx += D_SHUNO_INFO_YOBI_LENGTH));
		// ユーザセンタコード
		dataMap.put(D_USER_CENTER_CD,			otherInfo.substring(idx, idx += D_USER_CENTER_CD_LENGTH));
		// ユーザセンタ別SEQ
		dataMap.put(D_USER_CENTER_BT_SEQ,		otherInfo.substring(idx, idx += D_USER_CENTER_BT_SEQ_LENGTH));
		// 予備
		dataMap.put(D_YOBI,						otherInfo.substring(idx, idx += D_YOBI_LENGTH));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editDataMap][dataMap=" + dataMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editDataMap]");
		
		return dataMap;
	}
	
	/**
	 * 入力情報をエンドレコード用の項目定義でマップに詰め替えて返します。
	 * 
	 * @param fileId ファイルID
	 * @param recDiv レコード区分
	 * @param otherInfo その他の情報
	 * @return 編集後入力情報マップ（エンドレコード用）
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> editEndMap(String fileId, String recDiv, String otherInfo) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editEndMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editEndMap][recDiv=" + recDiv + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editEndMap][otherInfo=" + otherInfo + "]");
		
		// 編集後入力情報マップ（ヘッダレコード用）
		Map<String, String> endMap = new HashMap<String, String>();
		
		int idx = 1;
		
		// ファイルID
		endMap.put(FILE_ID,			fileId);
		
		// レコード区分
		endMap.put(REC_DIV,			recDiv);
		// 総件数
		endMap.put(E_TOTAL_CNT,		otherInfo.substring(idx, idx += E_TOTAL_CNT_LENGTH));
		// 予備
		endMap.put(E_YOBI,			otherInfo.substring(idx, idx += E_YOBI_LENGTH));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editEndMap][endMap=" + endMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editEndMap]");
		
		return endMap;
	}

	/**
	 * 口座振替入金エラーリスト情報を作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return 口座振替入金エラーリスト
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatServiceInterfaceMap makeCvsRealErrListInfo(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeCvsRealErrListInfo]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeCvsRealErrListInfo][editAftInMap="
				+ editAftInMap.toString() + "]"):true;
		
		Map<String, String> outputInfoMap = null;
		
		// レコード区分エラーの場合
		if(JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0001.equals(errCd) || JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0002.equals(errCd))
		{
			// レコード区分エラーまたはレコード区分並び順エラー用出力情報マップ作成
			outputInfoMap = makeRecDivErrInfoMap(editAftInMap);
		}
		// 単項目エラーの場合
		else
		{
			String recDiv = editAftInMap.get(REC_DIV);
			
			// レコード区分ごとに設定項目を変更
			if(JACStrConst.DATA_KUBUN_HEADER.equals(recDiv))
			{
				// ヘッダ用出力情報マップ作成
				outputInfoMap = makeHeaderInfoMap(editAftInMap);
			}
			else if(JACStrConst.REC_DIV_DATA_CVS_REAL.equals(recDiv))
			{
				// データ用出力情報マップ作成
				outputInfoMap = makeDataInfoMap(editAftInMap);
			}
			else if(JACStrConst.DATA_KUBUN_END.equals(recDiv))
			{
				// トレーラ用出力情報マップ作成
				outputInfoMap = makeEndInfoMap(editAftInMap);
			}
		}
		
		// 口座振替入金エラーリスト情報作成
		JBSbatServiceInterfaceMap cvsRealErrListInfo = this.createCvsRealErrListInfo(outputInfoMap);
		
		// 囲み文字付加
		cvsRealErrListInfo.setMap(JCHbatSeikyKaknoBusinessUtil.quote(cvsRealErrListInfo.getMap(), JACStrConst.DOUBLE_QUOTE, JACStrConst.DOUBLE_QUOTE));
		
		// 出力フラグON
		cvsRealErrListInfo.setOutFlg(true);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeCvsRealErrListInfo][cvsRealErrListInfo=" 
				+ cvsRealErrListInfo.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeCvsRealErrListInfo]");
		
		return cvsRealErrListInfo;
	}

	/**
	 * レコード区分エラーまたはレコード区分並び順エラー用の出力情報マップを作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return レコード区分エラーまたはレコード区分並び順エラー用の出力情報マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> makeRecDivErrInfoMap(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeRecDivErrInfoMap]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeRecDivErrInfoMap][editAftInMap="
				+ editAftInMap.toString() + "]"):true;
		
		Map<String, String> recDivErrInfoMap = new HashMap<String, String>();
		
		// エラーレコードデータ情報編集
		String errRecData = JACStrConst.KARA_MOJI;
		String fileId = JACStrConst.KARA_MOJI;
		String recDiv = JACStrConst.KARA_MOJI;;
		if(editAftInMap != null)
		{
			// エラー内容
			errRecData = editAftInMap.get(JBSbatCHIFE019.DATE);
			// ファイルID
			fileId = editAftInMap.get(JBSbatCHIFE019.FILE_ID);
			// レコード区分
			recDiv = String.valueOf(editAftInMap.get(JBSbatCHIFE019.DATE).charAt(0));
		}
		
		// 出力項目設定
		// ファイルID
		recDivErrInfoMap.put(JBSbatCHIFE020.FILE_ID,			fileId);
		// エラー種別
		recDivErrInfoMap.put(JBSbatCHIFE020.ERR_SBT,			JACStrConst.ERR_KUBUN_ERR);
		// レコード区分
		recDivErrInfoMap.put(JBSbatCHIFE020.REC_DIV,			recDiv);
		// レコード内容
		recDivErrInfoMap.put(JBSbatCHIFE020.REC_NAIYO,			errRecData);
		// エラー内容
		recDivErrInfoMap.put(JBSbatCHIFE020.ERR_NAIYO,			this.errNaiyoMap.get(this.errCd));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeRecDivErrInfoMap][recDivErrInfoMap=" + recDivErrInfoMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeRecDivErrInfoMap]");
		
		return recDivErrInfoMap;
	}

	/**
	 * ヘッダレコード用の出力情報マップを作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return ヘッダレコード用の出力情報マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> makeHeaderInfoMap(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeHeaderInfoMap]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeHeaderInfoMap][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		Map<String, String> headerInfoMap = new HashMap<String, String>();
		
		// 出力項目設定
		// ファイルID
		headerInfoMap.put(JBSbatCHIFE020.FILE_ID,					editAftInMap.get(FILE_ID));
		// エラー種類
		headerInfoMap.put(JBSbatCHIFE020.ERR_SBT,					JACStrConst.ERR_KUBUN_ERR);
		// エラー内容
		headerInfoMap.put(JBSbatCHIFE020.ERR_NAIYO,					this.errNaiyoMap.get(this.errCd));
		// ヘッダ＿レコード区分
		headerInfoMap.put(JBSbatCHIFE020.HEADER_REC_DIV,			editAftInMap.get(REC_DIV));
		// ファイル作成日
		headerInfoMap.put(JBSbatCHIFE020.FILE_SAKSEI_YMD,			editAftInMap.get(H_FILE_MAKE_YMD));
		// ファイル作成時間
		headerInfoMap.put(JBSbatCHIFE020.FILE_SAKSEI_HM,			editAftInMap.get(H_FILE_MAKE_HMS));
		// ユーザ識別コード
		headerInfoMap.put(JBSbatCHIFE020.USER_SKBT_CD,				editAftInMap.get(H_USER_SKBT_CD));
		// 共用VANセンタコード
		headerInfoMap.put(JBSbatCHIFE020.CMN_VAN_CENTER_CD,			editAftInMap.get(H_VAN_CENTER_CD));
		// ユーザセンタコード
		headerInfoMap.put(JBSbatCHIFE020.HEADER_USER__CENTER_CD,	editAftInMap.get(H_USER_CENTER_CD));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeHeaderInfoMap][headerInfoMap=" + headerInfoMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeHeaderInfoMap]");
		
		return headerInfoMap;
	}

	/**
	 * データレコード用の出力情報マップを作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return データレコード用の出力情報マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> makeDataInfoMap(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDataInfoMap]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeDataInfoMap][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		Map<String, String> dataInfoMap = new HashMap<String, String>();
		
		// 出力情報を設定
		
		// ファイルID
		dataInfoMap.put(JBSbatCHIFE020.FILE_ID,					editAftInMap.get(FILE_ID));
		// エラー種別
		dataInfoMap.put(JBSbatCHIFE020.ERR_SBT,					JACStrConst.ERR_KUBUN_ERR);
		// エラー内容
		dataInfoMap.put(JBSbatCHIFE020.ERR_NAIYO,				this.errNaiyoMap.get(this.errCd));
		// データ＿レコード区分
		dataInfoMap.put(JBSbatCHIFE020.DATA_REC_DIV,			editAftInMap.get(REC_DIV));
		// データ＿業務区分
		dataInfoMap.put(JBSbatCHIFE020.WORK_DIV,				editAftInMap.get(D_GYOM_DIV));
		// コンビニコード
		dataInfoMap.put(JBSbatCHIFE020.CVSTORE_CD,				editAftInMap.get(D_CVS_CD));
		// 店舗コード
		dataInfoMap.put(JBSbatCHIFE020.TEN_CD,					editAftInMap.get(D_TENPO_CD));
		// コンビニ収納日
		dataInfoMap.put(JBSbatCHIFE020.CVSTORE_KAKNO_YMD,		editAftInMap.get(D_CVS_SHUNO_YMD));
		// コンビニ収納時間
		dataInfoMap.put(JBSbatCHIFE020.CVSTORE_KAKNO_HMS,		editAftInMap.get(D_CVS_SHUNO_HM));
		// 識別子
		dataInfoMap.put(JBSbatCHIFE020.SKBT,					editAftInMap.get(D_EAN_SKBTS));
		// メーカーコード
		dataInfoMap.put(JBSbatCHIFE020.MAKER_CD,				editAftInMap.get(D_EAN_MAKER_CD));
		// 会社コード
		dataInfoMap.put(JBSbatCHIFE020.COMP_CD,					editAftInMap.get(D_EAN_COMP_CD));
		
		// EAN請求年＋EAN請求月（yyMM）をyyyyMMに変換
		String seikyYm = editSeikyYm(editAftInMap.get(D_EAN_SEIKY_YEAR).concat(editAftInMap.get(D_EAN_SEIKY_MON)), DAY_FORMAT_CHG_YYYYMM);
		
		// 請求年月
		dataInfoMap.put(JBSbatCHIFE020.SEIKY_YM,				seikyYm);
		
		// 群番号
		dataInfoMap.put(JBSbatCHIFE020.GUN_NO,					editAftInMap.get(D_EAN_GUN_NO));
		// 発行シーケンス
		dataInfoMap.put(JBSbatCHIFE020.HAKKO_SEQ,				editAftInMap.get(D_EAN_HAKKO_SEQ));
		// 請求先番号
		dataInfoMap.put(JBSbatCHIFE020.SEIKY_NO,				editAftInMap.get(D_EAN_SEIKY_SAKI_NO));
		// 再発行区分
		dataInfoMap.put(JBSbatCHIFE020.RE_HAKKO_DIV,			editAftInMap.get(D_EAN_RE_HAKKO_DIV));
		// 支払期限日
		dataInfoMap.put(JBSbatCHIFE020.PAY_KIGEN_YMD,			editAftInMap.get(D_EAN_PAY_KIGEN_YMD));
		// 印紙フラグ
		dataInfoMap.put(JBSbatCHIFE020.INSHI_FLG,				editAftInMap.get(D_EAN_INS_FLG));
		// 支払金額
		dataInfoMap.put(JBSbatCHIFE020.PAY_AMNT,				JPCUtilCommon.formatNumber(editAftInMap.get(D_EAN_PAY_AMNT)));
		// チェックデジット
		dataInfoMap.put(JBSbatCHIFE020.CHKDGT,					editAftInMap.get(D_EAN_CHKDIGT));
		// ユーザセンタコード
		dataInfoMap.put(JBSbatCHIFE020.DATA_USER_CENTER_CD,		editAftInMap.get(D_USER_CENTER_CD));
		// ユーザセンタ別SEQ
		dataInfoMap.put(JBSbatCHIFE020.USER_CENTER_SEQ,			editAftInMap.get(D_USER_CENTER_BT_SEQ));
	
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDataInfoMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeDataInfoMap][dataInfoMap=" + dataInfoMap.toString() + "]");
		
		return dataInfoMap;
	}

	/**
	 * エンドレコード用の出力情報マップを作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return エンドレコード用の出力情報マップ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private Map<String, String> makeEndInfoMap(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeEndInfoMap]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeEndInfoMap][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		Map<String, String> endInfoMap = new HashMap<String, String>();
		
		// 出力情報を設定
		
		// ファイルID
		endInfoMap.put(JBSbatCHIFE020.FILE_ID,				editAftInMap.get(FILE_ID));
		// エラー種類
		endInfoMap.put(JBSbatCHIFE020.ERR_SBT,				JACStrConst.ERR_KUBUN_ERR);
		// エラー内容
		endInfoMap.put(JBSbatCHIFE020.ERR_NAIYO,			this.errNaiyoMap.get(this.errCd));
		// エンド＿レコード区分
		endInfoMap.put(JBSbatCHIFE020.END_REC_DIV,			editAftInMap.get(REC_DIV));
		// 総レコード件数
		endInfoMap.put(JBSbatCHIFE020.TTL_REC_CNT,			JPCUtilCommon.formatNumber(editAftInMap.get(E_TOTAL_CNT)));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeEndInfoMap]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeEndInfoMap][endInfoMap=" + endInfoMap.toString() + "]");
		
		return endInfoMap;
	}

	/**
	 * コンビニリアルエラーリスト情報を作成します。
	 * 
	 * @param outputInfoMap 出力情報マップ
	 * @return コンビニリアルエラーリスト情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatServiceInterfaceMap createCvsRealErrListInfo(Map<String, String> outputInfoMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][createCvsRealErrListInfo]");
		assert outputInfoMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][createCvsRealErrListInfo][editAftInMap=" 
				+ outputInfoMap.toString() + "]"):true;
		
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		
		// ファイルID
		outMap.set(JBSbatCHIFE020.FILE_ID,					outputInfoMap.get(JBSbatCHIFE020.FILE_ID));
		// エラー種別
		outMap.set(JBSbatCHIFE020.ERR_SBT,					outputInfoMap.get(JBSbatCHIFE020.ERR_SBT));
		// エラー内容
		outMap.set(JBSbatCHIFE020.ERR_NAIYO,				outputInfoMap.get(JBSbatCHIFE020.ERR_NAIYO));
		// ヘッダ＿レコード区分
		outMap.set(JBSbatCHIFE020.HEADER_REC_DIV,			outputInfoMap.get(JBSbatCHIFE020.HEADER_REC_DIV));
		// ヘッダ＿ファイル作成日
		outMap.set(JBSbatCHIFE020.FILE_SAKSEI_YMD,			outputInfoMap.get(JBSbatCHIFE020.FILE_SAKSEI_YMD));
		// ヘッダ＿ファイル作成時間
		outMap.set(JBSbatCHIFE020.FILE_SAKSEI_HM,			outputInfoMap.get(JBSbatCHIFE020.FILE_SAKSEI_HM));
		// ヘッダ＿ユーザ識別コード
		outMap.set(JBSbatCHIFE020.USER_SKBT_CD,				outputInfoMap.get(JBSbatCHIFE020.USER_SKBT_CD));
		// ヘッダ＿共有VANセンタコード
		outMap.set(JBSbatCHIFE020.CMN_VAN_CENTER_CD,		outputInfoMap.get(JBSbatCHIFE020.CMN_VAN_CENTER_CD));
		// ヘッダ＿ユーザセンタコード
		outMap.set(JBSbatCHIFE020.HEADER_USER__CENTER_CD,	outputInfoMap.get(JBSbatCHIFE020.HEADER_USER__CENTER_CD));
		// データ＿レコード区分
		outMap.set(JBSbatCHIFE020.DATA_REC_DIV,				outputInfoMap.get(JBSbatCHIFE020.DATA_REC_DIV));
		// データ＿業務区分
		outMap.set(JBSbatCHIFE020.WORK_DIV,					outputInfoMap.get(JBSbatCHIFE020.WORK_DIV));
		// データ＿コンビニコード
		outMap.set(JBSbatCHIFE020.CVSTORE_CD,				outputInfoMap.get(JBSbatCHIFE020.CVSTORE_CD));
		// データ＿店舗コード
		outMap.set(JBSbatCHIFE020.TEN_CD,					outputInfoMap.get(JBSbatCHIFE020.TEN_CD));
		// データ＿コンビニ収納日
		outMap.set(JBSbatCHIFE020.CVSTORE_KAKNO_YMD,		outputInfoMap.get(JBSbatCHIFE020.CVSTORE_KAKNO_YMD));
		// データ＿コンビニ収納時間
		outMap.set(JBSbatCHIFE020.CVSTORE_KAKNO_HMS,		outputInfoMap.get(JBSbatCHIFE020.CVSTORE_KAKNO_HMS));
		// データ＿識別子
		outMap.set(JBSbatCHIFE020.SKBT,						outputInfoMap.get(JBSbatCHIFE020.SKBT));
		// データ＿メーカーコード
		outMap.set(JBSbatCHIFE020.MAKER_CD,					outputInfoMap.get(JBSbatCHIFE020.MAKER_CD));
		// データ＿会社コード
		outMap.set(JBSbatCHIFE020.COMP_CD,					outputInfoMap.get(JBSbatCHIFE020.COMP_CD));
		// データ＿請求年月
		outMap.set(JBSbatCHIFE020.SEIKY_YM,					outputInfoMap.get(JBSbatCHIFE020.SEIKY_YM));
		// データ＿群番号
		outMap.set(JBSbatCHIFE020.GUN_NO,					outputInfoMap.get(JBSbatCHIFE020.GUN_NO));
		// データ＿発行シーケンス
		outMap.set(JBSbatCHIFE020.HAKKO_SEQ,				outputInfoMap.get(JBSbatCHIFE020.HAKKO_SEQ));
		// データ＿請求先番号
		outMap.set(JBSbatCHIFE020.SEIKY_NO,					outputInfoMap.get(JBSbatCHIFE020.SEIKY_NO));
		// データ＿再発行区分
		outMap.set(JBSbatCHIFE020.RE_HAKKO_DIV,				outputInfoMap.get(JBSbatCHIFE020.RE_HAKKO_DIV));
		// データ＿支払期限日
		outMap.set(JBSbatCHIFE020.PAY_KIGEN_YMD,			outputInfoMap.get(JBSbatCHIFE020.PAY_KIGEN_YMD));
		// データ＿印紙フラグ
		outMap.set(JBSbatCHIFE020.INSHI_FLG,				outputInfoMap.get(JBSbatCHIFE020.INSHI_FLG));
		// データ＿支払金額
		outMap.set(JBSbatCHIFE020.PAY_AMNT,					outputInfoMap.get(JBSbatCHIFE020.PAY_AMNT));
		// データ＿チェックデジット
		outMap.set(JBSbatCHIFE020.CHKDGT,					outputInfoMap.get(JBSbatCHIFE020.CHKDGT));
		// データ＿ユーザセンタコード
		outMap.set(JBSbatCHIFE020.DATA_USER_CENTER_CD,		outputInfoMap.get(JBSbatCHIFE020.DATA_USER_CENTER_CD));
		// データ＿ユーザセンタ別SEQ
		outMap.set(JBSbatCHIFE020.USER_CENTER_SEQ,			outputInfoMap.get(JBSbatCHIFE020.USER_CENTER_SEQ));
		// レコード区分
		outMap.set(JBSbatCHIFE020.REC_DIV,					outputInfoMap.get(JBSbatCHIFE020.REC_DIV));
		// レコード内容
		outMap.set(JBSbatCHIFE020.REC_NAIYO,				outputInfoMap.get(JBSbatCHIFE020.REC_NAIYO));
		// エンド＿レコード区分
		outMap.set(JBSbatCHIFE020.END_REC_DIV,				outputInfoMap.get(JBSbatCHIFE020.END_REC_DIV));
		// エンド＿総レコード件数
		outMap.set(JBSbatCHIFE020.TTL_REC_CNT,				outputInfoMap.get(JBSbatCHIFE020.TTL_REC_CNT));
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][createCvsRealErrListInfo][outMap=" + outMap.toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][createCvsRealErrListInfo]");
		
		return outMap;
	}

	/**
	 * データ順序のチェックを行います。
	 * 
	 * @param recDiv レコード区分
	 * @return エラーコード（エラーなしの場合、""（空））
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String chkDataJun(String recDiv) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][chkDataJun]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][chkDataJun][recDiv=" + recDiv + "]");
		
		// エラーコード
		String errCd = ERR_CD_NORMAL;
		
		// ヘッダ
		if(JACStrConst.DATA_KUBUN_HEADER.equals(recDiv))
		{
			// 前回レコード区分がnull（初回）またはエンド以外
			if(!(this.befRecDiv == null || JACStrConst.DATA_KUBUN_END.equals(this.befRecDiv)))
			{
				errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0002;
			}
		}
		// データ、エンド
		else if(JACStrConst.REC_DIV_DATA_CVS_REAL.equals(recDiv) || JACStrConst.DATA_KUBUN_END.equals(recDiv))
		{
			// 前回レコード区分がヘッダまたはデータ以外
			if(!(JACStrConst.DATA_KUBUN_HEADER.equals(this.befRecDiv) || JACStrConst.REC_DIV_DATA_CVS_REAL.equals(this.befRecDiv)))
			{
				errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0002;
			}
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][chkDataJun][errCd=" + errCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][chkDataJun]");
		
		return errCd;
	}

	/**
	 * データレコードチェックを実施し、エラーであった場合はエラコードを返します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return エラーコード（エラーなしの場合、""（空））
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String checkRec(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkRec]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkRec][editAftInMap=" + editAftInMap.toString() + "]"):true;
		
		// レコード区分
		String recDiv = editAftInMap.get(REC_DIV);
		
		if (JACStrConst.DATA_KUBUN_HEADER.equals(recDiv))
		{
			this.errCd = checkHeaderRec(editAftInMap);
		}
		else if (JACStrConst.REC_DIV_DATA_CVS_REAL.equals(recDiv))
		{
			this.errCd = checkDataRec(editAftInMap);
		}
		else if (JACStrConst.DATA_KUBUN_END.equals(recDiv))
		{
			this.errCd = checkEndRec(editAftInMap);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkRec][errCd=" + errCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkRec]");
		
		return errCd;
	}

	/**
	 * ヘッダレコードチェックを実施し、エラーであった場合はエラーコードを返します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return エラーコード（エラーなしの場合、""（空））
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String checkHeaderRec(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkHeaderRec]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkHeaderRec][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		// エラーコード
		String errCd = ERR_CD_NORMAL;
		// ファイル作成日
		String fileMakeYmd = editAftInMap.get(H_FILE_MAKE_YMD);
		
		// ファイル作成日が日付として妥当ではない
		if (!JBSbatDateUtil.checkDate(fileMakeYmd, YYYYMMDD_LENGTH))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0003;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec]");
			
			return errCd;
		}
		// ユーザ識別コード
		String userSkbtCd = editAftInMap.get(H_USER_SKBT_CD);
		
		// ユーザ識別コードがユーザ識別コードに含まれない場合
		if(!this.userSkbtCdMap.containsValue(userSkbtCd))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0004;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec]");
			
			return errCd;
		}
		
		// 共用VANセンタコード
		String vanCenterCd = editAftInMap.get(H_VAN_CENTER_CD);
		
		// 共有VANセンタコードが"01"（一号機）でも"02"（二号機）でもない場合
		if(!vanCenterCd.equals(JACStrConst.VAN_CENTER_CD_01) && !vanCenterCd.equals(JACStrConst.VAN_CENTER_CD_02))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0005;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec]");
			
			return errCd;
		}
		
		// ユーザセンタコード
		String userCenterCd = editAftInMap.get(H_USER_CENTER_CD);
		
		// ユーザセンタコードが"01"（ユーザセンター識別コード）でない場合
		if(!userCenterCd.equals(JACStrConst.USER_CENTER_CD_SKBT))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0006;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec]");
			
			return errCd;
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec][errCd=" + errCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkHeaderRec]");
		
		return errCd;
	}

	/**
	 * データレコードチェックを実施し、エラーであった場合はエラーコードを返します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return エラーコード（エラーなしの場合、""（空））
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String checkDataRec(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkDataRec]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkDataRec][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		// エラーコード
		String errCd = ERR_CD_NORMAL;
		
		// 業務区分が未存在
		String gyoumDiv = editAftInMap.get(D_GYOM_DIV);
		if (!this.gyomuDivMap.containsKey(gyoumDiv))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0007;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// コンビニ収納日が日付として妥当ではない
		String cvsShunoYmd = editAftInMap.get(D_CVS_SHUNO_YMD);
		if(!JBSbatDateUtil.checkDate(cvsShunoYmd, YYYYMMDD_LENGTH))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0008;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		else
		{
			// コンビニ収納日がバッチ運用日の次の日を超えている場合
			if (cvsShunoYmd.compareTo(JPCUtilCommon.addDay(super.opeDate, 1)) > 0)
			{
				errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0009;
				
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
				
				return errCd;
			}
		}
		
		// コンビニ収納時間＋秒数（000）
		String cvsShunoHm = editAftInMap.get(D_CVS_SHUNO_HM).concat(SECOND_000);
		// コンビニ収納時間が時分として妥当ではない
		if(!JBSbatDateUtil.checkTime(cvsShunoHm, HHMMSSS_LENGTH))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0010;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// EANメーカーコード
		String eanMakerCd = editAftInMap.get(D_EAN_MAKER_CD);
		
		// EANメーカーコードが未存在
		if (!this.eanMakerCdMap.containsValue(eanMakerCd))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0011;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// EAN請求年＋EAN請求月（yyMM）をyyyyMMに変換
		String eanSeikyYm = editSeikyYm(editAftInMap.get(D_EAN_SEIKY_YEAR).concat(editAftInMap.get(D_EAN_SEIKY_MON)), DAY_FORMAT_CHG_YYYYMM);
		// EAN請求年、EAN請求月が日付として妥当でない
		if(!JBSbatDateUtil.checkDate(eanSeikyYm, YYYYMM_LENGTH))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0012;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		// EAN会社コード
		String eanCompCd = editAftInMap.get(D_EAN_COMP_CD);
		
		// EAN会社コードが未存在
		if (!this.eanCompCdMap.containsValue(eanCompCd))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0013;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// ANK-4206-00-00 DEL START
//		// EAN群番号が"6"でない
//		String eanGunNo = editAftInMap.get(D_EAN_GUN_NO);
//		if(!eanGunNo.equals(EAN_GUN_NO))
//		{
//			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0014;
//			
//			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
//			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
//			
//			return errCd;
//		}
		// ANK-4206-00-00 DEL END
		
		// EAN発行シーケンスが数字以外
		String eanHakkoSeq = editAftInMap.get(D_EAN_HAKKO_SEQ);
		if (!JBSbatCheckUtil.invoke(eanHakkoSeq, new String[]{JACStrConst.MOJI_HNKK_SUJI_ONE}))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0015;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// EAN請求先番号が数字以外
		String eanSeikySakiNo = editAftInMap.get(D_EAN_SEIKY_SAKI_NO);
		if (!JBSbatCheckUtil.invoke(eanSeikySakiNo, new String[]{JACStrConst.MOJI_HNKK_SUJI_ONE}))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0016;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// EAN支払金額が数字以外
		String eanPayAmnt = editAftInMap.get(D_EAN_PAY_AMNT);
		if (eanPayAmnt != null) { //チェック前に空白トリムを行う
			eanPayAmnt = eanPayAmnt.trim();
		}
		if (!JBSbatCheckUtil.invoke(eanPayAmnt, new String[]{"hannkakusuuji1"}))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0017;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		
		// コンビニエンスストア検索
		JBSbatCommonDBInterface cvsInfo = selectCvstoreINfo(editAftInMap.get(D_CVS_CD));
		
		if(cvsInfo == null)
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0019;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
			
			return errCd;
		}
		// コンビニエンスストアコード退避
		this.tempCvsCd = cvsInfo.getString(JBSbatCH_M_CVSTORE.CVSTORE_CD);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec][errCd=" + errCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkDataRec]");
		
		return errCd;
	}

	/**
	 * エンドレコードチェックを実施し、エラーであった場合はエラーコードを返します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @return エラーコード（エラーなしの場合、""（空））
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String checkEndRec(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkTrailerRec]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkTrailerRec][editAftInMap=" 
				+ editAftInMap.toString() + "]"):true;
		
		// エラーコード
		String errCd = ERR_CD_NORMAL;
		
		// 合計件数
		if (this.recCnt != Long.parseLong(editAftInMap.get(E_TOTAL_CNT)))
		{
			errCd = JACStrConst.WAKPARA_CH_CVSRAL_NKIN_E0018;
			
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkTrailerRec][errCd=" + errCd + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkTrailerRec]");
			
			return errCd;
		}
		
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkTrailerRec][errCd=" + errCd + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkTrailerRec]");
		
		return errCd;
	}

	/**
	 * コンビニエンスストアスキーマより、コンビニエンスストア情報を取得します。
	 * 
	 * @param cvsCd コンビニエンスストアコード
	 * @return JBSbatCommonDBInterface 検索結果
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatCommonDBInterface selectCvstoreINfo(String cvsCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectCvstoreINfo]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][selectCvstoreINfo][cvsCd=" + cvsCd + "]");
		
		// 条件値
		JBSbatCommonDBInterface whereParam = new JBSbatCommonDBInterface();
		
		// コンビニエンスストア．ＣＰコンビニコード
		whereParam.setValue(cvsCd.substring(0, 5));
		// コンビニエンスストア．適用開始年月日
		whereParam.setValue(super.opeDate);
		// コンビニエンスストア．適用終了年月日
		whereParam.setValue(super.opeDate);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][selectBankInfo][whereParam=" + whereParam.getList().toString() + "]");
		
		// SQL実行
		executeCH_M_CVSTORE_CH_SELECT_001(whereParam.getList().toArray());
		
		// 取得結果判定
		JBSbatCommonDBInterface selectMap = db_CH_M_CVSTORE.selectNext();
		
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectBankInfo][selectMap="
				+ selectMap.getMap().toString() + "]"):true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][selectBankInfo]");
		
		return selectMap;
	}

	/**
	 * 請求情報有無チェック
	 * @param  editAftInMap 入力情報
	 * @return String 請求番号
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public String checkSkyUmu(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkSkyUmu]");

		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();

		// 請求年月
		paramList.setValue(editSeikyYm(editAftInMap.get(D_EAN_SEIKY_YEAR).concat(editAftInMap.get(D_EAN_SEIKY_MON)), DAY_FORMAT_CHG_YYYYMM));
		// 請求先番号
		paramList.setValue(editAftInMap.get(D_EAN_SEIKY_SAKI_NO));
		// 群番号＋発行シーケンス
		paramList.setValue(editAftInMap.get(D_EAN_GUN_NO).concat(editAftInMap.get(D_EAN_HAKKO_SEQ)));

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][checkSkyUmu][paramList=" + paramList.getList().toString() + "]");		

		executeCH_T_SEIKY_CH_SELECT_007(paramList.getList().toArray());
		JBSbatCommonDBInterface selectMap = db_CH_T_SEIKY.selectNext(); 
		// 請求番号
		String seikyNo = JACStrConst.KARA_MOJI;
		// 取得結果判定
		if (selectMap != null)
		{
			seikyNo = selectMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO);
		}
		
		assert selectMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkSkyUmu][selectMap=" 
				+ selectMap.getMap().toString() + "]"):true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkSkyUmu]");
		return seikyNo;

	}
	
	/**
	 * 請求契約情報存在チェック
	 * @param  resultMap 入力情報
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	public String checkSkyKeiChk(Map<String, String> editAftInMap) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][checkSkyKeiChk]");

		String seikyKeiUmu = JACStrConst.KARA_MOJI;
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		
		// 請求先番号
		paramList.setValue(editAftInMap.get(D_EAN_SEIKY_SAKI_NO));
		// 請求契約.予約適用年月日
		paramList.setValue(super.opeDate);

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][checkSkyKeiChk][paramList=" + paramList.getList().toString() + "]");		

		executeKK_T_SEIKY_KEI_CH_SELECT_013(paramList.getList().toArray());
		// 結果を取得
		JBSbatCommonDBInterface dbMap =  db_KK_T_SEIKY_KEI.selectNext();
		if(dbMap == null)
		{
			// 取得できなかった場合、'0'を設定
			seikyKeiUmu = SEIKY_KEI_UMU_NASI;
		}
		else
		{
			seikyKeiUmu = SEIKY_KEI_UMU_ARI;
		}
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][checkSkyKeiChk]");
		return seikyKeiUmu;
	}

	
	/**
	 * コンビニ仮入金データを作成します。
	 * 
	 * @param editAftInMap 編集後入力情報マップ
	 * @param seikyNo 請求番号
	 * @param seikyKeiUmu 請求契約存在有無
	 * @return コンビニ仮入金データ
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private JBSbatServiceInterfaceMap makeCvsKariNyukinInfo(Map<String, String> editAftInMap, String seikyNo, String seikyKeiUmu) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKhriRsltChgInfo]");
		assert editAftInMap != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKhriRsltChgInfo][editAftInMap="
				+ editAftInMap.toString() + "]"):true;
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeKhriRsltChgInfo][seikyNo=" + seikyNo + "]"):true;
		
		// コンビニ仮入金データ
		JBSbatServiceInterfaceMap cvsKariNyukinInfo = new JBSbatServiceInterfaceMap();
		
		// 出力項目設定
		// 請求契約番号
		cvsKariNyukinInfo.set(JBSbatCHIFM043.SEIKY_KEI_NO,					editAftInMap.get(D_EAN_SEIKY_SAKI_NO));
		// 請求年月
		cvsKariNyukinInfo.set(JBSbatCHIFM043.SEIKY_YM,						editSeikyYm(editAftInMap.get(D_EAN_SEIKY_YEAR).concat(editAftInMap.get(D_EAN_SEIKY_MON)), DAY_FORMAT_CHG_YYYYMM));
		// 請求番号
		cvsKariNyukinInfo.set(JBSbatCHIFM043.SEIKY_NO,						seikyNo);
		// 請求発行シーケンス
		cvsKariNyukinInfo.set(JBSbatCHIFM043.SKS_HAKKO_SEQ,					JPCUtilCommon.fillZero(editAftInMap.get(D_EAN_HAKKO_SEQ), 2, false));
		// 入金経路コード
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用入金経路コードを取得
			cvsKariNyukinInfo.set(JBSbatCHIFM043.NYUKIN_ROUTE_CD,				this.nyukinRouteCdMap.get(JACStrConst.WORKID_NKIN_ROUTE_CD_CVT));
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			cvsKariNyukinInfo.set(JBSbatCHIFM043.NYUKIN_ROUTE_CD,				this.nyukinRouteCdMap.get(JACStrConst.WORKID_NKIN_ROUTE_CD_CVS));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		
		// 収納機関コード
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合はさくら用収納機関コードを取得
			// メーカーコードに応じて収納機関コードを分ける
			if( this.eanMakerCdMap.get(JACStrConst.WAKPARA_CH_MAKER_RCU_SAKURA).equals( editAftInMap.get(D_EAN_MAKER_CD) ) )
			{
				// リアル・顧客
				cvsKariNyukinInfo.set(JBSbatCHIFM043.SHUNOKIKAN_CD,			this.shunoKikanCdMap.get(JACStrConst.WORKID_SHUNOKIKAN_CD_RCU));
			}
			else if( this.eanMakerCdMap.get(JACStrConst.WAKPARA_CH_MAKER_RCO_SAKURA).equals( editAftInMap.get(D_EAN_MAKER_CD) ) )
			{
				// リアル・企業
				cvsKariNyukinInfo.set(JBSbatCHIFM043.SHUNOKIKAN_CD,			this.shunoKikanCdMap.get(JACStrConst.WORKID_SHUNOKIKAN_CD_RCO));
			}
			// 上記以外はチェックで止まるので想定不要
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			cvsKariNyukinInfo.set(JBSbatCHIFM043.SHUNOKIKAN_CD,				this.shunoKikanCdMap.get(JACStrConst.WORKID_SHUNOKIKAN_CD_CVS));
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		
		
		// 収納年月日
// ANK-3838-00-00対応 20201112 星野 ADD START
		if( SAKURA_KCS.equals(freeItems[0]) )
		{
			// さくらＫＣＳの場合は運用日付ではなく「コンビニ収納日」を設定
			cvsKariNyukinInfo.set(JBSbatCHIFM043.OUT_ORG_SHUNO_YMD,				editAftInMap.get(D_CVS_SHUNO_YMD));
		}
		else
		{
// ANK-3838-00-00対応 20201112 星野 ADD END
			cvsKariNyukinInfo.set(JBSbatCHIFM043.OUT_ORG_SHUNO_YMD,				super.opeDate);
// ANK-3838-00-00対応 20201112 星野 ADD START
		}
// ANK-3838-00-00対応 20201112 星野 ADD END
		// 入金額
		cvsKariNyukinInfo.set(JBSbatCHIFM043.NYUKIN_AMNT,					editAftInMap.get(D_EAN_PAY_AMNT));
		// 領収年月日
		cvsKariNyukinInfo.set(JBSbatCHIFM043.RECEIPT_YMD,					editAftInMap.get(D_CVS_SHUNO_YMD));
		// 領収時分秒
		cvsKariNyukinInfo.set(JBSbatCHIFM043.RECEIPT_HMS,					editAftInMap.get(D_CVS_SHUNO_HM));
		// 入金処理済フラグ
		cvsKariNyukinInfo.set(JBSbatCHIFM043.NYUKIN_SYRZM_FLG,				JACStrConst.SPACE_1);
		// コンビニエンスストアコード
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_CD,					this.tempCvsCd);
		// コンビニ受付店コード
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_UK_TEN_CD,				editAftInMap.get(D_TENPO_CD).substring(1));
		// コンビニリアル業務区分コード
		cvsKariNyukinInfo.set(JBSbatCHIFM043.WORK_DIV,						editAftInMap.get(D_GYOM_DIV));
		// コンビニリアル速報通知年月日
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_YMD,	this.tempFileMakeYmd);
		// コンビニリアル速報通知時分秒
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_REAL_SOKHO_TCH_HMS,	this.tempFileMakeHms);
		// コンビニリアル速報処理済フラグ
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVS_REAL_SOKHO_SYRZM_FLG,		JACStrConst.CVS_REAL_SOKHO_SYRZM_FLG_MI);
		// コンビニデータ種別
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_DATA_SBT,				JACStrConst.CVS_DATA_SBT_REAL_SKHO);
		// コンビニ収納代行会社
		cvsKariNyukinInfo.set(JBSbatCHIFM043.CVSTORE_KAKNO_DAIKO_COMP,		editAftInMap.get(D_EAN_MAKER_CD));
		// 請求契約存在有無
		cvsKariNyukinInfo.set(JBSbatCHIFM043.SEIKY_KEI_UMU,					seikyKeiUmu);
		// 出力フラグON
		cvsKariNyukinInfo.setOutFlg(true);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKhriRsltChgInfo][cvsKariNyukinInfo=" + cvsKariNyukinInfo.getMap().toString() + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeKhriRsltChgInfo]");
		
		
		return cvsKariNyukinInfo;
	}

	/**
	 * 日付に年（yyyy形式）を付加します。
	 * 
	 * @param befDate 編集前日付(yyMM形式またはMMdd形式)
	 * @param chgCd 日付書式変換コード（1：yyyyMM形式、2：yyyyMMdd形式）
	 * @return 編集後日付(yyyyMM形式またはyyyyMMdd形式)
	 * @throws Exception 業務サービス内で発生した例外全般
	 */
	private String editSeikyYm(String befDate, String chgCd) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editSeikyYm]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editSeikyYm][befDate=" + befDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][editSeikyYm][chgCd=" + chgCd + "]");
		
		// 編集後日付
		String aftDate = null;
		
		// yyMM形式からyyyyMM形式に変換
		if(DAY_FORMAT_CHG_YYYYMM.equals(chgCd))
		{
			// 年（yyyy形式）の先頭２桁
			String yearTop2Length = super.opeDate.substring(0, 2);
			aftDate = yearTop2Length + befDate;
			
		}
		// mmDD形式からyyyyMMdd形式に変換
		else if(DAY_FORMAT_CHG_YYYYMMDD.equals(chgCd))
		{
			// 年（yyyy形式）
			String year = super.opeDate.substring(0, 4);
			aftDate = year + befDate;
			
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editSeikyYm][aftDate=" + aftDate + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][editSeikyYm]");
		
		return aftDate;
	}
	
	/**▲▲▲▲▲▲メソッド追加  終了▲▲▲▲▲▲*/
	
	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * SQLKEY(CH_SELECT_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_M_CVSTORE_CH_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CH_M_CVSTORE.selectBySqlDefine(paramList, CH_M_CVSTORE_CH_SELECT_001);
	}

	/**
	 * SQLKEY(CH_SELECT_007)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求．請求年月
	 *		 	請求．請求契約番号
	 *		 	請求．EANバーコード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_SEIKY_CH_SELECT_007(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CH_T_SEIKY.selectBySqlDefine(paramList, CH_T_SEIKY_CH_SELECT_007);
	}
	
	/**
	 * SQLKEY(CH_SELECT_005)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	適用開始年月日
	 *		 	適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_CH_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_CH_SELECT_005);
	}

	/**
	 * SQLKEY(CH_SELECT_013)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	請求契約番号
	 *		 	予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_KEI_CH_SELECT_013(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SEIKY_KEI.selectBySqlDefine(paramList, KK_T_SEIKY_KEI_CH_SELECT_013);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
