/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatACPointHanei
*	ソースファイル名	：JBSbatACPointHanei.java
*	作成者				：富士通　
*	作成日				：2012年05月25日
*＜機能概要＞
*　はぴeポイント反映部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/07/10   FJ)川端	新規作成
*	v4.00.00	2012/12/21   FJ)早崎	【内部管理番号-0000468】対応
*	v4.00.01	2013/01/13   FJ)浜口	【ST1-2013-0000120】処理パターンを変更「単一サービス」→「単一加工」,出力順修正
*	v4.00.02	2013/01/16   FJ)浜口	【内部管理番号-0000645,646】ポイント送信が空の場合、ポイント数を空にする：eoIDが12桁未満の場合の空白埋めを削除
*	v4.00.03	2013/02/11   FJ)浜口	反映リストへ出力するMSGの括弧を修正（半角()→全角（））
*	v4.00.04	2013/03/26   FJ)小柴	【内部管理番号-0000613】ファイル出力オブジェクト生成時のエンコード設定ずれ防止対応
*	v4.00.05	2013/04/05   FJ)小柴	【IKK-2013-0000783】文字化け対策のため、エンコード形式の変更
*	v5.00.00	2013/07/11   FJ)狭間	【IT1-2013-0001363】（水平展開）lineToObjectの第三引数適正化
*	v29.00.00	2016/09/30   FJ)貝本	【ANK-3000-00-00】   はぴe新制度対応フォロー案件
*	v32.00.00	2017/05/31   FJ)鈴木	【OM-2017-0000494】お客様の検索SQL(CK_T_CUST-AC_SELECT_002)：カレントを取得するように修正
*	v36.00.00	2018/03/06   FJ)森脇	【OM-2017-0001146】データ登録時にシステムエラー
*********************************************************************/
package eo.business.service;

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.Map.Entry;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatACIFI019;
import eo.business.util.file.JBSbatACIFE029;
import eo.business.util.table.JBSbatAC_T_HAPIEPOINT;
import eo.business.util.table.JBSbatCH_M_PRC_SCHDL_TEIGI;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatKK_T_HAPIE_POINT_KEI;
import eo.common.constant.JACStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatCheckUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatACPointHanei extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(料金スケジュール定義)*/
	private static final String D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI = "CH_M_PRC_SCHDL_TEIGI";

	/** テーブル(はぴｅポイント)*/
	private static final String D_TBL_NAME_AC_T_HAPIEPOINT = "AC_T_HAPIEPOINT";

	/** テーブル(はぴｅポイント契約)*/
	private static final String D_TBL_NAME_KK_T_HAPIE_POINT_KEI = "KK_T_HAPIE_POINT_KEI";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** SQL定義キー(AC_SELECT_008)*/
	private static final String CH_M_PRC_SCHDL_TEIGI_AC_SELECT_008 = "AC_SELECT_008";

	/** SQL定義キー(AC_SELECT_002)*/
	private static final String AC_T_HAPIEPOINT_AC_SELECT_002 = "AC_SELECT_002";

	/** SQL定義キー(AC_SELECT_003)*/
	private static final String AC_T_HAPIEPOINT_AC_SELECT_003 = "AC_SELECT_003";

	/** SQL定義キー(AC_SELECT_001)*/
	private static final String KK_T_HAPIE_POINT_KEI_AC_SELECT_001 = "AC_SELECT_001";

	/** SQL定義キー(AC_SELECT_002)*/
	private static final String CK_T_CUST_AC_SELECT_002 = "AC_SELECT_002";

	/** SQL定義キー(AC_UPDATE_001)*/
	private static final String AC_T_HAPIEPOINT_AC_UPDATE_001 = "AC_UPDATE_001";

	/** テーブルアクセスクラス(料金スケジュール定義)*/
	private JBSbatSQLAccess db_CH_M_PRC_SCHDL_TEIGI = null;

	/** テーブルアクセスクラス(はぴｅポイント)*/
	private JBSbatSQLAccess db_AC_T_HAPIEPOINT = null;

	/** テーブルアクセスクラス(はぴｅポイント契約)*/
	private JBSbatSQLAccess db_KK_T_HAPIE_POINT_KEI = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** エラーコード */
	private static final String ERRCD_0000 = "0000";

	/** */
	private static final String ERRCD_0100 = "0100";

	/** */
	private static final String ERRCD_0200 = "0200";
	
	/** */
	private static final String ERRCD_0300 = "0300";
	
	/** */
	private static final String ERRCD_0400 = "0400";

	/** 反映エラーコード */
	private static final String HANEIERRCD_NORMAL = "0";

	/** */
	private static final String HANEIERRCD_0100 = "0100";
	
	/** */
	private static final String HANEIERRCD_0200 = "0200";
	
	/** */
	private static final String HANEIERRCD_0300 = "0300";

	/** */
	private static final String HANEIERRCD_0400 = "0400";
	
	/** */
	private static final String HANEIERRCD_3000 = "3000";

	/** */
	private static final String HANEIERRCD_9100 = "9100";
	
	/** */
	private static final String HANEIERRCD_9200 = "9200";
	
	/** */
	private static final String HANEIERRCD_9300 = "9300";
	
	/** */
	private static final String HANEIERRCD_9400 = "9400";
	
	/** */
	private static final String HANEIERRCD_9500 = "9500";
	
	/** */
	private static final String HANEIERRCD_9600 = "9600";
	
	// OM-2017-0001146 ADD START
	/** */
	private static final String HANEIERRCD_9700 = "9700";
	
	// OM-2017-0001146 ADD END
	/** */
	private static final String HANEIERRCD_9999 = "9999";

	/** 反映結果 */
	private static final String HANEIRSLT_NORMAL = "";

	/** */
	private static final String HANEIRSLT_1 = "1";

	/** */
	private static final String HANEIRSLT_2 = "2";

	/** */
	private static final String HANEIRSLT_3 = "3";

	/**スキーマ更新・ファイル出力用項目  */
	private static final String KEY_BAIZUKE = "Baizuke";

	/** */
	private static final String KEY_TEISE = "Teise";

	/** */
	private static final String KEY_ERRCD = "ErrCd";

	/** */
	private static final String KEY_POINT = "Point";

	/** */
	private static final String KEY_DATACNT = "DataCnt";

	/** */
	private static final String KEY_HANEIRSLT = "HaneiRslt";

	/** */
	private static final String KEY_HANEIERRCD = "HaneiErrCd";
	
	/** */
	private static final String KEY_HANEIERRMSG = "HaneiErrMsg";
	
	/** */
	private static final String KEY_HAPIEPOINTKEINO = "HapiePointKeiNo";
	
	/** */
	private static final String KEY_CALCPOINTCNTGOKEI = "CalcPointCntGokei";
	
	/** */
	private static final String KEY_CALC = "Calc";

	/** */
	private static final String KEY_SENDFLG = "SendFlg";
	
	/** */
	private static final String KEY_RCVFLG = "RcvFlg";
	
	/** */
	private static final String KEY_EOID = "eoId";
	
	/** */
	private static final String KEY_SYSID = "SysId";
	
	/** */
	private static final String KEY_UPDATE = "Update";

	/**会社コード */
	private static final String COMPCD_BAIZUKE = "000200";

	/** */
	private static final String COMPCD_TEISE = "000201";
	
	/** 請求年月 */
	private String seikyYm = "";
	
	/** 授受結果データ退避マップ */
	private Map<String, Map<String, Object>> jujuDataMap = null;
	
	/** 埋め込み文字列を格納する配列 */
	private HashMap<String, String> itemValueMap = null;
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CH_M_PRC_SCHDL_TEIGI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_M_PRC_SCHDL_TEIGI);
		db_AC_T_HAPIEPOINT = new JBSbatSQLAccess(commonItem, D_TBL_NAME_AC_T_HAPIEPOINT);
		db_KK_T_HAPIE_POINT_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_HAPIE_POINT_KEI);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// 埋め込み文字の初期化 
		itemValueMap = new HashMap<String, String>();
		itemValueMap.put("TXT-ACIFI019-INF1.REC_DIV", "はぴｅポイント授受結果データ.レコード区分");
		itemValueMap.put("TXT-ACIFI019-INF1.COMP_CD", "はぴｅポイント授受結果データ.会社コード");
		itemValueMap.put("TXT-ACIFI019-INF1.KIKI_TRAN_DATE", "はぴｅポイント授受結果データ.機械処理日時");
		itemValueMap.put("TXT-ACIFI019-INF1.WORK_DIV", "はぴｅポイント授受結果データ.業務区分");
		itemValueMap.put("TXT-ACIFI019-INF1.HAPIE_NO", "はぴｅポイント授受結果データ.はぴｅ番号");
		itemValueMap.put("TXT-ACIFI019-INF1.FUYO_POINT", "はぴｅポイント授受結果データ.付与ポイント");
		itemValueMap.put("TXT-ACIFI019-INF1.ERR_CD", "はぴｅポイント授受結果データ.エラーコード ");
		
		// 請求年月を取得
		seikyYm = getSeikyYm();
		
		jujuDataMap = new HashMap<String, Map<String, Object>>();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap, JBSbatOutputItem outputInItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 退避情報なしの場合
		if(!outputInItem.isOutMapList())
		{
			// ダミーを設定
			outputInItem.addOutMapList(new JBSbatServiceInterfaceMap());
		}

		// 最終レコードの場合
		if(null == inMap)
		{
			// DB更新
			// はぴeポイント授受結果データパターンチェック
			dataPatternChk();
			
			//「はぴｅポイント」に処理結果反映
			updateMaster();
			
			//はぴｅポイント反映チェックリストの出力
			outputInItem = divHaneiChkLst();
			return outputInItem;
		}

		// 単項目チェック
		if (!isSingleCheckACIFI019_INF1(inMap.getMap(), itemValueMap))
		{
			// エラー処理
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EACB0500CE);
		}
		
		// はぴeポイント授受結果データ集約
		setHapiepointJujuData(inMap);

		// 空レコードを返却
		return outputInItem;

		/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CH_M_PRC_SCHDL_TEIGI.close();
		db_AC_T_HAPIEPOINT.close();
		db_KK_T_HAPIE_POINT_KEI.close();
		db_CK_T_CUST.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 *入力情報（はぴｅポイント授受結果データ）の単項目チェックを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.単項目チェックを行います。<br>
	 * 
	 * 2.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		rsMap:(項目、値)を(key、value)として、データをrsMapに入れます
	 *		itemvalueMap:埋め込み文字の値をitemvalueMapに入れます。キーの値は、以下に説明します。
	 *			 TXT-ACIFI019-INF1.REC_DIV			はぴｅポイント授受結果データ.レコード区分
	 *			 TXT-ACIFI019-INF1.COMP_CD			はぴｅポイント授受結果データ.会社コード
	 *			 TXT-ACIFI019-INF1.KIKI_TRAN_DATE			はぴｅポイント授受結果データ.機械処理日時
	 *			 TXT-ACIFI019-INF1.WORK_DIV			はぴｅポイント授受結果データ.業務区分
	 *			 TXT-ACIFI019-INF1.HAPIE_NO			はぴｅポイント授受結果データ.はぴｅ番号
	 *			 TXT-ACIFI019-INF1.FUYO_POINT			はぴｅポイント授受結果データ.付与ポイント
	 *			 TXT-ACIFI019-INF1.ERR_CD			はぴｅポイント授受結果データ.エラーコード
	 * </pre>
	 * <p>
	 * @param rsMap 入力データ（TXT又はDB）を格納されたHashMap。
	 * @param itemvalueMap エラーメッセージに関する項目値を格納されたHashMap。
	 * @return  boolean trueである場合、エラーがありません。falseである場合、エラーを発生しました。
	 */
	private boolean isSingleCheckACIFI019_INF1(HashMap rsMap, HashMap itemvalueMap)
	{
		// 単項目チェックを行います
		String strValue = null;

		// レコード区分項目チェック
		strValue = (String)rsMap.get("REC_DIV");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.REC_DIV")});
			return false;
		}

		// 会社コード項目チェック
		strValue = (String)rsMap.get("COMP_CD");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.COMP_CD")});
			return false;
		}

		// 機械処理日時項目チェック
		strValue = (String)rsMap.get("KIKI_TRAN_DATE");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.KIKI_TRAN_DATE")});
			return false;
		}

		// 業務区分項目チェック
		strValue = (String)rsMap.get("WORK_DIV");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.WORK_DIV")});
			return false;
		}

		// はぴｅ番号項目チェック
		strValue = (String)rsMap.get("HAPIE_NO");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji2"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.HAPIE_NO")});
			return false;
		}

		// 付与ポイント項目チェック
		strValue = (String)rsMap.get("FUYO_POINT");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakusuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.FUYO_POINT")});
			return false;
		}

		// エラーコード項目チェック
		strValue = (String)rsMap.get("ERR_CD");
		// 属性チェック
		if(!JBSbatCheckUtil.invoke(strValue, new String[]{"hannkakuesuuji1"}))
		{
			commonItem.getLogPrint().printBusinessErrorLog("EACB0460CE", new String[]{
															(String)itemvalueMap.get("TXT-ACIFI019-INF1.ERR_CD")});
			return false;
		}

		return true;
	}


	/**
	 * SQLKEY(AC_SELECT_008)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	EVENT_CD
	 *		 	EVENT_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_M_PRC_SCHDL_TEIGI_AC_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CH_M_PRC_SCHDL_TEIGI.selectBySqlDefine(paramList, CH_M_PRC_SCHDL_TEIGI_AC_SELECT_008);
	}

	/**
	 * SQLKEY(AC_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	HAPIE_CALC_TG_YMD
	 *		 	HAPIE_NO
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeAC_T_HAPIEPOINT_AC_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_AC_T_HAPIEPOINT.selectBySqlDefine(paramList, AC_T_HAPIEPOINT_AC_SELECT_002);
	}

	/**
	 * SQLKEY(AC_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	HAPIE_CALC_TG_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeAC_T_HAPIEPOINT_AC_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_AC_T_HAPIEPOINT.selectBySqlDefine(paramList, AC_T_HAPIEPOINT_AC_SELECT_003);
	}

	/**
	 * SQLKEY(AC_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	HAPIE_MEMBER_ID
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_HAPIE_POINT_KEI_AC_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_HAPIE_POINT_KEI.selectBySqlDefine(paramList, KK_T_HAPIE_POINT_KEI_AC_SELECT_001);
	}

	/**
	 * SQLKEY(AC_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	SYSID
	 *			運用日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_AC_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
// 2017.05.31 OM-2017-0000494 ADD START
		paramList.setValue(param[1].toString());
// 2017.05.31 OM-2017-0000494 ADD END

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_AC_SELECT_002);
	}
	
	/**
	 * SQLKEY(AC_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	POINT_HANEI_RSLT_CD
	 *		 	BAIZUKE_POINT_CNT
	 *		 	TEISE_POINT_CNT
	 *		 	HAPIE_NO
	 *		 	HAPIE_CALC_TG_YMD
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeAC_T_HAPIEPOINT_AC_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());

		// DBアクセスを実行します
		db_AC_T_HAPIEPOINT.executeBySqlDefine(paramList, AC_T_HAPIEPOINT_AC_UPDATE_001);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	はぴｅポイント契約番号				HAPIEPOINT_KEI_NO
	 *		 	はぴｅ計算対象年月				HAPIE_CALC_TG_YM
	 *		 	はぴｅ番号				HAPIE_NO
	 *		 	ｅｏＩＤ				EOID
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	ポイント対象金額合計				POINT_TRGT_AMNT_GOKEI
	 *		 	計算ポイント数合計				CALC_POINT_CNT_GOKEI
	 *		 	ポイント計算年月日時分秒				POINT_CALC_DTM
	 *		 	ポイント反映結果コード				POINT_HANEI_RSLT_CD
	 *		 	倍付ポイント数				BAIZUKE_POINT_CNT
	 *		 	訂正ポイント数				TEISE_POINT_CNT
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeAC_T_HAPIEPOINT_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("HAPIEPOINT_KEI_NO", setParam[0]);
		setMap.setValue("HAPIE_CALC_TG_YM", setParam[1]);
		setMap.setValue("HAPIE_NO", setParam[2]);
		setMap.setValue("EOID", setParam[3]);
		setMap.setValue("SYSID", setParam[4]);
		setMap.setValue("POINT_TRGT_AMNT_GOKEI", setParam[5]);
		setMap.setValue("CALC_POINT_CNT_GOKEI", setParam[6]);
		setMap.setValue("POINT_CALC_DTM", setParam[7]);
		setMap.setValue("POINT_HANEI_RSLT_CD", setParam[8]);
		setMap.setValue("BAIZUKE_POINT_CNT", setParam[9]);
		setMap.setValue("TEISE_POINT_CNT", setParam[10]);
		setMap.setValue("ADD_DTM", setParam[11]);
		setMap.setValue("ADD_OPEACNT", setParam[12]);
		setMap.setValue("UPD_DTM", setParam[13]);
		setMap.setValue("UPD_OPEACNT", setParam[14]);
		setMap.setValue("DEL_DTM", setParam[15]);
		setMap.setValue("DEL_OPEACNT", setParam[16]);
		setMap.setValue("MK_FLG", setParam[17]);
		setMap.setValue("ADD_UNYO_YMD", setParam[18]);
		setMap.setValue("ADD_TRN_ID", setParam[19]);
		setMap.setValue("UPD_UNYO_YMD", setParam[20]);
		setMap.setValue("UPD_TRN_ID", setParam[21]);
		setMap.setValue("DEL_UNYO_YMD", setParam[22]);
		setMap.setValue("DEL_TRN_ID", setParam[23]);
	
		// DBアクセスを実行します
		db_AC_T_HAPIEPOINT.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 請求年月を取得
	 * 
	 * @return 請求年月
	 * @throws Exception
	 *             例外
	 */
	private String getSeikyYm() throws Exception 
	{
		// SQL実行
		executeCH_M_PRC_SCHDL_TEIGI_AC_SELECT_008(new String[] {JACStrConst.EVENT_CD_PRC_CALC_DAY, super.opeDate });

		// レコードの取得
		JBSbatCommonDBInterface record = db_CH_M_PRC_SCHDL_TEIGI.selectNext();

		String ym = record.getString(JBSbatCH_M_PRC_SCHDL_TEIGI.SEIKY_YM);

		// レコードの存在チェック
		if (ym != null) 
		{
			// 値を返却
			return ym;
		} 
		else
		{
			// 業務例外
			throw new JBSbatBusinessException(JPCBatchMessageConstant.EACB0440CE, new String[] { JBSbatCH_M_PRC_SCHDL_TEIGI.TABLE_NAME });
		}
	}
	
	/**
	 * ファイルからレコードを取得
	 * 
	 * @param inFileObj 入力ファイルオブジェクト
	 * @param sLine 行文字列
	 * @param fileDef ファイル定義名
	 * @return レコードマップ
	 * @throws Exception スローされる例外
	 */
	private JBSbatServiceInterfaceMap getRecMap(JBSbatInputFileUtil inFileObj, String sLine, String fileDef) throws Exception
	{
		String enc = inFileObj.getEncode();
		// encodeの形式がSHIFT-JISの場合、MS932に変換
		if (JACStrConst.ENCODE_SJIS.toUpperCase().equals(enc.toUpperCase()))
		{
			enc = JACStrConst.ENCODE_MS932;
		}
		
		JBSbatDefFileUtil defUtil = new JBSbatDefFileUtil(JBSbatAplConst.getAplConstValue("IND") + fileDef, inFileObj);
		inFileObj.setEncode(enc);
		
		return defUtil.lineToObject(sLine, inFileObj, 0);
	}
	
	/**
	 * はぴeポイント授受結果データ集約
	 * 
	 * @param inMap 入力電文
	 * @throws Exception
	 */
	private void setHapiepointJujuData(JBSbatServiceInterfaceMap inMap) throws Exception
	{
		// はぴｅ番号
		String hapieNo = inMap.getString(JBSbatACIFI019.HAPIE_NO);
		hapieNo = JBSbatStringUtil.trim(hapieNo);

		// 会社コード
		String compCd = inMap.getString(JBSbatACIFI019.COMP_CD);
		
		// 付与ポイント
		String fuyoPoint = inMap.getString(JBSbatACIFI019.FUYO_POINT);

		// エラーコード
		String errCd = inMap.getString(JBSbatACIFI019.ERR_CD);

		// 反映エラーコード
		String haneiErrCd = HANEIERRCD_NORMAL;

		// 反映結果
		String haneiRslt = HANEIRSLT_NORMAL;
		
		//「はぴｅポイント授受結果データ」集約
		if (!jujuDataMap.containsKey(hapieNo))
		{
			// <新規>はぴｅ番号ごとにデータ退避
			addHapiepointJujuData(hapieNo, compCd, Long.parseLong(fuyoPoint), errCd, haneiErrCd, haneiRslt);
		} 
		else
		{
			// <重複>はぴｅ番号ごとにデータ退避
			appendHapiepointJujuData(hapieNo, compCd, Long.parseLong(fuyoPoint), errCd);
		}
		
	}
	
	/**
	 * <新規>はぴeポイント授受結果データの集約データ退避
	 * 
	 * @param hapieNo
	 *            はぴｅ番号
	 * @param compCd
	 *            会社コード
	 * @param fuyoPoint
	 *            付与ポイント
	 * @param errCd
	 *            エラーコード
	 * @param haneiErrCd
	 *            反映エラーコード
	 * @param haneiRslt
	 *            反映結果
	 * @throws Exception
	 */
	private void addHapiepointJujuData(String hapieNo, String compCd, long fuyoPoint, String errCd, String haneiErrCd, String haneiRslt)throws Exception
	{
		Map<String, Object> detailDataMap = new HashMap<String, Object>();
		
		if (compCd.equals(COMPCD_BAIZUKE)) 
		{
			// 倍付データ項目追加
			detailDataMap.put(KEY_BAIZUKE + KEY_DATACNT, 1);
			detailDataMap.put(KEY_BAIZUKE + KEY_ERRCD, errCd);
			detailDataMap.put(KEY_BAIZUKE + KEY_POINT, fuyoPoint);

			// 訂正データ項目初期値追加
			detailDataMap.put(KEY_TEISE + KEY_DATACNT, 0);
			detailDataMap.put(KEY_TEISE + KEY_ERRCD, "");
			detailDataMap.put(KEY_TEISE + KEY_POINT, 0);
			
			//その他項目初期値追加
			detailDataMap.put(KEY_ERRCD, "");
			detailDataMap.put(KEY_HANEIERRCD, haneiErrCd);
			detailDataMap.put(KEY_HANEIRSLT, haneiRslt);

			jujuDataMap.put(hapieNo, detailDataMap);
		}
		else if (compCd.equals(COMPCD_TEISE)) 
		{
			// 訂正データ項目追加
			detailDataMap.put(KEY_TEISE + KEY_DATACNT, 1);
			detailDataMap.put(KEY_TEISE + KEY_ERRCD, errCd);
			detailDataMap.put(KEY_TEISE + KEY_POINT, fuyoPoint);

			// 倍付けデータ項目初期値追加
			detailDataMap.put(KEY_BAIZUKE + KEY_DATACNT, 0);
			detailDataMap.put(KEY_BAIZUKE + KEY_ERRCD, "");
			detailDataMap.put(KEY_BAIZUKE + KEY_POINT, 0);
			
			//その他項目初期値追加
			detailDataMap.put(KEY_ERRCD, "");
			detailDataMap.put(KEY_HANEIERRCD, haneiErrCd);
			detailDataMap.put(KEY_HANEIRSLT, haneiRslt);

			jujuDataMap.put(hapieNo, detailDataMap);
			
		}
	}
	
	/**
	 * <重複>はぴeポイント授受結果データの集約データ退避
	 * 
	 * @param hapieNo
	 *            はぴｅ番号
	 * @param compCd
	 *            会社コード
	 * @param fuyoPoint
	 *            付与ポイント
	 * @param errCd
	 *            エラーコード
	 * @throws Exception
	 */
	private void appendHapiepointJujuData(String hapieNo, String compCd, long fuyoPoint, String errCd) throws Exception
	{
		Map<String, Object> detailDataMap = jujuDataMap.get(hapieNo);

		if (compCd.equals(COMPCD_BAIZUKE)) 
		{
			//倍付データ件数・倍付ポイント数を合計する
			long datacnt = Long.parseLong(detailDataMap.get(KEY_BAIZUKE + KEY_DATACNT).toString());
			long baizukepoint = Long.parseLong(detailDataMap.get(KEY_BAIZUKE + KEY_POINT).toString());
			datacnt = datacnt + 1;
			baizukepoint = baizukepoint + fuyoPoint;
			//合計で上書きする
			detailDataMap.put(KEY_BAIZUKE + KEY_DATACNT, datacnt);
			detailDataMap.put(KEY_BAIZUKE + KEY_POINT, baizukepoint);
			
			//1件目の倍付レコードのとき、倍付けデータエラーコード設定
			if("".equals(detailDataMap.get(KEY_BAIZUKE + KEY_ERRCD)))
			{

				detailDataMap.put(KEY_BAIZUKE + KEY_ERRCD, errCd);
			}
		}
		else if (compCd.equals(COMPCD_TEISE))
		{
			//訂正データ件数・訂正ポイント数を合計する
			long datacnt = Long.parseLong(detailDataMap.get(KEY_TEISE + KEY_DATACNT).toString());
			long teisepoint = Long.parseLong(detailDataMap.get(KEY_TEISE + KEY_POINT).toString());
			datacnt = datacnt + 1;
			teisepoint = teisepoint + fuyoPoint;
			//合計で上書きする
			detailDataMap.put(KEY_TEISE + KEY_DATACNT, datacnt);
			detailDataMap.put(KEY_TEISE + KEY_POINT, teisepoint);
			
			//１件目の訂正レコードのとき、訂正データエラーコード設定
			if("".equals(detailDataMap.get(KEY_TEISE + KEY_ERRCD)))
			{
				detailDataMap.put(KEY_TEISE + KEY_ERRCD, errCd);
			}
		}
	}
	
	/**
	 * はぴeポイント授受結果データパターンチェック
	 * 
	 * @throws Exception
	 */
	private void dataPatternChk() throws Exception
	{
		//送信あり かつ 返信なしチェック用データの取得
		Map<String, Map<String, Object>> checkRcvMap = getcheckRcvMap();
		
		for (Map.Entry<String, Map<String, Object>> checkPaternMap : jujuDataMap.entrySet())
		{
			String hapieNo = checkPaternMap.getKey();
			Map<String, Object> detailDataMap = checkPaternMap.getValue();
			
			//倍付・訂正データ件数とエラーコード、倍付けポイント取得
			long baizukeDataCnt = Long.parseLong(detailDataMap.get(KEY_BAIZUKE + KEY_DATACNT).toString());
			long baizukeFuyoPoint = Long.parseLong(detailDataMap.get(KEY_BAIZUKE + KEY_POINT).toString());
			String baizukeDataErrCd = detailDataMap.get(KEY_BAIZUKE + KEY_ERRCD).toString();
			long teiseDataCnt = Long.parseLong(detailDataMap.get(KEY_TEISE + KEY_DATACNT).toString());
			String teiseDataErrCd = detailDataMap.get(KEY_TEISE + KEY_ERRCD).toString();
			
			//クリアパスからの倍付・訂正ポイントデータ受信チェック
			detailDataMap.put(KEY_BAIZUKE + KEY_RCVFLG, "");
			detailDataMap.put(KEY_TEISE + KEY_RCVFLG, "");
			if(baizukeDataCnt > 0)
			{
				detailDataMap.put(KEY_BAIZUKE + KEY_RCVFLG, "有");
			}
			if(teiseDataCnt > 0)
			{
				detailDataMap.put(KEY_TEISE + KEY_RCVFLG, "有");
			}
			
			// 「はぴeポイント」存在チェック
			// SQL実行
			executeAC_T_HAPIEPOINT_AC_SELECT_002(new String[] { seikyYm, hapieNo });
			// レコードの取得
			JBSbatCommonDBInterface record = db_AC_T_HAPIEPOINT.selectNext();
			
			// KOPTからの送信がある場合
			if (null != record) 	
			{
				//全送信データから返信があったデータを取り除く
				checkRcvMap.remove(hapieNo);
				
				//KOPTから計算ポイントデータ送信フラグ
				detailDataMap.put(KEY_SENDFLG, "有");
				//はぴｅポイント契約番号
				detailDataMap.put(KEY_HAPIEPOINTKEINO, record.getValue(JBSbatAC_T_HAPIEPOINT.HAPIEPOINT_KEI_NO));
				//SYSID
				detailDataMap.put(KEY_SYSID, record.getValue(JBSbatAC_T_HAPIEPOINT.SYSID));
				//eoID
				detailDataMap.put(KEY_EOID, record.getValue(JBSbatAC_T_HAPIEPOINT.EOID));
				
				//はぴｅポイント．計算ポイント数合計
				long calcPointCntGokei = Long.parseLong(record.getString(JBSbatAC_T_HAPIEPOINT.CALC_POINT_CNT_GOKEI));
				detailDataMap.put(KEY_CALC + KEY_POINT, calcPointCntGokei);
				
				
				// 倍付データ件数＝１ かつ、訂正データ件数＝０のとき
				if (baizukeDataCnt == 1 && teiseDataCnt == 0) 
				{
					// 倍付データエラーコード＝‘００００’（正常）のとき
					if (ERRCD_0000.equals(baizukeDataErrCd))
					{
//v29.00.00 2016/09/30 DEL START
//						// はぴeポイント．計算ポイント数合計＝０ かつ 倍付データ付与ポイント≠０ のとき、ポイント倍付エラー
//						if (calcPointCntGokei == 0 && baizukeFuyoPoint != 0)
//						{
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
//								detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_3000);
//						}
//						// はぴeポイント．計算ポイント数合計≧１ のとき
//						else if (calcPointCntGokei >= 1)
//						{
//							// 倍付データ付与ポイントが計算ポイント数で割り切れないとき または
//							// 倍付データ付与ポイント＝計算ポイント数のとき、ポイント倍付エラー
//							if ((baizukeFuyoPoint % calcPointCntGokei) != 0 || (baizukeFuyoPoint == calcPointCntGokei))
//							{
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
//								detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_3000);
//							}
//						}
//v29.00.00 2016/09/30 DEL END
					}
					// 倍付データエラーコード＝‘０１００’（会員なし）のときクリアパスエラー
					else if (ERRCD_0100.equals(baizukeDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0100);
						detailDataMap.put(KEY_ERRCD, "会員が存在しない");
					}
					// 倍付データエラーコード＝‘０２００’（会員退会）のとき、クリアパスエラー
					else if (ERRCD_0200.equals(baizukeDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_1);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0200);
					}
					
					// 倍付データエラーコード＝‘０３００’（会員なし）のとき契約システム側エラー
					else if (ERRCD_0300.equals(baizukeDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0300);
					}
					// 倍付データエラーコード＝‘０４００’（会員なし）のとき契約システム側エラー
					else if (ERRCD_0400.equals(baizukeDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0400);
					}
					//倍付データエラーコードが'００００''０１００''０２００''０３００''０４００'以外のとき、受信データ異常(エラーコード未定義)エラー
					else
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9400);
					}
				}
				// 倍付データ件数＝１ かつ 訂正データ件数＝１のとき
				else if (baizukeDataCnt == 1 && teiseDataCnt == 1)
				{
					// 倍付データエラーコード、訂正データエラーコードともに‘００００’（正常）のとき
					if (ERRCD_0000.equals(baizukeDataErrCd) && ERRCD_0000.equals(teiseDataErrCd))
					{
//v29.00.00 2016/09/30 DEL START
						// はぴeポイント．計算ポイント数合計＝０のとき
//						if (calcPointCntGokei == 0)
//						{
//							//倍付データ付与ポイント≠０ のとき、ポイント倍付エラー
//							if(baizukeFuyoPoint != 0)
//							{
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
//								detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_3000);
//							}
//							//データが正常なとき、反映結果を設定
//							else
//							{
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_2);
//							}
//						}
//						// はぴeポイント．計算ポイント数合計≧１ のとき
//						else if (calcPointCntGokei >= 1)
//						{
//							// 倍付データ付与ポイントが計算ポイント数で割り切れないとき または
//							// 倍付データ付与ポイント＝計算ポイント数のとき、ポイント倍付エラー
//							if ((baizukeFuyoPoint % calcPointCntGokei) != 0 || (baizukeFuyoPoint == calcPointCntGokei))
//							{
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
//								detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_3000);
//							}//データが正常なとき
//							else
//							{
//								System.out.println("9");
//								detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_2);
//							}
//						}
//v29.00.00 2016/09/30 DEL END
					}
					// 倍付データエラーコード、訂正データエラーコードともに‘０１００’（会員なし）のとき
					else if (ERRCD_0100.equals(baizukeDataErrCd) && ERRCD_0100.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0100);
						detailDataMap.put(KEY_ERRCD, "会員が存在しない");
					}
					// 倍付データエラーコード、訂正データエラーコードともに‘０２００’（会員退会）のとき
					else if (ERRCD_0200.equals(baizukeDataErrCd) && ERRCD_0200.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_1);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0200);
					}
					// 倍付データエラーコード、訂正データエラーコードともに‘０３００’（会員なし）のとき
					else if (ERRCD_0300.equals(baizukeDataErrCd) && ERRCD_0300.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0300);
					}
					// 倍付データエラーコード、訂正データエラーコードともに‘０４００’（会員なし）のとき
					else if (ERRCD_0400.equals(baizukeDataErrCd) && ERRCD_0400.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0400);
					}
					//倍付データエラーコード、訂正データエラーコードのうち、どちらかが'００００''０１００''０２００''０３００''０４００'以外のとき、
					//受信データ異常(エラーコード未定義)エラー
					else if(!ERRCD_0000.equals(baizukeDataErrCd) && !ERRCD_0100.equals(baizukeDataErrCd) && !ERRCD_0200.equals(baizukeDataErrCd) &&
								!ERRCD_0300.equals(baizukeDataErrCd) && !ERRCD_0400.equals(baizukeDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9400);
					}
					else if(!ERRCD_0000.equals(teiseDataErrCd) && !ERRCD_0100.equals(teiseDataErrCd) && !ERRCD_0200.equals(teiseDataErrCd) &&
								!ERRCD_0300.equals(teiseDataErrCd) && !ERRCD_0400.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9400);
					}
					//倍付エラーコード≠訂正エラーコードのとき、受信データ異常(エラーコード不一致)エラー
					else if(!baizukeDataErrCd.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9500);
					}
				}
				//倍付けデータ件数＝０かつ、訂正データ件数＝０のとき
				else if(baizukeDataCnt == 0 && teiseDataCnt == 0)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9100);
				}
				// 倍付データ件数＝０ かつ、訂正データ件数≧１のとき、受信データ異常(倍付ポイント受信なし)エラー
				else if (baizukeDataCnt == 0 && teiseDataCnt >= 1)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9100);
				}
				//倍付データ件数≧２のとき、受信データ異常(倍付ポイント重複)エラー
				else if(baizukeDataCnt >= 2)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9200);
				}
				//倍付データ件数＝１かつ、訂正データ件数 ≧２のとき、受信データ異常(訂正ポイント重複)エラー
				else if(baizukeDataCnt == 1 && teiseDataCnt >= 2)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9300);
				}
			}
			// KOPTからの送信のない場合
			else 
			{
				//KOPTから計算ポイントデータ送信フラグ
				detailDataMap.put(KEY_SENDFLG, "");
				//計算ポイント数
				detailDataMap.put(KEY_CALC + KEY_POINT, "0");
				//はぴｅポイント契約番号
				detailDataMap.put(KEY_HAPIEPOINTKEINO, "");
				//SYSID
				detailDataMap.put(KEY_SYSID, "");
				//eoID
				detailDataMap.put(KEY_EOID, "");
				
				//倍付データ件数＝０かつ訂正データ件数＝１のとき
				if (baizukeDataCnt == 0 && teiseDataCnt == 1)
				{
					//訂正データエラーコード＝'００００'（正常）のとき
					if (ERRCD_0000.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_2);
					} 
					//訂正データエラーコード＝'０１００'(会員なし)のとき、クリアパスエラー
					else if (ERRCD_0100.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0100);
						detailDataMap.put(KEY_ERRCD, "会員が存在しない");
					}
					//訂正データエラーコード＝'０２００'(会員退会)のとき、クリアパスエラー
					else if (ERRCD_0200.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_1);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0200);
					}
					// 倍付データエラーコード＝‘０３００’（会員なし）のとき契約システム側エラー
					else if (ERRCD_0300.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0300);
					}
					// 倍付データエラーコード＝‘０４００’（会員なし）のとき契約システム側エラー
					else if (ERRCD_0400.equals(teiseDataErrCd))
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_0400);
					}
					//倍付データエラーコードが'００００''０１００''０２００''０３００''０４００'以外のとき、受信データ異常(エラーコード未定義)エラー
					else
					{
						detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
						detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9400);
					}
				}
				//倍付データ件数≧１のとき、受信データ異常(不要な倍付ポイント受信)エラー
				else if(baizukeDataCnt >= 1)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9600);
				}
				//倍付データ件数＝０かつ訂正データ件数≧２のとき、受信データ異常(訂正データ重複)エラー
				else if(baizukeDataCnt == 0 && teiseDataCnt >= 2)
				{
					detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9300);
				}
			}
			//チェック結果が正常 または クリアパスエラー以外のとき、スキーマ更新用のポイント設定
			if(!HANEIERRCD_NORMAL.equals(detailDataMap.get(KEY_HANEIERRCD).toString())
					&& !HANEIERRCD_0100.equals(detailDataMap.get(KEY_HANEIERRCD).toString())
					&& !HANEIERRCD_0200.equals(detailDataMap.get(KEY_HANEIERRCD).toString()))
			{
				if(record != null)
				{
					detailDataMap.put(KEY_BAIZUKE + KEY_UPDATE + KEY_POINT, record.getValue(JBSbatAC_T_HAPIEPOINT.BAIZUKE_POINT_CNT));
					detailDataMap.put(KEY_TEISE + KEY_UPDATE + KEY_POINT, record.getValue(JBSbatAC_T_HAPIEPOINT.TEISE_POINT_CNT));
				}
				else
				{
					detailDataMap.put(KEY_BAIZUKE + KEY_UPDATE + KEY_POINT, "0");
					detailDataMap.put(KEY_TEISE + KEY_UPDATE + KEY_POINT, "0");
				}
			}
		}
		
		//KOPT側から送信あり かつ クリアパス側から返信なしデータの値を設定
		if(!checkRcvMap.isEmpty())
		{
			for (Map.Entry<String, Map<String, Object>> tranMap : checkRcvMap.entrySet())
			{	
				String hapieNo = tranMap.getKey();
				
				Map<String, Object> detailDataMap = new HashMap<String, Object>();
				
				detailDataMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
				detailDataMap.put(KEY_SENDFLG, "有");
				detailDataMap.put(KEY_CALC + KEY_POINT, tranMap.getValue().get(KEY_CALCPOINTCNTGOKEI));
				detailDataMap.put(KEY_BAIZUKE + KEY_RCVFLG, "");
				detailDataMap.put(KEY_BAIZUKE + KEY_POINT, "0");
				detailDataMap.put(KEY_BAIZUKE + KEY_UPDATE + KEY_POINT, tranMap.getValue().get(KEY_BAIZUKE + KEY_POINT));
				detailDataMap.put(KEY_TEISE + KEY_RCVFLG, "");
				detailDataMap.put(KEY_TEISE + KEY_POINT, "0");
				detailDataMap.put(KEY_TEISE + KEY_UPDATE + KEY_POINT, tranMap.getValue().get(KEY_TEISE + KEY_POINT));
				detailDataMap.put(KEY_ERRCD, "");
				detailDataMap.put(KEY_HANEIERRCD, HANEIERRCD_9100);
				detailDataMap.put(KEY_HAPIEPOINTKEINO, tranMap.getValue().get(KEY_HAPIEPOINTKEINO));
				detailDataMap.put(KEY_SYSID, tranMap.getValue().get(KEY_SYSID));
				detailDataMap.put(KEY_EOID, tranMap.getValue().get(KEY_EOID));
	
				jujuDataMap.put(hapieNo, detailDataMap);
			}
		}
	}

	/**
	 * KOPTから送信あり かつ クリアパスから返信なしをチェックするための全送信データを取得
	 * 
	 * @throws Exception
	 * @return クリアパスに送信したデータ
	 */
	private Map<String, Map<String, Object>> getcheckRcvMap()throws Exception
	{
		Map<String, Map<String, Object>> checkMap = new HashMap<String, Map<String, Object>>();
		
		//SQL実行
		executeAC_T_HAPIEPOINT_AC_SELECT_003(new String[] {seikyYm});
		//レコード取得
		JBSbatCommonDBInterface record = db_AC_T_HAPIEPOINT.selectNext();
		
		//送信データが１件以上あるとき、はぴｅポイント契約番号と倍付・訂正ポイント数、SYSIDとeoIDを取得
		while(record != null)
		{
			Map<String, Object> checkMapInf = new HashMap<String, Object>();
			
			checkMapInf.put(KEY_HAPIEPOINTKEINO, record.getValue(JBSbatAC_T_HAPIEPOINT.HAPIEPOINT_KEI_NO));
			checkMapInf.put(KEY_CALCPOINTCNTGOKEI, record.getValue(JBSbatAC_T_HAPIEPOINT.CALC_POINT_CNT_GOKEI));
			checkMapInf.put(KEY_BAIZUKE + KEY_POINT, record.getValue(JBSbatAC_T_HAPIEPOINT.BAIZUKE_POINT_CNT));
			checkMapInf.put(KEY_TEISE + KEY_POINT, record.getValue(JBSbatAC_T_HAPIEPOINT.TEISE_POINT_CNT));
			checkMapInf.put(KEY_SYSID, record.getValue(JBSbatAC_T_HAPIEPOINT.SYSID));
			checkMapInf.put(KEY_EOID, record.getValue(JBSbatAC_T_HAPIEPOINT.EOID));
			
			String hapieNo = record.getValue(JBSbatAC_T_HAPIEPOINT.HAPIE_NO).toString();
			hapieNo = JBSbatStringUtil.trim(hapieNo);
			checkMap.put(hapieNo, checkMapInf);
			
			record = db_AC_T_HAPIEPOINT.selectNext();
		}
		
		return checkMap;
	}
	
	/**
	 * [はぴｅポイント]データ更新・追加
	 * @throws Exception
	 */
	private void updateMaster() throws Exception
	{
		for (Map.Entry<String, Map<String, Object>> tranMap : jujuDataMap.entrySet())
		{
			
			String hapieNo = tranMap.getKey();
			Map<String, Object> detailMap = tranMap.getValue();
			
			//KOPT側からの送信がないデータのとき、SYSID・eoID・はぴｅポイント契約番号の設定
			if("".equals(detailMap.get(KEY_SENDFLG).toString()))
			{
				//エラーコード＝'０３００'のとき、更新・追加は行わず次のデータへ
				if(HANEIERRCD_0300.equals(detailMap.get(KEY_HANEIERRCD).toString()))
				{
					continue;
				}
				
				//SYSIDの取得
				//SQL実行
				executeKK_T_HAPIE_POINT_KEI_AC_SELECT_001(new String[] {hapieNo});

				// レコードの取得
				JBSbatCommonDBInterface sysIdRecord = db_KK_T_HAPIE_POINT_KEI.selectNext();
				// レコードの存在チェック
				if (sysIdRecord == null) 
				{
					//レコードが存在しないとき、更新・追加をせずに次のデータへ
					super.logPrint.printBusinessErrorLog("EACB0820KW", new String[] { hapieNo });
					super.commonItem.addErrorCount(1);
					continue;
				}
				// OM-2017-0001146 ADD START
				if (null == sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.SYSID) || "".equals(sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.SYSID)))
				{
					// SYSIDが未設定の場合、反映エラーメッセージを設定し次のデータへ
					detailMap.put(KEY_HANEIRSLT, HANEIRSLT_3);
					detailMap.put(KEY_HANEIERRCD, HANEIERRCD_9700);
					continue;
				}
				// OM-2017-0001146 ADD END
				//SYSIDの設定
				detailMap.put(KEY_SYSID, sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.SYSID));
				//はぴｅポイント契約番号の設定
				detailMap.put(KEY_HAPIEPOINTKEINO, sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.HAPIE_POINT_KEI_NO));
				
				//eoIDの取得
				//SQL実行
// 2017.05.31 OM-2017-0000494 MOD START
//				executeCK_T_CUST_AC_SELECT_002(new String[] {sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.SYSID)});
				executeCK_T_CUST_AC_SELECT_002(new String[] {sysIdRecord.getString(JBSbatKK_T_HAPIE_POINT_KEI.SYSID), super.opeDate });
// 2017.05.31 OM-2017-0000494 MOD END
				//レコード取得
				JBSbatCommonDBInterface eoIdRecord = db_CK_T_CUST.selectNext();
				//レコードの存在チェック
				if(eoIdRecord == null)
				{
					//レコードが存在しないとき、更新・追加をせずに次のデータへ
					super.logPrint.printBusinessErrorLog("EACB0820KW", new String[] { hapieNo });
					super.commonItem.addErrorCount(1);
					continue;
				}
				
				//eoIDの設定
				detailMap.put(KEY_EOID, eoIdRecord.getString(JBSbatCK_T_CUST.EOID));
			}
			
			//SYSID
			String sysId = detailMap.get(KEY_SYSID).toString();
				
			//eoID
			String eoId = detailMap.get(KEY_EOID).toString();
			
			//はぴｅポイント契約番号
			String hapiepointKeiNo = detailMap.get(KEY_HAPIEPOINTKEINO).toString();
			
			// システム日付を取得
			String sysDateTime = JCCBatCommon.getSysDateTimeStamp();
			
			//倍付・訂正ポイント数
			String baizukePoint = detailMap.get(KEY_BAIZUKE + KEY_POINT).toString();
			String teisePoint = detailMap.get(KEY_TEISE + KEY_POINT).toString();
			
			//ポイント反映結果コード
			String errCd = detailMap.get(KEY_HANEIERRCD).toString();
			
			//データパターンチェックでエラーのとき、登録・更新用のポイントを設定
			if(!HANEIERRCD_NORMAL.equals(errCd)
				&& !HANEIERRCD_0100.equals(errCd)
				&& !HANEIERRCD_0200.equals(errCd))
			{
				//登録・更新用ポイント
				baizukePoint = detailMap.get(KEY_BAIZUKE + KEY_UPDATE + KEY_POINT).toString();
				teisePoint = detailMap.get(KEY_TEISE + KEY_UPDATE + KEY_POINT).toString();
			}
			else if(HANEIERRCD_NORMAL.equals(errCd))
			{
				errCd = "0000";
			}
			
			//「はぴｅポイント」に存在していた(KOPTから送信あり)とき更新処理
			if("有".equals(detailMap.get(KEY_SENDFLG)))
			{
				executeAC_T_HAPIEPOINT_AC_UPDATE_001(
						new Object[]{
								errCd,
								baizukePoint,
								teisePoint,
								hapieNo,
								seikyYm
						});
			}
			//「はぴｅポイント」に存在していない(KOPT側から送信なし)とき追加処理
			else
			{
				executeAC_T_HAPIEPOINT_PKINSERT(
						new Object[]{
								hapiepointKeiNo,
								seikyYm,
								hapieNo,
								eoId,
								sysId,
								0,
								0,
								null,
								errCd,
								baizukePoint,
								teisePoint,
								sysDateTime,
								super.batchUserId,
								sysDateTime,
								super.batchUserId,
								null,
								null,
								"0",
								null,
								null,
								null,
								null,
								null,
								null
						});
			}
					
		}
	}
	
	/**
	 * はぴｅポイント反映チェックリストの出力用データ作成
	 * 
	 * @throws Exception
	 */
	private JBSbatOutputItem divHaneiChkLst() throws Exception
	{
		
		//入出力インターフェースオブジェクト
		JBSbatOutputItem outMap = new JBSbatOutputItem();

		//反映結果ごとにMapを用意
		Map<String, Map<String, Object>> haneiOKDelMap = new TreeMap<String, Map<String, Object>>();
		Map<String, Map<String, Object>> haneiOKTeiseMap = new TreeMap<String, Map<String, Object>>();
		Map<String, Map<String, Object>> haneiErrMap = new TreeMap<String, Map<String, Object>>();

		for (Map.Entry<String, Map<String, Object>> tranMap : jujuDataMap.entrySet())
		{
			String hapieNo = tranMap.getKey();
			Map<String, Object> detailMap = tranMap.getValue();
			
			Map<String, Object> outItemMap = new HashMap<String, Object>();
			
			//反映結果が空白(正常)のとき、次のデータへ
			String haneiRslt = detailMap.get(KEY_HANEIRSLT).toString();
			if("".equals(haneiRslt))
			{
				continue;
			}
			
			//計算ポイント数
			String calcPoint = detailMap.get(KEY_CALC + KEY_POINT).toString();
			//計算ポイント送信が空文字のとき、計算ポイント数を空文字に置き換える。
			if("".equals(detailMap.get(KEY_SENDFLG).toString()))
			{
				calcPoint = "";
			}
			
			//倍付ポイント数
			String baizukePoint = detailMap.get(KEY_BAIZUKE + KEY_POINT).toString();
			//倍付ポイント受信が空文字のとき、倍付ポイント数を空文字に置き換える。
			if("".equals(detailMap.get(KEY_BAIZUKE + KEY_RCVFLG).toString()))
			{
				baizukePoint = "";
			}
			
			//訂正ポイント数
			String teisePoint = detailMap.get(KEY_TEISE + KEY_POINT).toString();
			//訂正ポイント受信が空文字のとき、訂正ポイント数を空文字に置き換える。
			if("".equals(detailMap.get(KEY_TEISE + KEY_RCVFLG).toString()))
			{
				teisePoint = "";
			}
			
			//eoID
			String eoId = detailMap.get(KEY_EOID).toString();
			//eoIDが12桁以上のとき、前12桁を設定する
			if(12 <= eoId.length())
			{
				eoId = eoId.substring(0, 12);
			}
			//SYSID
			String sysId = detailMap.get(KEY_SYSID).toString();
			
			//出力項目
			//反映結果
			outItemMap.put(KEY_HANEIRSLT, getHaneiRsltMsg(haneiRslt));
			//eoID
			outItemMap.put(KEY_EOID, eoId);
			//SYSID
			outItemMap.put(KEY_SYSID, sysId);
			//計算ポイント送信有無
			outItemMap.put(KEY_SENDFLG, detailMap.get(KEY_SENDFLG));
			//計算ポイント数
			outItemMap.put(KEY_CALC + KEY_POINT, calcPoint);
			//倍付けポイント受信有無
			outItemMap.put(KEY_BAIZUKE + KEY_RCVFLG, detailMap.get(KEY_BAIZUKE + KEY_RCVFLG));
			//倍付けポイント数
			outItemMap.put(KEY_BAIZUKE + KEY_POINT, baizukePoint);
			//訂正ポイント受信
			outItemMap.put(KEY_TEISE + KEY_RCVFLG, detailMap.get(KEY_TEISE + KEY_RCVFLG));
			//訂正ポイント数
			outItemMap.put(KEY_TEISE + KEY_POINT, teisePoint);
			//エラーコード
			outItemMap.put(KEY_ERRCD, detailMap.get(KEY_ERRCD));
			//反映エラーメッセージ
			outItemMap.put(KEY_HANEIERRMSG, getHaneiErrMsg(detailMap.get(KEY_HANEIERRCD).toString()));
			
			//反映結果ごとに振り分け
			if("1".equals(haneiRslt))
			{
				haneiOKDelMap.put(hapieNo, outItemMap);
			}
			else if("2".equals(haneiRslt))
			{
				haneiOKTeiseMap.put(hapieNo, outItemMap);
			}
			else if("3".equals(haneiRslt))
			{
				haneiErrMap.put(hapieNo, outItemMap);
			}
		}
		
		// 出力するデータがあるとき、反映チェックリストの出力
		if(!haneiOKDelMap.isEmpty() || !haneiOKTeiseMap.isEmpty() || !haneiErrMap.isEmpty())
		{
			Map<String, Map<String, Map<String, Object>>> haneiChkLstMap = new TreeMap<String, Map<String, Map<String, Object>>>();
			haneiChkLstMap.put("1", haneiErrMap);
			haneiChkLstMap.put("2", haneiOKTeiseMap);
			haneiChkLstMap.put("3", haneiOKDelMap);
			outMap = outputHaneiChkLst(haneiChkLstMap);
		}
		return outMap;
	}
	
	/**
	 * 反映エラーコードから反映エラーメッセージを取得
	 * @param haneiRslt 反映結果	
	 * @throws Exception
	 * @return 反映エラーコードに対する文言
	 */
	private String getHaneiRsltMsg(String haneiRslt) throws Exception
	{
		String haneiRsltMsg = "";
		
		if(HANEIRSLT_1.equals(haneiRslt))
		{
			haneiRsltMsg = "反映ＯＫ（会員削除）";
		}
		
		else if(HANEIRSLT_2.equals(haneiRslt))
		{
			haneiRsltMsg = "反映ＯＫ（ポイント訂正）";
		}
		else if(HANEIRSLT_3.equals(haneiRslt))
		{
			haneiRsltMsg = "反映エラー";
		}
		return haneiRsltMsg;
	}
	
	/**
	 * 反映エラーコードから反映エラーメッセージを取得
	 * @param haneiErrCd	
	 * @throws Exception
	 * @return 反映エラーコードに対する文言
	 */
	private String getHaneiErrMsg(String haneiErrCd) throws Exception
	{
		String haneiErrMsg = "";

		if(HANEIERRCD_0300.equals(haneiErrCd))
		{
			haneiErrMsg = "会員未登録";
		}
		
		else if(HANEIERRCD_0400.equals(haneiErrCd))
		{
			haneiErrMsg = "会員削除済";
		}
		else if(HANEIERRCD_3000.equals(haneiErrCd))
		{
			haneiErrMsg = "ポイント倍付エラー";
		}
		else if(HANEIERRCD_9100.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（倍付ポイント受信なし）";
		}
		else if(HANEIERRCD_9200.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（倍付ポイント重複）";
		}
		else if(HANEIERRCD_9300.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（訂正ポイント重複）";
		}
		else if(HANEIERRCD_9400.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（エラーコード未定義）";
		}
		else if(HANEIERRCD_9500.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（エラーコード不一致）";
		}
		else if(HANEIERRCD_9600.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（不要な倍付ポイント受信）";
		}
		// OM-2017-0001146 ADD START
		else if(HANEIERRCD_9700.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常（ＳＹＳＩＤ未設定）";
		}
		// OM-2017-0001146 ADD END
		else if(HANEIERRCD_9999.equals(haneiErrCd))
		{
			haneiErrMsg = "受信データ異常";
		}
		
		return haneiErrMsg;
	}
	
	/**
	 * はぴｅポイント反映チェックリストの出力処理
	 * @param haneiChkLstMap	出力リストMap
	 * @throws Exception
	 */
	private JBSbatOutputItem outputHaneiChkLst(Map<String, Map<String, Map<String, Object>>> haneiChkLstMap) throws Exception
	{
		//入出力インターフェースオブジェクト
		JBSbatOutputItem outputInItem = new JBSbatOutputItem();
		
		for(Entry<String, Map<String, Map<String, Object>>> haneiRsltMap : haneiChkLstMap.entrySet())
		{
			for(Entry<String, Map<String, Object>> memberMap : haneiRsltMap.getValue().entrySet())
			{
				Map<String, Object> detailMap = memberMap.getValue();
				
				//入出力インターフェースオブジェクト
				JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
								
				outMap.set(JBSbatACIFE029.HANEI_RSLT, detailMap.get(KEY_HANEIRSLT));
				outMap.set(JBSbatACIFE029.EOID, detailMap.get(KEY_EOID));
				outMap.set(JBSbatACIFE029.SYSID, detailMap.get(KEY_SYSID));
				outMap.set(JBSbatACIFE029.HAPIE_NO, memberMap.getKey());
				outMap.set(JBSbatACIFE029.CALK_POINT_SND, detailMap.get(KEY_SENDFLG));
				outMap.set(JBSbatACIFE029.CALK_POINT_CNT, detailMap.get(KEY_CALC + KEY_POINT));
				outMap.set(JBSbatACIFE029.BAIZUKE_POINT_RCV, detailMap.get(KEY_BAIZUKE + KEY_RCVFLG));
				outMap.set(JBSbatACIFE029.BAIZUKE_POINT_CNT, detailMap.get(KEY_BAIZUKE + KEY_POINT));
				outMap.set(JBSbatACIFE029.TEISE_POINT_RCV, detailMap.get(KEY_TEISE + KEY_RCVFLG));
				outMap.set(JBSbatACIFE029.TEISE_POINT_CNT, detailMap.get(KEY_TEISE + KEY_POINT));
				outMap.set(JBSbatACIFE029.ERR_CD, detailMap.get(KEY_ERRCD));
				outMap.set(JBSbatACIFE029.HANEI_ERR_MSG, detailMap.get(KEY_HANEIERRMSG));
				
				outMap.setOutFlg(true);
				outputInItem.addOutMapList(outMap);
			}
		}
		return outputInItem;
	}
}
