/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKEoelecTkJknChkList
*	ソースファイル名	：JBSbatKKEoelecTkJknChkList.java
*	作成者				：富士通　
*	作成日				：2015年06月05日
*＜機能概要＞
*　eo電気提供条件チェックリスト作成部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v16.00.00	2015/06/05  FJ)酒井		ANK-2480-00-00 新規作成
*	v25.00.00	2016/06/06  FJ)山裾		OM-2016-0001212（性能改善対応）
*	v29.00.00	2016/06/06  FJ)奥村		ANK-2990-00-00step2-2対応
*********************************************************************/
package eo.business.service;
//ANK-2990-00-00 ADD START
import java.util.HashMap;
//ANK-2990-00-00 ADD END

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKKBatCommon;
import eo.business.common.JKKBatConst;
import eo.business.util.file.JBSbatKKIFM633;
import eo.business.util.file.JBSbatKKIFM713;
import eo.common.constant.JACStrConst;
import eo.common.util.JPCDateUtil;
import eo.framework.db.JBSbatSQLAccess;
//ANK-2990-00-00 ADD START
import eo.framework.item.JBSbatCommonDBInterface;
//ANK-2990-00-00 ADD END
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.common.util.JKKStringUtil;
//ANK-2990-00-00 ADD START
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.business.util.table.JBSbatKK_T_SEIKY_KEI;
import eo.common.util.JCCToolTextDateFormat;
import eo.business.common.JZMBatConst;
import eo.business.util.table.JBSbatZM_M_CD_NM_KANRI;
import eo.common.constant.JKKStrConst;
//ANK-2990-00-00 ADD END

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKEoelecTkJknChkList extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ダウンロードファイル管理)*/
	private static final String D_TBL_NAME_ZM_T_DL_FILE_KANRI = "ZM_T_DL_FILE_KANRI";
	
// ANK-2990-00-00 ADD START
	/** テーブル(課金先)*/
	private static final String D_TBL_NAME_KK_T_KAKINS = "KK_T_KAKINS";
	/** テーブルアクセスクラス(課金先)*/
	private JBSbatSQLAccess db_KK_T_KAKINS = null;

	/** テーブル(コード名称管理)*/
	private static final String D_TBL_NAME_ZM_M_CD_NM_KANRI = "ZM_M_CD_NM_KANRI";
	/** テーブルアクセスクラス(コード名称管理)*/
	private JBSbatSQLAccess db_ZM_M_CD_NM_KANRI = null;
// ANK-2990-00-00 ADD END
	/** テーブルアクセスクラス(ダウンロードファイル管理)*/
	private JBSbatSQLAccess db_ZM_T_DL_FILE_KANRI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** サービス契約番号（eo電気）**/
	private static final String DNK_SVC_KEI_NO = "DNK_SVC_KEI_NO";
	/** SYSID（eo電気）**/
	private static final String DNK_SYSID = "DNK_SYSID";
	/** 請求契約番号（eo電気）**/
	private static final String DNK_SEIKY_KEI_NO = "DNK_SEIKY_KEI_NO";
	/** サービス契約グループ種別コード（eo電気）**/
	private static final String DNK_SVKEI_GRP_SBT_CD = "DNK_SVKEI_GRP_SBT_CD";
	/** サービス契約番号（eo光ネット）**/
	private static final String NET_SVC_KEI_NO = "NET_SVC_KEI_NO";
	/** SYSID（eo光ネット）**/
	private static final String NET_SYSID = "NET_SYSID";
	/** 請求契約番号（eo光ネット）**/
	private static final String NET_SEIKY_KEI_NO = "NET_SEIKY_KEI_NO";
	/** 請求方法コード（ｅｏ電気）**/
	private static final String DNK_SEIKY_WAY_CD = "DNK_SEIKY_WAY_CD";
// ANK-2990-00-00 ADD START
	/** SQL定義キー(KK_SELECT_052)*/
	private static final String KK_T_KAKINS_KK_SELECT_052 = "KK_SELECT_052";
	/** SQL定義キー(AC_SELECT_002)*/
	private static final String ZM_M_CD_NM_KANRI_AC_SELECT_002= "AC_SELECT_002";
	/** クレジットカードステータス：100(審査済) */
	private static final String CRECARD_STAT_100 = "100";
	/** 支払方法コード名称*/
	private HashMap<String, String> mapCdNmKanr;
// ANK-2990-00-00 ADD END

	/** メッセージ1 **/
	private static final String MSG1 = "対象のeo電気契約はeo光ネット契約との同一利用場所が未設定です。";
	/** メッセージ2 **/
	private static final String MSG2 = "対象のeo電気契約と同一利用場所となっているeo光ネット契約が解約済／キャンセル済です。";
	/** メッセージ3 **/
	private static final String MSG3 = "対象のeo電気契約は同一利用場所となっているeo光ネット契約と同一お客様ではありません。";
	/** メッセージ4 **/
	private static final String MSG4 = "対象のeo電気契約は同一利用場所となっているeo光ネット契約と同一請求先ではありません。";
	/** メッセージ5 **/
// ANK-2990-00-00 MOD START
	//	private static final String MSG5 = "対象のeo電気契約の支払方法が窓口払いです。";
	private static final String MSG5 = "対象のeo電気契約の支払方法が窓口払い、もしくは無効です。";
	/** メッセージ追加情報コード */
	// 0:追加情報なし
	// 2:MSG2-解約時の解約起算日
	// 5:MSG5-窓口払い時の予約適用年月日及び請求方法
	private int msgAddDataCd = 0;
	
	/** メッセージ追加情報コード MSG2-解約時の解約起算日*/
	private static final int MSG2_ADD= 2;
	
	/** メッセージ追加情報コード MSG5-窓口払い時の予約適用年月日及び請求方法*/
	private static final int MSG5_ADD= 5;
// ANK-2990-00-00 MOD END

	/** データ件数*/
	private long dataCount = 0;
	
	/** CSVファイルパス*/
	private String csvFilePath = null;
	
	/** CSVファイル名*/
	private String csvFileName = null;

	/**処理管理番号（eo電気提供条件チェックリスト）**/
	public static final String TRAN_KANRI_NO = "000000000124";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_ZM_T_DL_FILE_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_T_DL_FILE_KANRI);
// ANK-2990-00-00 ADD START
		db_KK_T_KAKINS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_KAKINS);
		db_ZM_M_CD_NM_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_ZM_M_CD_NM_KANRI);
		// 支払方法コード名称を取得
		mapCdNmKanr = executeSelectCdNmKanri("CD00166");
// ANK-2990-00-00 ADD END

		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		// フリー項目取得
		String[] freeItem = super.freeItem.split(JKKBatConst.S_PARAM_DELIM);
		
		// CSVファイルパスを設定
		csvFilePath = freeItem[0];
		// CSVファイル名を設定
		csvFileName = freeItem[1];
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

// ANK-2990-00-00 ADD START
		// 追加情報取得
		JBSbatCommonDBInterface rcvMapAdd = new JBSbatCommonDBInterface();	
// ANK-2990-00-00 ADD END
		
		// 2016.06.06 OM-2016-0001212 Add Start
		// 対象データの判定を行う
		Boolean wTgFlg = false;
		
		// サービス契約グループ種別コード（電気）がNULL
		if (JKKStringUtil.isNullBlank((String)inMap.get(JBSbatKKIFM713.DNK_SVKEI_GRP_SBT_CD)))
		{
			wTgFlg = true;
		}
		
		// サービス契約番号（ネット）がNULL
		if (JKKStringUtil.isNullBlank((String)inMap.get(JBSbatKKIFM713.NET_SVC_KEI_NO)))
		{
			wTgFlg = true;
		}
		
		// ＳＹＳＩＤ（電気） <> ＳＹＳＩＤ（ネット）
		String wDnkSysid = JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.DNK_SYSID));
		String wNetSysid = JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.NET_SYSID));
		if (wDnkSysid.compareTo(wNetSysid) != 0)
		{
			wTgFlg = true;
		}
		
		// 請求契約番号（電気） <> 請求契約番号（ネット）
		String wDnkSeikyKeiNo = JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.DNK_SEIKY_KEI_NO));
		String wNetSeikyKeiNo = JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.NET_SEIKY_KEI_NO));
		if (wDnkSeikyKeiNo.compareTo(wNetSeikyKeiNo) != 0)
		{
			wTgFlg = true;
		}
		
		// 請求方法コード（電気）= "1"
		if ("1".compareTo((String)inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) == 0)
		{
			wTgFlg = true;
		}
		// 2016.06.06 OM-2016-0001212 Add End
// ANK-2990-00-00 ADD START
		// 請求方法コード（電気）口座振替= "2" ＆ 申請ＮＧ
		if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && JKKStrConst.PAY_SKEKKA_CD_KHRI_SHINSEI_NG.equals(inMap.get(JBSbatKKIFM713.DNK_PAY_SKEKKA_CD)))
		{
			wTgFlg = true;
		}
		// 請求方法コード（電気）郵便自動振込= "3" ＆ 申請ＮＧ
		if (JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && JKKStrConst.PAY_SKEKKA_CD_YJHRI_SHINSEI_NG.equals(inMap.get(JBSbatKKIFM713.DNK_PAY_SKEKKA_CD)))
		{
			wTgFlg = true;
		}
		// 請求方法コード（電気）クレジットカード= "4" ＆ 審査済（クレジットカード無効期限）もしくは無効
		if (
			(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && CRECARD_STAT_100.equals(inMap.get(JBSbatKKIFM713.DNK_CRECARD_STAT))) ||
			(JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && JACStrConst.CRECARD_STAT_MK.equals(inMap.get(JBSbatKKIFM713.DNK_CRECARD_STAT)))
		)
		{
			wTgFlg = true;
		}
// ANK-2990-00-00 ADD END

		// 出力情報
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		// 2016.06.06 OM-2016-0001212 Add Start
		if (!wTgFlg)
		{
			//入出力インターフェースオブジェクトを生成
			JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
			outmap.setOutFlg(false);
//			outputItem.addOutMapList(getOutItem(inMap));
		}
		else
		{
			// 2016.06.06 OM-2016-0001212 Add End
// ANK-2990-00-00 MOD START
//			outputItem.addOutMapList(getOutItem(inMap));
			// パラメータの設定
			Object[] setParam = {
				super.opeDate,   		// 運用日
				super.opeDate,   		// 運用日
				(String)inMap.get(JBSbatKKIFM713.DNK_SVC_KEI_NO),	// サービス契約番号
				JZMBatConst.IN_ENDYMD,	// 最終年月日
				JZMBatConst.IN_ENDYMD,	// 最終年月日
				JZMBatConst.IN_ENDYMD	// 最終年月日
			};

			// サービス契約よりデータ抽出
			executeKK_T_KAKINS_KK_SELECT_052(setParam);
			// 課金先データを元に追加情報用の判断情報を取得する ※先頭行のみ取得
			rcvMapAdd = db_KK_T_KAKINS.selectNext();
			outputItem.addOutMapList(getOutItem(inMap, rcvMapAdd));
// ANK-2990-00-00 MOD END

			// カウントアップ
			dataCount++;
		
		// 2016.06.06 OM-2016-0001212 Add Start
		}
		// 2016.06.06 OM-2016-0001212 Add End
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		
		if(commonItem.getOutPutFile() != null) {
			commonItem.getOutPutFile().close();
		}
		
		// ダウンロードファイル管理登録処理
		insertDlFileKanri();
		
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_ZM_T_DL_FILE_KANRI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * 処理概要：
	 * 
	 * 「eo電気提供条件チェックリスト」の作成します。
	 * 
	 * @param inMap
	 * @param rcvMapAdd		ANK-2990-00-00 ADD
	 * @return 
	 * @throws Exception	ANK-2990-00-00 ADD
	 */
// ANK-2990-00-00 MOD START
//	private JBSbatServiceInterfaceMap getOutItem(JBSbatServiceInterfaceMap inMap){
	private JBSbatServiceInterfaceMap getOutItem(JBSbatServiceInterfaceMap inMap, JBSbatCommonDBInterface rcvMapAdd) throws Exception {
			
		//追加情報
		String dbSeikyKei_No;
		String dbSeikyWayNoKoza;
		String dbSeikyWayNoCrecard;
		String dbRsvAplyYmd;
		String dbSeikyWayCd;
		String dbSvcKeiStat;
		String dbSvcDslKisanYmd;
		String strSeikyWayNm;
		String strRsvAplyYmd;
		String strSvcDslKisanYmd;
// ANK-2990-00-00 MOD END
		
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		// 出力フラグを設定
		outmap.setOutFlg(true);
		
		// サービス契約番号（eo電気）
		outmap.set(JBSbatKKIFM633.SVC_KEI_NO_EOELEC, inMap.get(DNK_SVC_KEI_NO));
		// SYSID（eo電気）
		outmap.set(JBSbatKKIFM633.SYSID_EOELEC, inMap.get(DNK_SYSID));
		// 請求契約番号（eo電気）
		outmap.set(JBSbatKKIFM633.SEIKY_KEI_NO_EOELEC, inMap.get(DNK_SEIKY_KEI_NO));
		// サービス契約番号（eo光ネット）
		outmap.set(JBSbatKKIFM633.SVC_KEI_NO_EOH_NET, inMap.get(NET_SVC_KEI_NO));
		// SYSID（eo光ネット）
		outmap.set(JBSbatKKIFM633.SYSID_EOH_NET, inMap.get(NET_SYSID));
		// 請求契約番号（eo光ネット）
		outmap.set(JBSbatKKIFM633.SEIKY_KEI_NO_EOH_NET, inMap.get(NET_SEIKY_KEI_NO));
		
		// メッセージ
		outmap.set(JBSbatKKIFM633.MSG, getMsg(inMap));
		
// ANK-2990-00-00 ADD START
		dbSeikyKei_No = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_KEI_NO));
		dbSeikyWayNoKoza = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_NO_KOZA));
		dbSeikyWayNoCrecard = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_NO_CRECARD));
		dbRsvAplyYmd = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SEIKY_KEI.RSV_APLY_YMD));
		dbSeikyWayCd = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SEIKY_KEI.SEIKY_WAY_CD));
		dbSvcKeiStat = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_STAT));
		dbSvcDslKisanYmd = JKKStringUtil.nullToBlank(rcvMapAdd.getString(JBSbatKK_T_SVC_KEI.SVC_DSL_KISAN_YMD));

		// 未来の支払方法を取得
		if (MSG5_ADD == msgAddDataCd)
		{
			if (!(
					dbSeikyKei_No.equals(JKKStringUtil.nullToBlank(inMap.getString(JBSbatKKIFM713.DNK_SEIKY_KEI_NO))) &&
					dbSeikyWayNoKoza.equals(JKKStringUtil.nullToBlank(inMap.getString(JBSbatKKIFM713.DNK_SEIKY_WAY_NO_KOZA))) &&
					dbSeikyWayNoCrecard.equals(JKKStringUtil.nullToBlank(inMap.getString(JBSbatKKIFM713.DNK_SEIKY_WAY_NO_CRECARD)))
				))
			{
				// コード名称
				strSeikyWayNm = mapCdNmKanr.get(dbSeikyWayCd);
				outmap.set(JBSbatKKIFM633.SEIKY_WAY_NM_EOELEC, strSeikyWayNm);
				// 予約適用日
				strRsvAplyYmd = new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(dbRsvAplyYmd);
				outmap.set(JBSbatKKIFM633.RSV_APLY_YMD_EOELEC, strRsvAplyYmd);
			}
		}

		if (MSG2_ADD == msgAddDataCd)
		{
			// 解約起算日を取得
			if (JKKStrConst.CD00037_DSL_ZM.equals(dbSvcKeiStat) && "".equals(JKKStringUtil.nullToBlank(inMap.getString(JBSbatKKIFM713.NET_SVC_KEI_NO)))) {
				// 解約起算日
				strSvcDslKisanYmd = new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(dbSvcDslKisanYmd);
				outmap.set(JBSbatKKIFM633.SVC_DSL_KISAN_YMD_EOH_NET, strSvcDslKisanYmd);
			}
		}
// ANK-2990-00-00 ADD END
		return outmap;
	}

	/**
	 * 処理概要：
	 * 
	 * (1)サービス契約グループ設定．サービス契約グループ種別コードがNULLの場合
	 *    サービス契約グループ設定のサービス契約グループ種別コードが「同一利用場所」のデータが取得できなかった場合、
	 *    以下のメッセージを返します。
	 *    「対象のeo電気契約はeo光ネット契約との同一利用場所が未設定です。」
	 *	
	 * (2)サービス契約<eo光ネット>情報．サービス契約番号がNULLの場合
	 *    サービス契約<eo光ネット>が取得できなかった場合、
	 *    以下のメッセージを返します。
	 *    「対象のeo電気契約と同一利用場所となっているeo光ネット契約が解約済／キャンセル済です。」
	 *
	 * (3)サービス契約．SYSID　≠　サービス契約<eo光ネット>情報．SYSIDの場合
	 *    eo電気のSYSIDとeo光ネットのSYSIDが異なる場合、
	 *    以下のメッセージを返します。
	 *    「対象のeo電気契約は同一利用場所となっているeo光ネット契約と同一お客様ではありません。」
	 *
	 * (4)課金先．請求契約番号　≠　サービス契約<eo光ネット>情報．請求契約番号
	 *    eo電気の請求契約番号とeo光ネットの請求契約番号が異なる場合、
	 *    以下のメッセージを返します。
	 *    「対象のeo電気契約は同一利用場所となっているeo光ネット契約と同一請求先ではありません。」
	 * 
	 * (5)請求契約.請求方法コード　＝　"1"(窓口払い)
	 *    請求契約.請求方法コードが"1"(窓口払い)である場合
	 *    以下のメッセージを出力します。
	 *    「対象のeo電気契約の支払方法が窓口払い、もしくは無効です。」
	 *    
	 * (6)請求契約.請求方法コード　＝　"2"(口座振替) ＆＆　口座振替申請ＮＧ（空白ではない＝ＮＧ）
	 *    請求契約.請求方法コードが"2"(口座振替)で、口座振替申請ＮＧの場合
	 *    以下のメッセージを出力します。
	 *    「対象のeo電気契約の支払方法が窓口払い、もしくは無効です。」
	 *    ANK-2990-00-00 ADD
	 *    
	 * (7)請求契約.請求方法コード　＝　"3"(郵便自動振替) ＆＆　郵便自動振込申請ＮＧ（空白ではない＝ＮＧ）
	 *    請求契約.請求方法コードが"3"(郵便自動振替)で、郵便自動振込申請ＮＧの場合
	 *    以下のメッセージを出力します。
	 *    「対象のeo電気契約の支払方法が窓口払い、もしくは無効です。」
	 *    ANK-2990-00-00 ADD
	 *    
	 * (8)請求契約.請求方法コード　＝　"4"(クレジットカード) ＆＆　ステータスが審査済（クレジットカード無効年月がバッチ運用日を含む過去）（空白ではない＝ＮＧ）又は
	 *    請求契約.請求方法コード　＝　"4"(クレジットカード) ＆＆　ステータスが無効（空白ではない＝ＮＧ）
	 *    以下のメッセージを出力します。
	 *    「対象のeo電気契約の支払方法が窓口払い、もしくは無効です。」
	 *    ANK-2990-00-00 ADD
	 * 
	 * @param inMap
	 * @return
	 */
	private String getMsg(JBSbatServiceInterfaceMap inMap) {
// ANK-2990-00-00 ADD START
		// 追加情報コード初期化
		msgAddDataCd = 0;
// ANK-2990-00-00 ADD END
		
		if(null == inMap.get(DNK_SVKEI_GRP_SBT_CD) || "".equals(inMap.get(DNK_SVKEI_GRP_SBT_CD))){
			return MSG1;
		}else if (null == inMap.get(NET_SVC_KEI_NO) || "".equals(inMap.get(NET_SVC_KEI_NO))) {
// ANK-2990-00-00 ADD START
			msgAddDataCd = MSG2_ADD;
// ANK-2990-00-00 ADD END
			return MSG2;
		}else if (!inMap.get(DNK_SYSID).equals(inMap.get(NET_SYSID))) {
			return MSG3;
		}else if (!inMap.get(DNK_SEIKY_KEI_NO).equals(inMap.get(NET_SEIKY_KEI_NO))) {
			return MSG4;
		}else if (JACStrConst.SEIKY_MADOGUCHI.equals(inMap.get(DNK_SEIKY_WAY_CD))) {
// ANK-2990-00-00 ADD START
			msgAddDataCd = MSG5_ADD;
// ANK-2990-00-00 ADD END
			return MSG5;
// ANK-2990-00-00 ADD START
		}else if (JACStrConst.SEIKY_KHRI.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && !"".equals(JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.DNK_PAY_SKEKKA_CD)))) {
			return MSG5;
		}else if (JACStrConst.SEIKY_YUFUIRI.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && !"".equals(JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.DNK_PAY_SKEKKA_CD)))) {
			return MSG5;
		}else if (JACStrConst.SEIKY_CREDIT.equals(inMap.get(JBSbatKKIFM713.DNK_SEIKY_WAY_CD)) && !"".equals(JKKStringUtil.nullToBlank((String)inMap.get(JBSbatKKIFM713.DNK_CRECARD_STAT)))) {
			return MSG5;
// ANK-2990-00-00 ADD END
		}
		
		return "";
	}

	/**
	 * 電子ファイル管理／ダウンロードファイル管理の登録
	 * @throws Exception
	 */
	private void insertDlFileKanri() throws Exception
	{
		
		// 削除日付の取得(現在日付の1ヶ月後)
		String delYmd = JPCDateUtil.addMonth(super.opeDate, 1);

		JKKBatCommon.createFile(commonItem,
								TRAN_KANRI_NO,
								Long.valueOf(dataCount),
								null,
								csvFilePath,
								csvFileName,
								delYmd,
								db_ZM_T_DL_FILE_KANRI,
								true);		
	}

// ANK-2990-00-00 ADD START
	/**
	 * SQLKEY(KK_SELECT_052)で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_KAKINS_KK_SELECT_052(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		// DBアクセスを実行します
		db_KK_T_KAKINS.selectBySqlDefine(paramList, KK_T_KAKINS_KK_SELECT_052);
	}

	/**
	 * 引数と一致するコード名称ハッシュマップを取得します。
	 * @param cdSbtCd コード種別コード
	 * @return コード名称ハッシュマップ
	 * @throws Exception
	 */
	private HashMap<String, String> executeSelectCdNmKanri(String cdSbtCd) throws Exception
	{
		HashMap<String, String> map = new HashMap<String, String>();
		
		String[] param = {cdSbtCd, super.opeDate, super.opeDate};
		executeZM_M_CD_NM_KANRI_AC_SELECT_002(param);
		
		JBSbatCommonDBInterface dbif = db_ZM_M_CD_NM_KANRI.selectNext();
		
		String cd = null;
		String nm = null;

		while(dbif != null)
		{
			cd = dbif.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV);
			nm = dbif.getString(JBSbatZM_M_CD_NM_KANRI.CD_DIV_NM);
			map.put(cd, nm);
			dbif = db_ZM_M_CD_NM_KANRI.selectNext();
		}
		return map;
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(AC_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	コード種別コード
	 *		 	コード適用開始年月日
	 *		 	コード適用終了年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeZM_M_CD_NM_KANRI_AC_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_ZM_M_CD_NM_KANRI.selectBySqlDefine(paramList, ZM_M_CD_NM_KANRI_AC_SELECT_002);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
// ANK-2990-00-00 ADD END
	
}
