/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCNContUseAutoDoiAdd
*	ソースファイル名	：JBSbatCNContUseAutoDoiAdd.java
*	作成者				：富士通　
*	作成日				：2024年11月12日
*＜機能概要＞
*　コンテンツ利用規約自動同意登録部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v73.00.00	2024/11/20	FJ)丸田	【ANK-4570-00-00】コンテンツ新規同時申込み時契約仕様見直し対応
*	v74.00.00	2025/02/28	FJ)佐々木	【ANK-4668-00-00】コンテンツ新規同時申込み時契約仕様見直し メール文面変更対応
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCNIFM022;
import eo.business.util.table.JBSbatCH_T_TOKUSOKU;
import eo.business.util.table.JBSbatCK_M_OPTINM;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatCK_T_RRKS;
import eo.common.constant.JCKStrConst;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCModelConstant;
import eo.framework.application.JCCbatFrameworkException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatStringUtil;
import eo.framework.util.JCCBatchEsbInterface;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCNContUseAutoDoiAdd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(異動予約)*/
	private static final String D_TBL_NAME_KK_T_IDO_RSV = "KK_T_IDO_RSV";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(オプトインメール)*/
	private static final String D_TBL_NAME_CK_M_OPTINM = "CK_M_OPTINM";

	/** SQL定義キー(CN_SELECT_007)*/
	private static final String CK_T_CUST_CN_SELECT_007 = "CN_SELECT_007";

	/** SQL定義キー(CN_SELECT_008)*/
	private static final String CK_T_CUST_CN_SELECT_008 = "CN_SELECT_008";

	/** SQL定義キー(CN_SELECT_009)*/
	private static final String CK_T_CUST_CN_SELECT_009 = "CN_SELECT_009";

	/** SQL定義キー(CN_SELECT_010)*/
	private static final String CK_T_CUST_CN_SELECT_010 = "CN_SELECT_010";

	/** SQL定義キー(CN_SELECT_011)*/
	private static final String CK_T_CUST_CN_SELECT_011 = "CN_SELECT_011";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String KK_T_IDO_RSV_CN_SELECT_001 = "CN_SELECT_001";

	/** SQL定義キー(CN_SELECT_020)*/
	private static final String KK_T_SVC_KEI_CN_SELECT_020 = "CN_SELECT_020";
	
	/** SQL定義キー(CN_SELECT_021)*/
	private static final String KK_T_SVC_KEI_CN_SELECT_021 = "CN_SELECT_021";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String CK_M_OPTINM_CN_SELECT_001 = "CN_SELECT_001";

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(異動予約)*/
	private JBSbatSQLAccess db_KK_T_IDO_RSV = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(オプトインメール)*/
	private JBSbatSQLAccess db_CK_M_OPTINM = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** ログメッセージＩＤ : ECNB0530AI */
	private static final String ECNB0530AI = "ECNB0530AI";
	
	/** ログメッセージＩＤ : ECNB0520KW */
	private static final String ECNB0520KW = "ECNB0520KW";
	
	/**エラー内容：「コンテンツ連絡先メールアドレス登録処理　回線契約状態チェックエラー」*/
	private static final String ERR_MSG_01 = "コンテンツ連絡先メールアドレス登録処理　回線契約状態チェックエラー";
	
	/**エラー内容：「コンテンツ連絡先メールアドレス登録処理　登録用メールアドレス取得エラー」*/
	private static final String ERR_MSG_02 = "コンテンツ連絡先メールアドレス登録処理　登録用メールアドレス取得エラー";
	
	/**エラー内容：「コンテンツ利用規約自動同意登録処理　お客様予約状態チェックエラー」*/
	private static final String ERR_MSG_06 = "コンテンツ利用規約自動同意登録処理　お客様予約状態チェックエラー";
	
	/**エラー内容：「コンテンツ利用規約自動同意登録処理　回線契約状態エラー」*/
	private static final String ERR_MSG_07 = "コンテンツ利用規約自動同意登録処理　回線契約状態エラー";
	
	/**エラー内容：「コンテンツ利用規約自動同意登録処理　登録用メールアドレス取得エラー」*/
	private static final String ERR_MSG_08 = "コンテンツ利用規約自動同意登録処理　登録用メールアドレス取得エラー";
	
	/**エラー内容：「同一人チェックエラー」*/
	private static final String ERR_MSG_RTNCD_04 = "同一人チェックエラー";
	
	/**エラー内容：「拒否メールドメインチェックエラー」*/
	private static final String ERR_MSG_RTNCD_15 = "拒否メールドメインチェックエラー";
	
	/**エラー内容：「最終更新日時チェックエラー」*/
	private static final String ERR_MSG_RTNCD_90 = "最終更新日時チェックエラー";
	
	/**エラー内容：「更新エラーチェックエラー」*/
	private static final String ERR_MSG_RTNCD_99 = "更新エラーチェックエラー";
	
	/** ログ用処理名：コンテンツ連絡先メールアドレス登録処理*/
	private static final String TRN_NAME_MLAD_ADD = "コンテンツ連絡先メールアドレス登録処理";
	
	/** ログ用処理名：コンテンツ利用規約自動同意登録処理*/
	private static final String TRN_NAME_AUTODOI_ADD = "コンテンツ利用規約自動同意登録処理";
	
	/** サービスID : コンテンツ利用規約同意登録確定 */
	private static final String CKSV0060 = "CKSV0060";
	
	/** オペレーションID : コンテンツ利用規約同意登録確定 */
	private static final String CKSV0060OP = "CKSV0060OP";
	
	/** CKSV006001CC : PMP連携お客様情報本登録マッピングマップ */
	private static final String CKSV006001CC = "CKSV006001CC";
	
	/** CKSV006001SC : （進捗登録） */
	private static final String CKSV006001SC = "CKSV006001SC";

	/** CKSV006003CC : （会員情報更新依頼マップ） */
	private static final String CKSV006003CC = "CKSV006003CC";
	
	/** サービスID : お客様情報変更（メールアドレス本登録） */
	private static final String CKSV9029 = "CKSV9029";
	
	/** オペレーションID : お客様情報変更（メールアドレス本登録） */
	private static final String CKSV9029OP = "CKSV9029OP";
	
	/** CKSV902901CC : PMP連携メールアドレス本登録マッピングマップ */
	private static final String CKSV902901CC = "CKSV902901CC";
	
	/** オプトインメール番号リスト*/
	private ArrayList<String> mlRcvList = null;
	
	/** メール受信設定リスト */
	private ArrayList<HashMap<String, Object>> workMlRcvList = new ArrayList<HashMap<String,Object>>();

// ANK-4668-00-00 ADD START
	/** テーブル(オプトインメール受信設定)*/
	private static final String D_TBL_NAME_CK_T_OPTINM_RCV_SET = "CK_T_OPTINM_RCV_SET";

	/** SQL定義キー(CN_SELECT_001)*/
	private static final String CK_T_OPTINM_RCV_SET_CN_SELECT_001 = "CN_SELECT_001";
	
	/** テーブルアクセスクラス(オプトインメール受信設定)*/
	private JBSbatSQLAccess db_CK_T_OPTINM_RCV_SET = null;
	
	/** オプトインメール受信設定反映除外フラグ 0(反映する) */
	private static final String OPTINM_RCVST_HANEIJGI_FLG_0 = "0";
	
	/** オプトインメール受信設定反映除外フラグ 1(反映しない) */
	private static final String OPTINM_RCVST_HANEIJGI_FLG_1 = "1";
// ANK-4668-00-00 ADD END

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		// DBアクセスクラスを生成します
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_IDO_RSV = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_IDO_RSV);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_CK_M_OPTINM = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_M_OPTINM);
// ANK-4668-00-00 ADD START
		db_CK_T_OPTINM_RCV_SET = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_OPTINM_RCV_SET);
// ANK-4668-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		//オプトインメールリスト
		mlRcvList = getMlRcvList();
		for (int i = 0; i < mlRcvList.size(); i++)
		{
			HashMap<String, Object> work = new HashMap<String, Object>();
			work.put("kmk_number", mlRcvList.get(i));
			work.put("rcv_div", JCNStrConst.CD00263_NASI);//0：受信なし
			workMlRcvList.add(work);
		}
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */

	@SuppressWarnings("unchecked")
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 読込むファイルのパスを取得する。
		String[] freeItems = commonItem.getFreeItem().split("@");
		
		String filePath = freeItems[0];
		String defFilePath = freeItems[1];
		
		// ファイルを読込み、行毎の内容をリストに格納する。
		ArrayList<JBSbatServiceInterfaceMap> lineList = getFileLines(filePath, defFilePath);
		
		// エラー内容を格納する
		HashMap<String, Object> errMap = new HashMap<String, Object>();
		// エラーフラグ(処理後、エラーログ出力用)
		boolean errFlg = false;
		
		// 運用日付
		String opeDate = super.opeDate;
		
		for (int i = 0; i < lineList.size(); i++)
		{
			// 入力電文
			JBSbatServiceInterfaceMap inMap = lineList.get(i);
			// 入力電文.サービス契約番号
			String svcKeiNo = inMap.getString(JBSbatCNIFM022.SVC_KEI_NO);
			// 入力電文.ＳＹＳＩＤ
			String sysid = inMap.getString(JBSbatCNIFM022.SYSID);
			// 入力電文.会員種別コード
			String memberSbtCd = JBSbatStringUtil.trim(inMap.getString(JBSbatCNIFM022.MEMBER_SBT_CD));
			
			//ホスティングサービス中で、コンテンツ同意であるレコードを取得する。
			boolean hostingResult = isHostingSvc(sysid, opeDate);
			
			/** 
			 * ホスティングサービス中ではない場合：コンテンツ利用規約自動同意登録処理
			 * 　ホスティングサービス中の場合：コンテンツ連絡先メールアドレス登録処理
			 */
			if(!hostingResult)
			{
				// 入力電文のＳＹＳＩＤに紐づくホスティングサービス中のサービス契約が存在しない場合
				
				/** コンテンツ利用規約自動同意登録処理 */
				// お客様予約状態のチェック処理
				// 入力電文のＳＹＳＩＤに紐づいているお客様・異動予約スキーマに予約中のレコードがあるか確認する。
				boolean isValidRsvStat = checkCustRsv(sysid, opeDate);
				if (!isValidRsvStat)
				{
					// 予約が存在する場合
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo, ERR_MSG_06});
					continue;
				}
				/** 回線契約状態チェック */
				// 回線契約状態一覧を取得する。
				ArrayList<JBSbatCommonDBInterface> keiStatList = getKeiStatList(opeDate, sysid);
				// 回線契約状態一覧結果がない場合、処理をスキップする。
				if(keiStatList.size() == 0)
				{
					continue;
				}
				// 有効な回線契約状態かチェックする。
				boolean isValidKeiStat = checkKeiStat(keiStatList);
				
				if (!isValidKeiStat)
				{
					// 回線契約状態が有効ではない場合
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo, ERR_MSG_07});
					continue;
				}
// ANK-4668-00-00 ADD START
				/** コンテンツ連絡先メールアドレス登録処理 */
				String strContMlad = getContRrksMlad(svcKeiNo, opeDate);
				// メールアドレス初期化
				String strMlad = JCNStrConst.S_BLANK;
				//コンテンツ連絡先メールアドレスが取得できなかった場合、連絡先メールアドレスを取得する
				if (JCNStrConst.S_BLANK.equals(strContMlad))
				{
// ANK-4668-00-00 ADD END
					/** コンテンツ自動同意登録に使用するメールアドレス取得 */
					JBSbatCommonDBInterface mladMap = getAddMald(svcKeiNo, memberSbtCd, opeDate);
					
					if(mladMap != null)
					{
						// レコードの取得結果がある場合、
						strMlad = JBSbatStringUtil.trim(mladMap.getString("MLAD"));
					}
					
					if(JCNStrConst.S_BLANK.equals(strMlad))
					{
						// メールアドレス情報が存在しない場合
						errFlg = true;
						super.commonItem.addErrorCount(1);
						errMap.put(sysid, new String[]{sysid, svcKeiNo, ERR_MSG_08});
						continue;
					}
// ANK-4668-00-00 ADD START
				}
				else
				{
					//コンテンツ連絡先メールアドレスを取得できた場合、コンテンツ連絡先メールアドレスを設定
					strMlad = strContMlad;
				}
// ANK-4668-00-00 ADD END
				
				/** コンテンツ利用規約自動同意登録 */
				
				// サービスの渡すため、顧客・契約最終更新年月日時分秒を取得する。
				executeCK_T_CUST_CN_SELECT_009(sysid);
				JBSbatCommonDBInterface updDtmMap = db_CK_T_CUST.selectNext();
				String strCkUpdDtm = updDtmMap.getString("CK_UPD_DTM");
				String strKkUpdDtm = updDtmMap.getString("KK_UPD_DTM");
				
// ANK-4668-00-00 ADD STRAT
				//有効なオプトインメール受信設定の存在チェックを行い、
				//オプトインメール受信設定反映除外フラグ設定する
				String optinmRcvstHaneiJgiFlg = getOptMlad(sysid,strMlad);
// ANK-4668-00-00 ADD END
				// ユースケースID格納用マップ
				HashMap<Object, Object> paramMap = new HashMap<Object, Object>();
				// ユースケースID格納用マップに情報を設定
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, CKSV0060);
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, CKSV0060OP);
				
				// サービスに渡す業務データを格納するMAP
				HashMap<String, Object> inputMap = new HashMap<String, Object>();
				
				HashMap<String, Object> cksv006001CCMap = new HashMap<String, Object>();
				cksv006001CCMap.put("sysid", sysid);//ＳＹＳＩＤ
				cksv006001CCMap.put("isp_kssai_svc_kei_no", svcKeiNo);//サービス契約番号（ISP決済）
				cksv006001CCMap.put("ck_upd_dtm", strCkUpdDtm);//顧客最終更新年月日時分秒
				cksv006001CCMap.put("kk_upd_dtm", strKkUpdDtm);//契約最終更新年月日時分秒
				cksv006001CCMap.put("rrks_mlad", strMlad);//メールアドレス
				cksv006001CCMap.put("isp_kssai_add_nasi_flg", JCNStrConst.ISP_KSSAI_ADD_NASI);//ISP決済登録なしフラグ:登録なし
// ANK-4668-00-00 ADD START
				cksv006001CCMap.put("optinm_rcvst_hanei_jgi_flg", optinmRcvstHaneiJgiFlg);//オプトインメール受信設定反映除外フラグ
// ANK-4668-00-00 ADD END
				inputMap.put(CKSV006001CC, cksv006001CCMap);
				
				HashMap<String, Object> cksv006001SCMap = new HashMap<String, Object>();
				cksv006001SCMap.put("func_code", JPCModelConstant.FUNC_CD_1);//機能コード："1"
				cksv006001SCMap.put("svc_kei_no", svcKeiNo);//サービス契約番号
				cksv006001SCMap.put("ido_div", JCNStrConst.CD00576_CNUSEDOI_ADD);//異動区分:"00089"(コンテンツ利用規約同意登録)
				List<Map<String, String>> idoRsnList = new ArrayList<Map<String, String>>();
				cksv006001SCMap.put("EKK1091D010CBSMsg1List", idoRsnList);//空のリストを渡す。
				inputMap.put(CKSV006001SC, cksv006001SCMap);
				
				HashMap<String, Object> cksv006003CCMap = new HashMap<String, Object>();
				cksv006003CCMap.put("upd_trgt_sysid", sysid);//更新対象ＳＹＳＩＤ
				inputMap.put(CKSV006003CC, cksv006003CCMap);
				
				HashMap<Object, Object> outputMap = new HashMap<Object, Object>();
				try{
					// サービスの実行
					JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
				}
				catch (JCCbatFrameworkException je)
				{
					// サービスのシステムエラー発生時
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo,
							TRN_NAME_AUTODOI_ADD + "　" + ERR_MSG_RTNCD_99 + " CKIFE012 RETURN_CD:99(システムエラー)"});
					continue;
				}
				// サービス実行結果の取得
				HashMap<String, Object> CKSV006002CCResult = (HashMap<String, Object>)outputMap.get("CKSV006002CC");
				
				// お客様情報本登録CCのリターンコードを取得
				String returnCd = (String)CKSV006002CCResult.get("return_cd");
				
				if (!JCKStrConst.PMP_NORMAL_END.equals(returnCd))
				{
					errFlg = true;
					super.commonItem.addErrorCount(1);
					// リターンコードが正常ではない場合、エラーログ出力
					errMap.put(sysid, errCheck(CKSV0060 ,returnCd, sysid, svcKeiNo));
					continue;
				}
			}
			else
			{
				/** コンテンツ連絡先メールアドレス登録処理 */
				// 入力電文のＳＹＳＩＤに紐づくホスティングサービス中のサービス契約が存在する場合 
				/** コンテンツ連絡先メールアドレス登録状態チェック */
				String strContMlad = getContRrksMlad(svcKeiNo, opeDate);
				if (!JCNStrConst.S_BLANK.equals(strContMlad))
				{
					// コンテンツ連絡先メールアドレスが存在する場合、処理をスキップする。
					continue;
				}
				
				/** 回線契約状態チェック */
				// コンテンツ連絡先メールアドレス以外の場合
				// 回線契約状態チェックする。
				
				// 回線契約状態一覧を取得する。
				ArrayList<JBSbatCommonDBInterface> keiStatList = getKeiStatList(opeDate, sysid);
				// 回線契約状態一覧結果がない場合、処理をスキップする。
				if(keiStatList.size() == 0)
				{
					continue;
				}
				// 有効な回線契約状態かチェックする。
				boolean isValidKeiStatForMlad = checkKeiStat(keiStatList);
				
				if (!isValidKeiStatForMlad)
				{
					// 回線契約状態が有効ではない場合
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo, ERR_MSG_01});
					continue;
				}
				
				/** 登録用メールアドレス取得 */
				JBSbatCommonDBInterface mladResultForCont = getAddMald(svcKeiNo, memberSbtCd, opeDate);
				// 登録用メールアドレス・eoId初期化
				String strMladForContRrs = JCNStrConst.S_BLANK;
				String eoId = JCNStrConst.S_BLANK;
				if(mladResultForCont != null)
				{
					// 登録用メールアドレス
					strMladForContRrs = JBSbatStringUtil.trim(mladResultForCont.getString("MLAD"));
					// eoId
					eoId = JBSbatStringUtil.trim(mladResultForCont.getString(JBSbatCK_T_CUST.EOID));
				}
				
				if(JCNStrConst.S_BLANK.equals(strMladForContRrs))
				{
					// メールアドレス情報が存在しない場合
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo, ERR_MSG_02});
					continue;
				}
				
				/** コンテンツ連絡先メールアドレス登録 */
				// サービスの渡すため、顧客・契約最終更新年月日時分秒を取得する。
				executeCK_T_CUST_CN_SELECT_009(sysid);
				JBSbatCommonDBInterface updDtmMap = db_CK_T_CUST.selectNext();
				String strCkUpdDtmAddMlad = updDtmMap.getString("CK_UPD_DTM");
				String strKkUpdDtmAddMlad = updDtmMap.getString("KK_UPD_DTM");
				
// ANK-4668-00-00 ADD STRAT
				//有効なオプトインメール受信設定の存在チェックを行い、
				//オプトインメール受信設定反映除外フラグ設定する
				String optinmRcvstHaneiJgiFlg = getOptMlad(sysid,strMladForContRrs);
// ANK-4668-00-00 ADD END

				/** サービス実行 : メールアドレス本登録 */
				
				// ユースケースID格納用マップ
				HashMap<Object, Object> paramMap = new HashMap<Object, Object>();
				// ユースケースID格納用マップに情報を設定
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_USECASE_ID, CKSV9029);
				paramMap.put(JCCBatchEsbInterface.TELEGRAM_INFO_OPERATION_ID, CKSV9029OP);
				
				// サービスに渡す業務データを格納するMAP
				HashMap<String, Object> inputMap = new HashMap<String, Object>();
				// PMP連携メールアドレス本登録マッピング
				HashMap<String, Object> cksv902901CCMap = new HashMap<String, Object>();
				cksv902901CCMap.put("sysid", sysid);//ＳＹＳＩＤ
				cksv902901CCMap.put("eoid", eoId);//eoId
				cksv902901CCMap.put("work_div", "0");//業務区分:"0"(マスター会員)
				cksv902901CCMap.put("rrk_mlad", strMladForContRrs);//連絡先メールアドレス
				cksv902901CCMap.put("svc_kei_no", svcKeiNo);//サービス契約番号
				cksv902901CCMap.put("tsyrn_svkei_cd_seq", "0");// 他システム連携サービス契約コード通番
				cksv902901CCMap.put("mail_rcv_sette_list", workMlRcvList);//メール受信設定リスト
				cksv902901CCMap.put("ck_upd_dtm", strCkUpdDtmAddMlad);//更新日時（お客様）
				cksv902901CCMap.put("kk_upd_dtm", strKkUpdDtmAddMlad);//更新日時（サービス契約）
// ANK-4668-00-00 ADD START
				cksv902901CCMap.put("optinm_rcvst_hanei_jgi_flg", optinmRcvstHaneiJgiFlg);//オプトインメール受信設定反映除外フラグ
// ANK-4668-00-00 ADD END
				inputMap.put(CKSV902901CC, cksv902901CCMap);
				
				HashMap<Object, Object> outputMap = new HashMap<Object, Object>();
				
				try
				{
				// サービスの実行
				JCCBatchEsbInterface.invokeService(super.commonItem, paramMap, inputMap, outputMap);
				}
				catch(JCCbatFrameworkException je)
				{
					errFlg = true;
					super.commonItem.addErrorCount(1);
					errMap.put(sysid, new String[]{sysid, svcKeiNo,
							TRN_NAME_MLAD_ADD + "　" + ERR_MSG_RTNCD_99 + " CKIFE012 RETURN_CD:" + "99(システムエラー)"});
					continue;
				}
				// サービス実行結果の取得
				HashMap<String, Object> CKSV902901CCResult = (HashMap<String, Object>)outputMap.get(CKSV902901CC);
				
				// PMP連携メールアドレス本登録CCのリターンコードを取得
				String returnCd = (String)CKSV902901CCResult.get("return_cd");
				
				if (!JCKStrConst.PMP_NORMAL_END.equals(returnCd))
				{
					// 正常終了ではない場合
					errFlg = true;
					super.commonItem.addErrorCount(1);
					// リターンコードが正常ではない場合、エラーログ出力
					errMap.put(sysid, errCheck(CKSV9029, returnCd, sysid, svcKeiNo));
					continue;
				}
			}
		}
		
		// 処理中、エラーが発生した場合
		if (errFlg)
		{
			// マイナーエラー（スキップ）「コンテンツ利用規約自動同意登録処理にて以下のお客様の同意処理に失敗しました。」
			super.logPrint.printBusinessErrorLog(ECNB0520KW);
			super.commonItem.setErrFlg(true);
			// エラー内容マップ処理用リストを作り、ループでマップのエラー内容をすべて出力する。
			List<String> keySet = new ArrayList<String>(errMap.keySet());
			for(String e : keySet)
			{
				// SYSID:%1% サービス契約番号:%2%  エラー内容:%3%
				super.commonItem.getLogPrint().printBusinessErrorLog(ECNB0530AI, (String[])errMap.get(e));
			}
		}
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}
	/**
	 * 回線契約状態一覧を検索する。
	 * @param opeDate 運用日付
	 * @param sysid SYSID
	 * @return ArrayList<JBSbatCommonDBInterface>　回線契約状態一覧
	 * @throws Exception
	 */
	private ArrayList<JBSbatCommonDBInterface> getKeiStatList(String opeDate, String sysid) throws Exception {
		String[] custParam = {opeDate, opeDate, sysid
				, opeDate, opeDate, opeDate, opeDate};
		executeCK_T_CUST_CN_SELECT_007(custParam);
		JBSbatCommonDBInterface custKeiStatRslt = null;
		ArrayList<JBSbatCommonDBInterface> result = new ArrayList<JBSbatCommonDBInterface>();
		while ((custKeiStatRslt = db_CK_T_CUST.selectNext()) != null)
		{
			result.add(custKeiStatRslt);
		}
		return result;
	}

	/**
	 * FREEのファイルパス・ファイル定義を用いて処理レコードを読込み、その内容をリストに格納する。
	 * @param filePath 処理ファイルのパス
	 * @param defFilePath ファイル定義(.def)
	 * @return ArrayList<HashMap<String, String>>
	 * @throws Exception
	 */
	private ArrayList<JBSbatServiceInterfaceMap> getFileLines(String filePath, String defFilePath) throws Exception{
		// 結果を格納するリスト
		ArrayList<JBSbatServiceInterfaceMap> resultList = new ArrayList<JBSbatServiceInterfaceMap>();
		// 行毎レコードマップ
		JBSbatServiceInterfaceMap rowMap = new JBSbatServiceInterfaceMap();
		
		JBSbatInputFileUtil readObj = new JBSbatInputFileUtil(filePath);
		JBSbatDefFileUtil fileDef = new JBSbatDefFileUtil(defFilePath, readObj);
		
		readObj.createReader();
		
		String line = "";
		while(readObj.ready()) {
			
			line = readObj.readLine();
			rowMap = fileDef.lineToObject(line, readObj, 0);
			JBSbatServiceInterfaceMap ret = new JBSbatServiceInterfaceMap();
			
			ret.set(JBSbatCNIFM022.SVC_KEI_NO, rowMap.getString(JBSbatCNIFM022.SVC_KEI_NO));
			ret.set(JBSbatCNIFM022.SYSID, rowMap.getString(JBSbatCNIFM022.SYSID));
			ret.set(JBSbatCNIFM022.SVC_CD, rowMap.getString(JBSbatCNIFM022.SVC_CD));
			ret.set(JBSbatCNIFM022.PCRS_CD, rowMap.getString(JBSbatCNIFM022.PCRS_CD));
			ret.set(JBSbatCNIFM022.MSKM_DTL_NO, rowMap.getString(JBSbatCNIFM022.MSKM_DTL_NO));
			ret.set(JBSbatCNIFM022.MSKM_YMD, rowMap.getString(JBSbatCNIFM022.MSKM_YMD));
			ret.set(JBSbatCNIFM022.MKM_UK_SBT_CD, rowMap.getString(JBSbatCNIFM022.MKM_UK_SBT_CD));
			ret.set(JBSbatCNIFM022.MEMBER_SBT_CD, rowMap.getString(JBSbatCNIFM022.MEMBER_SBT_CD));
			ret.set(JBSbatCNIFM022.CONT_MSKM_NO, rowMap.getString(JBSbatCNIFM022.CONT_MSKM_NO));

			// 格納リストへ設定
			resultList.add(ret);
		}
		
		// クロース
		if (readObj != null)
			readObj.close();
		
		// 初期化
		readObj = null;
		
		return resultList;
	}

	/**
	 * ＳＹＳＩＤに紐づくホスティングサービス中のサービス契約スキーマを検索して、レコード有無を返す。
	 * @param sysid SYSID
	 * @param opeDate 運用日付
	 * @return boolean　検索結果有無
	 * @throws Exception
	 */
	private boolean isHostingSvc(String sysid, String opeDate) throws Exception {
		
		String[] hostingChkParam = {sysid, opeDate};
		executeKK_T_SVC_KEI_CN_SELECT_020(hostingChkParam);
		JBSbatCommonDBInterface result = db_KK_T_SVC_KEI.selectNext();
		
		if(result == null)
		{
			// レコード取得ができなかった場合、false
			return false;
		}
		// レコード取得ができた場合、true
		return true;
	}
	/**
	 * ＳＹＳＩＤに紐づくお客様の予約中レコード有無を確認し、予約状態ならfalseを返す。
	 * @param sysid SYSID
	 * @param opeDate 運用日付
	 * @return boolean　予約状態の有効確認結果
	 * @throws Exception
	 */
	private boolean checkCustRsv(String sysid, String opeDate) throws Exception {
		// 対象ＳＹＳＩＤに紐づいているお客様スキーマの予約有無を取得する。
		String[] custParam = {sysid, opeDate};
		executeCK_T_CUST_CN_SELECT_008(custParam);
		JBSbatCommonDBInterface custRsvResult = db_CK_T_CUST.selectNext();
		
		if(Integer.parseInt(custRsvResult.getString("CUST_CNT")) > 0)
		{
			// お客様スキーマから予約中のレコードが存在する場合
			return false;
		}
		else
		{
			// お客様スキーマから予約中のレコードが存在しない場合
			// 異動予約スキーマに予約のレコードがあるか確認する。
			String[] idoRsvParam = {sysid, opeDate};
			executeKK_T_IDO_RSV_CN_SELECT_001(idoRsvParam);
			JBSbatCommonDBInterface idoRsvResult = db_KK_T_IDO_RSV.selectNext();
			if(Integer.parseInt(idoRsvResult.getString("IDO_RSV_CNT")) > 0)
			{
				// 異動予約スキーマに予約のレコードが存在する場合
				return false;
			}
		}
		return true;
	}
	/**
	 * 回線契約状態一覧がすべて有効か確認する。
	 * @param list 回線契約状態一覧リスト
	 * @return boolean　回線契約状態の有効確認結果
	 * @throws Exception
	 */
	private boolean checkKeiStat(ArrayList<JBSbatCommonDBInterface> list) throws Exception{
		// 会員ISP決済状態コード
		String mmbIspKssaiStatCd = JCNStrConst.S_BLANK;
		// 督促ステータス
		String tokusokuStat =  JCNStrConst.S_BLANK;
		
		for (int i = 0; i < list.size(); i++)
		{
			// 会員ISP決済状態コード
			mmbIspKssaiStatCd= JBSbatStringUtil.trim(list.get(i).getString(JBSbatCK_T_CUST.MMB_ISP_KSSAI_STAT_CD));
			// 督促ステータス
			tokusokuStat= JBSbatStringUtil.trim(list.get(i).getString(JBSbatCH_T_TOKUSOKU.TOKUSOKU_STAT));
			
			if (JCNStrConst.CD00870_ALLSTP.equals(mmbIspKssaiStatCd)
					|| (JCNStrConst.CD00184_USE_STP_ZM.compareTo(tokusokuStat) <= 0 
							&& !JCNStrConst.CD00184_TOKUSOKU_PDING.equals(tokusokuStat)))
			{
				// 回線契約状態一覧に会員ISP決済状態コードが"1"(利用停止中)、
				// または、督促ステータスが"20"(利用停止済)以上、かつ、"99"(督促保留)以外であるレコードが１つでもあれば
				// 回線状態をfalseにする。
				return false;
			}
		}
		return true;
	}
	/**
	 * 自動同意登録に使用するメールアドレスレコードを取得する。
	 * @param svcKeiNo サービス契約番号
	 * @param memberSbtCd 会員種別コード
	 * @param opeDate 運用日付
	 * @return boolean　メールアドレス文字列
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getAddMald(String svcKeiNo,
									String memberSbtCd, String opeDate) throws Exception {
		// メールアドレス文字列の初期化
		String mlad =JCNStrConst.S_BLANK;
		JBSbatCommonDBInterface mladResult = new JBSbatCommonDBInterface();
		// 連絡先メールアドレス取得
		ArrayList<JBSbatCommonDBInterface> mladResultList = getSvcKeiMlad(svcKeiNo, opeDate);
		
		if (mladResultList != null && mladResultList.size() > 0)
		{
			for (int i = 0; i < mladResultList.size(); i++)
			{
				mlad = JBSbatStringUtil.trim(mladResultList.get(i).getString(JBSbatCK_T_RRKS.MLAD));
				String rrskCd = JBSbatStringUtil.trim(mladResultList.get(i).getString(JBSbatCK_T_RRKS.RRKS_CD));
				if (!JCNStrConst.S_BLANK.equals(mlad)){
					// 連絡先メールアドレス取得結果が存在する場合
					// 入力電文.会員種別コードが"20"(マスター会員(法人))か、確認する。
					if(JCNStrConst.CD00039_MASTER_HOJIN.equals(memberSbtCd))
					{
						if(JCNStrConst.RRKS_CD_KEISHA.equals(rrskCd))
						{
							// 連絡先コードが"01"(契約者)なら、そのままメールアドレスを呼出元に返す。
							return mladResultList.get(i);
						}
						else
						{
							// 連絡先コードが"01"(契約者)以外の場合、メールアドレス変数を初期化する。
							mlad =JCNStrConst.S_BLANK;
						}
					}
					// 入力電文.会員種別コードが"20"(マスター会員(法人))以外(個人)の場合を確認する。
					else
					{
						if(JCNStrConst.S_BLANK.equals(rrskCd))
						{
							// 連絡先コードが空白(null)の場合、そのままメールアドレスを呼出元に返す。
							return mladResultList.get(i);
						}
						else
						{
							// 連絡先コードが空白(null)以外の場合、メールアドレス変数を初期化する。
							mlad =JCNStrConst.S_BLANK;
						}
					}
				}
			}
		}
		
		if (JCNStrConst.S_BLANK.equals(mlad))
		{
			// 変数：メールアドレス取得結果が存在しない場合
			// 契約メールアドレス取得
			mladResult = getOpSvcKeiMlad(svcKeiNo, opeDate);
		}
		
		return mladResult;
	}
	
	/**
	 * 連絡先メールアドレス取得処理
	 * お客様スキーマから連絡先レコードを取得する。
	 * @param svcKeiNo サービス契約番号
	 * @param opeDate 運用日付
	 * @return JBSbatCommonDBInterface レコード
	 * @throws Exception
	 */
	private ArrayList<JBSbatCommonDBInterface> getSvcKeiMlad(String svcKeiNo,String opeDate) throws Exception{
		String[] param = {opeDate, opeDate, svcKeiNo, opeDate};
		executeCK_T_CUST_CN_SELECT_010(param);
		JBSbatCommonDBInterface result = new JBSbatCommonDBInterface();
		ArrayList<JBSbatCommonDBInterface> resultList = new ArrayList<JBSbatCommonDBInterface>();
		while((result = db_CK_T_CUST.selectNext()) != null)
		{
			resultList.add(result);
		}
		return resultList;
	}
	/**
	 * 契約メールアドレス取得処理
	 * オプションサービス契約に紐づいているメールアドレス情報を取得する
	 * @param svcKeiNo サービス契約番号
	 * @param opeDate 運用日付
	 * @return JBSbatCommonDBInterface レコード
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface getOpSvcKeiMlad(String svcKeiNo, String opeDate) throws Exception{
		String[] param = {opeDate, opeDate, opeDate, svcKeiNo};
		executeCK_T_CUST_CN_SELECT_011(param);
		JBSbatCommonDBInterface result = db_CK_T_CUST.selectNext();
		return result;
	}
	
	/**
	 * サービスのリターンコードをチェックし、エラー処理する。
	 * @param errSvcName サービス名
	 * @param returnCd リターンコード
	 * @param sysid SYSID
	 * @param svcKeiNo サービス契約番号
	 * @return ログパラメータ文字配列
	 */
	private String[] errCheck(String errSvcName, String returnCd, String sysid, String svcKeiNo) {
		
		
		String errMsg = "";
		String trnName = "";
		
		if(CKSV0060.equals(errSvcName)){
			trnName = TRN_NAME_AUTODOI_ADD;
		}
		else
		{
			trnName = TRN_NAME_MLAD_ADD;
		}
		
		// フリガナ氏名、生年月日、連絡用アドレス重複エラー
		if(JCKStrConst.PMP_ERR_MMB_DUP.equals(returnCd))
		{
			errMsg = ERR_MSG_RTNCD_04;
		}
		// 拒否メールドメインチェックエラー
		else if(JCKStrConst.PMP_ERR_REJECT_DOMAIN.equals(returnCd))
		{
			errMsg = ERR_MSG_RTNCD_15;
		}
		// 最終更新日時チェックエラー
		else if(JCKStrConst.PMP_ERR_EXCLUSION.equals(returnCd))
		{
			errMsg = ERR_MSG_RTNCD_90;
		}
		// 更新エラーチェックエラー
		else
		{
			errMsg = ERR_MSG_RTNCD_99;
		}
		
		return new String[] {sysid, svcKeiNo, (trnName+ "　" + errMsg + " CKIFE012 RETURN_CD:" + returnCd)};
	}
	/**
	 * サービス契約スキーマに紐づいているコンテンツ系のメールを取得する。
	 * @param svcKeiNo サービス契約番号
	 * @param opeDate 運用日付
	 * @return String メールアドレス文字列
	 * @throws Exception
	 */
	private String getContRrksMlad(String svcKeiNo, String opeDate) throws Exception {
		
		String[] param = {opeDate, opeDate, opeDate, svcKeiNo};
		executeKK_T_SVC_KEI_CN_SELECT_021(param);
		JBSbatCommonDBInterface result = db_KK_T_SVC_KEI.selectNext();
		if(result == null)
		{
			return JCNStrConst.S_BLANK;
		}
		else
		{
			return JBSbatStringUtil.trim(result.getString(JBSbatCK_T_RRKS.MLAD));
		}
	}
	
	/**
	 * オプトインメールからオプトインメール番号を取得する。
	 * @return ArrayList<Map<String, String>> 受信設定リスト
	 * @throws Exception
	 */
	private ArrayList<String> getMlRcvList() throws Exception {
		// オプトインメールからオプトインメール番号を取得する。
		String[] params = {super.opeDate, super.opeDate, super.opeDate};
		executeCK_M_OPTINM_CN_SELECT_001(params);
		ArrayList<String> resList = new ArrayList<String>();
		JBSbatCommonDBInterface result = new JBSbatCommonDBInterface();
		while((result = db_CK_M_OPTINM.selectNext()) != null)
		{
			resList.add(result.getString(JBSbatCK_M_OPTINM.OPTINM_NO));
		}
		
		return resList;
	}

// ANK-4668-00-00 ADD START
	/**
	 * オプトインメール受信設定からメールアドレスを取得する
	 * @param sysid SYSID
	 * @param mlad メールアドレス
	 * @return JBSbatCommonDBInterface レコード
	 * @throws Exception
	 */
	private String getOptMlad(String sysid, String mlad) throws Exception{
		String[] param = {sysid, mlad};
		executeCK_T_OPTINM_RCV_SET_CN_SELECT_001(param);
		JBSbatCommonDBInterface result = db_CK_T_OPTINM_RCV_SET.selectNext();
		if(result != null)
		{
			//有効なオプトインメール受信設定が存在する場合、オプトインメール受信設定反映除外フラグに
			//"1"(反映しない)を設定
			return OPTINM_RCVST_HANEIJGI_FLG_1;
		}
		else
		{
			//有効なオプトインメール受信設定が存在しない場合、オプトインメール受信設定反映除外フラグに
			//"0"(反映する)を設定
			return OPTINM_RCVST_HANEIJGI_FLG_0;
		}
	}
// ANK-4668-00-00 ADD END
	
	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		db_CK_M_OPTINM.close();
		db_CK_T_CUST.close();
		db_KK_T_IDO_RSV.close();
		db_KK_T_SVC_KEI.close();
// ANK-4668-00-00 ADD START
		db_CK_T_OPTINM_RCV_SET.close();
// ANK-4668-00-00 ADD END
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * サービス契約SQLKEY(CN_SELECT_020)で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 executeKK_T_SVC_KEI_CN_SELECT_020(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CN_SELECT_020);
	}
	/**
	 * サービス契約SQLKEY(CN_SELECT_021)で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_SVC_KEI_CN_SELECT_021(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);
		paramList.setValue(param[3]);
		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CN_SELECT_021);
	}
	/**
	 * お客様SQLKEY(CN_SELECT_007)で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_CN_SELECT_007(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);
		paramList.setValue(param[3]);
		paramList.setValue(param[4]);
		paramList.setValue(param[5]);
		paramList.setValue(param[6]);
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CN_SELECT_007);
	}
	/**
	 * お客様SQLKEY(CN_SELECT_008)で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_CN_SELECT_008(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CN_SELECT_008);
	}
	/**
	 * お客様SQLKEY(CN_SELECT_009)で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_CN_SELECT_009(String sysid) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		paramList.setValue(sysid);
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CN_SELECT_009);
	}
	/**
	 * お客様SQLKEY(CN_SELECT_010)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			予約適用年月日
	 *			予約適用年月日
	 *			サービス契約番号
	 *			予約適用年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_CN_SELECT_010(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);
		paramList.setValue(param[3]);
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CN_SELECT_010);
	}
	/**
	 * お客様SQLKEY(CN_SELECT_011)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *			予約適用年月日
	 *			予約適用年月日
	 *			予約適用年月日
	 *			サービス契約番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCK_T_CUST_CN_SELECT_011(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);
		paramList.setValue(param[3]);
		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CN_SELECT_011);
	}
	/**
	 * 異動予約SQLKEY(CN_SELECT_001)で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 executeKK_T_IDO_RSV_CN_SELECT_001(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		// DBアクセスを実行します
		db_KK_T_IDO_RSV.selectBySqlDefine(paramList, KK_T_IDO_RSV_CN_SELECT_001);
	}
	/**
	 * オプトインメールSQLKEY(CN_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 executeCK_M_OPTINM_CN_SELECT_001(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		paramList.setValue(param[2]);
		
		// DBアクセスを実行します
		db_CK_M_OPTINM.selectBySqlDefine(paramList, CK_M_OPTINM_CN_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

// ANK-4668-00-00 ADD START
	/**
	 * オプトインメール受信設定SQLKEY(CN_SELECT_001)で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_OPTINM_RCV_SET_CN_SELECT_001(String[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0]);
		paramList.setValue(param[1]);
		
		// DBアクセスを実行します
		db_CK_T_OPTINM_RCV_SET.selectBySqlDefine(paramList, CK_T_OPTINM_RCV_SET_CN_SELECT_001);
	}
// ANK-4668-00-00 ADD END
}
