/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCRTawsKokyakuHtChg
*	ソースファイル名	：JBSbatCRTawsKokyakuHtChg.java
*	作成者				：富士通　
*	作成日				：2011年08月14日
*＜機能概要＞
*　問合せ顧客紐付変更処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者			修正内容
*	v1.00.00	2011/08/14  富士通			新規作成
*	v6.00.00	2013/10/21  FJ）斉藤(諭)	ST4-2013-0000581対応
*	v19.00.00	2015/09/15  FJ）森脇		OM-2015-0002187対応
*	v29.00.00	2017/02/10	FJ) 笠川		ANK-2928-00-00 お客さま申告アドレスの複数登録
*********************************************************************/
package eo.business.service;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCRBatCommon;
import eo.business.util.file.JBSbatCRIFM002;
import eo.business.util.table.JBSbatCK_T_CUST;
import eo.business.util.table.JBSbatCK_T_PROSCST;
import eo.business.util.table.JBSbatKK_T_SVC_KEI;
import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.common.util.JCRUtilCommon;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatBusinessFileUtil;

/**
* 問合せ顧客紐付変更処理 <p>
*<BR>
* @author 富士通
*/
public class JBSbatCRTawsKokyakuHtChg extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(問合せ客)*/
	private static final String D_TBL_NAME_CK_T_PROSCST = "CK_T_PROSCST";

	/** テーブル(お客様)*/
	private static final String D_TBL_NAME_CK_T_CUST = "CK_T_CUST";

	/** テーブル(サービス契約)*/
	private static final String D_TBL_NAME_KK_T_SVC_KEI = "KK_T_SVC_KEI";

	/** テーブル(対応記録)*/
	private static final String D_TBL_NAME_CR_T_TAIO_KIROK = "CR_T_TAIO_KIROK";

	/** テーブル(連絡先)*/
	private static final String D_TBL_NAME_CK_T_RRKS = "CK_T_RRKS";

	/** SQL定義キー(CR_SELECT_008)*/
	private static final String CK_T_PROSCST_CR_SELECT_008 = "CR_SELECT_008";

	/** SQL定義キー(CR_SELECT_001)*/
	private static final String CK_T_CUST_CR_SELECT_001 = "CR_SELECT_001";

	/** SQL定義キー(CR_SELECT_017)*/
	private static final String KK_T_SVC_KEI_CR_SELECT_017 = "CR_SELECT_017";

	/** SQL定義キー(CR_SELECT_015)*/
	private static final String KK_T_SVC_KEI_CR_SELECT_015 = "CR_SELECT_015";

	/** SQL定義キー(CR_UPDATE_004)*/
	private static final String CR_T_TAIO_KIROK_CR_UPDATE_004 = "CR_UPDATE_004";

	/** SQL定義キー(CR_SELECT_001)*/
	private static final String CK_T_RRKS_CR_SELECT_001 = "CR_SELECT_001";

	/** SQL定義キー(CR_INSERT_001)*/
	private static final String CK_T_CUST_CR_INSERT_001 = "CR_INSERT_001";

	/** SQL定義キー(CR_UPDATE_001)*/
	private static final String CK_T_CUST_CR_UPDATE_001 = "CR_UPDATE_001";

	/** テーブルアクセスクラス(問合せ客)*/
	private JBSbatSQLAccess db_CK_T_PROSCST = null;

	/** テーブルアクセスクラス(お客様)*/
	private JBSbatSQLAccess db_CK_T_CUST = null;

	/** テーブルアクセスクラス(サービス契約)*/
	private JBSbatSQLAccess db_KK_T_SVC_KEI = null;

	/** テーブルアクセスクラス(対応記録)*/
	private JBSbatSQLAccess db_CR_T_TAIO_KIROK = null;

	/** テーブルアクセスクラス(連絡先)*/
	private JBSbatSQLAccess db_CK_T_RRKS = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	// OM-2015-0002187 ADD START
	/** テーブル(お客様<個人>)*/
	private static final String D_TBL_NAME_CK_T_CUST_KOJIN = "CK_T_CUST_KOJIN";

	/** テーブル(お客様<個人>)*/
	private static final String D_TBL_NAME_CK_T_CUST_HOJIN = "CK_T_CUST_HOJIN";

	/** SQL定義キー(CR_SELECT_005)*/
	private static final String CK_T_CUST_CR_SELECT_005 = "CR_SELECT_005";

	/** SQL定義キー(CR_INSERT_001)*/
	private static final String CK_T_CUST_KOJIN_CR_INSERT_001 = "CR_INSERT_001";

	/** SQL定義キー(CR_INSERT_001)*/
	private static final String CK_T_CUST_HOJIN_CR_INSERT_001 = "CR_INSERT_001";

	/** SQL定義キー(CR_INSERT_002)*/
	private static final String CK_T_CUST_CR_INSERT_002 = "CR_INSERT_002";

	/** テーブルアクセスクラス(お客様<個人>)*/
	private JBSbatSQLAccess db_CK_T_CUST_KOJIN = null;

	/** テーブルアクセスクラス(お客様<法人>)*/
	private JBSbatSQLAccess db_CK_T_CUST_HOJIN = null;
	// OM-2015-0002187 ADD END

	/** システム日時(17桁) */
	private String sysDtms = null;

	/** 紐付対象データ問合せ更新対象期間(月) */
	private int updTgtKikan = 0;

	/** 削除データファイル保存先パス */
	private String outputPath = null;

	/** 紐付対象データ抽出条件日時 */
	private String jyokenDtms = null;

	/** 削除対象問合せ客番号を保持するList */
	private List<String> deleteDataList = new ArrayList<String>();

	/** 備考桁あふれ判定フラグ 備考桁あふれの場合 true */
	private boolean bikoOverFlow = false;

	/**
	 * ファイル名のプレフィックス
	 */
	private static final String PREFIX_FILE_NM = "KKIFI029001_";

	/**
	 * 指定拡張子　データファイル用
	 */
	private static final String EXT_DATA_FILE = ".csv";

	/**
	 * COUNT()用項目名
	 */
	private static final String CNT = "CNT";

	/**
	 * テーブルシーケンス：RRKS_NO
	 */
	private static final String SEQ_RRKS_NO = "SEQ_RRKS_NO";

	/**
	 * 連絡先番号の桁数
	 */
	private static final int KETA_RRKS_NO = 12;

	/**
	 * 連絡方法コード　002:申告アドレス
	 */
	private static final String CD_DIV_RRK_WAY_CD_SKK_AD = "002";

	//ANK-2928-00-00 ADD START
	/**
	 * 連絡方法コード　006:申告アドレス２
	 */
	private static final String CD_DIV_RRK_WAY_CD_SKK_AD2 = "006";

	/**
	 * 連絡方法コード　007:申告アドレス３
	 */
	private static final String CD_DIV_RRK_WAY_CD_SKK_AD3 = "007";

	/**
	 * 連絡先種別コード　5:その他(勤務連絡先等)
	 */
	private static final String CD_DIV_RRK_SBT_CD_OTHER = "5";

	//ANK-2928-00-00 ADD END
	/**
	 * 連絡先分類コード　0:回線系連絡先
	 */
	private static final String CD_DIV_RRKS_BUNRUI_CD_KAISEN = "0";

	/**
	 * 予約適用コード　2:予約確定
	 */
	private static final String CD_DIV_RSV_APLY_CD_KAKUTEI = "2";

	/**
	 * お客様．お客様確認備考の文字数
	 */
	private static final int DB_CUST_CFM_BIKO_LENGTH = 1024;

	/**
	 * 改行コード　\r
	 */
	private static final String KAIGYO_R = "\r";

	/**
	 * 改行コード　\n
	 */
	private static final String KAIGYO_N = "\n";

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CK_T_PROSCST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_PROSCST);
		db_CK_T_CUST = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST);
		db_KK_T_SVC_KEI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SVC_KEI);
		db_CR_T_TAIO_KIROK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CR_T_TAIO_KIROK);
		db_CK_T_RRKS = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_RRKS);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		// OM-2015-0002187 ADD START
		db_CK_T_CUST_KOJIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST_KOJIN);
		db_CK_T_CUST_HOJIN = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CK_T_CUST_HOJIN);
		// OM-2015-0002187 ADD END

		// (1) システム日時取得
		sysDtms = JCRBatCommon.getSysDateTimeStamp();

		// (2) プロパティーファイル取得
		checkProperty();

		// (3) 削除データファイル保存先パス取得
		outputPath = getOutputPath();

		// (4) 紐付対象データ抽出条件日時
		// システム日時 - 紐付対象データ問合せ更新対象期間(月)
		jyokenDtms = JCRBatCommon.addMonth(sysDtms.substring(0, 8), (-1 * updTgtKikan));
		jyokenDtms = jyokenDtms + sysDtms.substring(8);		// 時間部分付加

	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * プロパティーチェック
	 * @throws Exception 例外
	 */
	private void checkProperty() throws Exception
	{
		// プロパティーチェック

		// 紐付対象データ問合せ更新対象期間(月)
		String kikan = JCRBatCommon.getApplicationConst("CR_HT_UPD_TGT_KIKAN_MON");
		if (kikan == null || "".equals(kikan.trim()))
		{
			// ECRB0010KW:プロパティーファイルの設定が正しくありません。(項目名:%1%)
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECRB0010KW, new String[]{"CR_HT_UPD_TGT_KIKAN_MON"});
		}
		else
		{
			if (!(JCRBatCommon.isHannkakuSuuji1(kikan)))
			{
				// ECRB0230TW	%1%の属性が正しくありません。(属性:%2% 値:%3%)
				throw new JBSbatBusinessException(JPCBatchMessageConstant.ECRB0230TW, new String[]{"半角数字", kikan});
			}
			updTgtKikan = Integer.parseInt(kikan);
			super.logPrint.printDebugLog("紐付対象データ問合せ更新対象期間(月):" + updTgtKikan);
		}
	}

	/**
	 * 削除データファイル保存先パスを取得する
	 * @return 削除データファイル保存先パス
	 * @throws Exception 例外
	 */
	private String getOutputPath() throws Exception
	{
		// シェルで${SEND_DIR}を設定
		String path = super.commonItem.getFreeItem();
		super.logPrint.printDebugLog("削除データファイル保存先パス:" + path);

		if (path == null || "".equals(path))
		{
			// ECRB0190KW	%1%の内容が正しくありません。（%2%）
			String[] logParam = new String[]{"シェル引数", "削除データファイル保存先パス未定義"};
			throw new JBSbatBusinessException(JPCBatchMessageConstant.ECRB0190KW, logParam);
		}
		else
		{
			File outputFilePath = JCRUtilCommon.checkDirExist(path);
			if (outputFilePath == null)
			{
				// 存在しない場合
				// ECRB0160KW:指定されたパスが存在しません。(%1%)
				throw new JBSbatBusinessException(JPCBatchMessageConstant.ECRB0160KW, new String[]{path});
			}
			super.logPrint.printDebugLog("削除データファイルが配置されるディレクトリーパス:" + outputFilePath);
		}
		return path;
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/

		String tiawsKyakuNo = inMap.getString(JBSbatCRIFM002.PROSCST_NO);	// 問合せ客番号
		String sysId = inMap.getString(JBSbatCRIFM002.SYSID);				// SYSID
		String mskmDtlNo = inMap.getString(JBSbatCRIFM002.MSKM_DTL_NO);		// 申込明細番号

		// (1) 既加入問合せ客抽出
		List<JBSbatCommonDBInterface> selectedDataList = getHimotsukeData(tiawsKyakuNo);

		if ((selectedDataList != null) && (selectedDataList.size() > 0))
		{
			// 対象問合せデータが存在した場合

			// (2) 既加入データ取得
			JBSbatCommonDBInterface selectedData = selectedDataList.get(0);

			String tiawsKyakuNm = selectedData.getString(JBSbatCK_T_PROSCST.PROSCST_NM);				// 問合せ客名
			String pcstDelTrgtGaiFlg = selectedData.getString(JBSbatCK_T_PROSCST.DEL_TRGT_GAI_FLG);		// 削除対象外フラグ（問合せ客）
			String skkAd = selectedData.getString(JBSbatCK_T_PROSCST.SKK_AD);							// 申告アドレス
			//ANK-2928-00-00 ADD START
			String skkAd2 = selectedData.getString(JBSbatCK_T_PROSCST.SKK_AD_2);							// 申告アドレス２
			String skkAd3 = selectedData.getString(JBSbatCK_T_PROSCST.SKK_AD_3);							// 申告アドレス３
			//ANK-2928-00-00 ADD END
			String proscstHskBiko = selectedData.getString(JBSbatCK_T_PROSCST.PROSCST_HSK_BIKO);		// 問合せ客補足備考

			// (3) お客様情報取得

			// (a) お客様カレント情報取得
			String geneAddDtm = null;			// 世代登録年月日時分秒
			String custCfmBiko = null;			// お客様確認備考
			String custDelTrgtGaiFlg = null;	// 削除対象外フラグ（お客様）
			// OM-2015-0002187 ADD START
			String custKeishaTypeCd = null;		// 契約者タイプコード
			// OM-2015-0002187 ADD END

			String[] param = new String[] {
					sysId,						// SYSID
					commonItem.getOpeDate()		// 予約適用年月日
				};

			// OM-2015-0002187 MOD START
//			executeCK_T_CUST_CR_SELECT_001(param);
			executeCK_T_CUST_CR_SELECT_005(param);
			// OM-2015-0002187 MOD END
			JBSbatCommonDBInterface custData = db_CK_T_CUST.selectNext();
			if (custData != null)
			{
				geneAddDtm = custData.getString(JBSbatCK_T_CUST.GENE_ADD_DTM);				// 世代登録年月日時分秒
				custCfmBiko = custData.getString(JBSbatCK_T_CUST.CUST_CFM_BIKO);			// お客様確認備考
				custDelTrgtGaiFlg = custData.getString(JBSbatCK_T_CUST.DEL_TRGT_GAI_FLG);	// 削除対象外フラグ（お客様）
				// OM-2015-0002187 ADD START
				custKeishaTypeCd = custData.getString(JBSbatCK_T_CUST.KEISHA_TYPE_CD);		// 契約者タイプコード
				// OM-2015-0002187 ADD END
			}

			// (b) サービス契約番号取得
			String svcKeiNo = getSvcKeiNo(sysId, mskmDtlNo);

			if (svcKeiNo != null)
			{
			// (4) 紐付更新

				// (a) 対応記録紐付
				updateTaioKirok(svcKeiNo, tiawsKyakuNo, tiawsKyakuNm);

				// (b) 連絡先登録
				if (skkAd != null && !("".equals(skkAd)))
				{
				//ANK-2928-00-00 ADD START
					String rrksCd = CD_DIV_RRK_WAY_CD_SKK_AD;
					// 申告アドレスが空白でない場合
					entryRenrakusaki(sysId, skkAd,rrksCd);
				}
				// (b) 連絡先登録
				if (skkAd2 != null && !("".equals(skkAd2)))
				{
					String rrksCd = CD_DIV_RRK_WAY_CD_SKK_AD2;
					// 申告アドレス２が空白でない場合
					entryRenrakusaki(sysId, skkAd2,rrksCd);
				}
				// (b) 連絡先登録
				if (skkAd3 != null && !("".equals(skkAd3)))
				{
				String rrksCd = CD_DIV_RRK_WAY_CD_SKK_AD3;
					// 申告アドレス３が空白でない場合
					entryRenrakusaki(sysId, skkAd3,rrksCd);
				}
				//ANK-2928-00-00 ADD END

				// (c) お客様更新
				if (
						(proscstHskBiko != null && !("".equals(proscstHskBiko)))
						|| (JCRStrConst.CD_DIV_DEL_TAISHOGAI.equals(pcstDelTrgtGaiFlg)
							&& JCRStrConst.CD_DIV_DEL_TAISHO.equals(custDelTrgtGaiFlg)))
				{
					// 「問合せ客補足備考」が空白でない
					// 又は、「問合せ客．削除対象外フラグ」＝'1'（削除対象外）かつ「お客様．削除対象外フラグ」＝'0'（削除対象）
					boolean wkBikoOverFlow = updateOkyakusama(sysId,
															geneAddDtm,
															svcKeiNo,
															proscstHskBiko,
															custCfmBiko,
															pcstDelTrgtGaiFlg,
															custDelTrgtGaiFlg,
															// OM-2015-0002187 ADD START
															custKeishaTypeCd);
															// OM-2015-0002187 ADD END
					String[] messageParam = null;
					if (wkBikoOverFlow == true)
					{
						bikoOverFlow = true;
						messageParam = new String[] {"問合せ顧客紐付変更処理",
													"問合せ客番号:" + tiawsKyakuNo + "　SYSID:" + sysId + "　問合せ客補足備考をお客様確認備考に追記するときに桁あふれが発生しました。"};
						// ECRB0440AI	%1%処理が正常終了しました。　%2%	1	1	0
						super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECRB0440AI, messageParam);

						// 備考桁あふれ時に業務エラーを発生させるための設定
						super.commonItem.setErrFlg(bikoOverFlow);
					}
				}
				String[] messageParam = new String[]{"問合せ顧客紐付変更処理", "問合せ客番号:" + tiawsKyakuNo + "->　SYSID:" + sysId + "　サービス契約番号:" + svcKeiNo};
				// ECRB0440AI	%1%処理が正常終了しました。　%2%	1	1	0
				super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECRB0440AI, messageParam);

				// (5) 問合せ客削除
				deleteTiawsKyaku(tiawsKyakuNo);

				deleteDataList.add(tiawsKyakuNo);
			}
		}

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 紐付対象データ取得
	 * @param tiawsKyakuNo 問合せ客番号
	 * @return 紐付対象データのList
	 * @throws Exception 例外
	 */
	private List<JBSbatCommonDBInterface> getHimotsukeData(String tiawsKyakuNo) throws Exception
	{
		String[] params = new String[] {tiawsKyakuNo, jyokenDtms};

		// 紐付け対象データ取得
		executeCK_T_PROSCST_CR_SELECT_008(params);

		return JCRBatCommon.getSelectedDataList(db_CK_T_PROSCST);
	}

	/**
	 * サービス契約番号取得
	 * @param sysId SYSID
	 * @param mskmDtlNo 申込明細番号
	 * @return サービス契約番号
	 * @throws Exception 例外
	 */
	private String getSvcKeiNo(String sysId, String mskmDtlNo) throws Exception
	{
		String svcKeiNo = null;

		// SYSIDと申込明細番号でサービス契約番号を検索
		executeKK_T_SVC_KEI_CR_SELECT_017(new String[]{sysId, mskmDtlNo, commonItem.getOpeDate()});
		JBSbatCommonDBInterface selectedData = db_KK_T_SVC_KEI.selectNext();
		if (selectedData != null)
		{
			svcKeiNo = selectedData.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
		}

		if (svcKeiNo == null)
		{
			// SYSIDでサービス契約番号を検索
			executeKK_T_SVC_KEI_CR_SELECT_015(new String[]{sysId, commonItem.getOpeDate()});
			selectedData = db_KK_T_SVC_KEI.selectNext();
			if (selectedData != null)
			{
				svcKeiNo = selectedData.getString(JBSbatKK_T_SVC_KEI.SVC_KEI_NO);
			}
		}
		return svcKeiNo;
	}

	/**
	 * 対応記録更新
	 * @param svcKeiNo サービス契約番号
	 * @param tiawsKyakuNo 問合せ客番号
	 * @param tiawsKyakuNm 問合せ客名
	 * @throws Exception 例外
	 */
	private void updateTaioKirok(String svcKeiNo, String tiawsKyakuNo, String tiawsKyakuNm) throws Exception
	{
		String rireki = createRireki(tiawsKyakuNo, tiawsKyakuNm);
		executeCR_T_TAIO_KIROK_CR_UPDATE_004(new String[]{svcKeiNo, rireki, sysDtms, commonItem.getBatchUserId(), tiawsKyakuNo});
	}

	/**
	 * 対応記録履歴生成
	 * @param tiawsKyakuNo 問合せ客番号
	 * @param tiawsKyakuNm 問合せ客名
	 * @return 対応記録履歴に登録する文字
	 * @throws Exception 例外
	 */
	private String createRireki(String tiawsKyakuNo, String tiawsKyakuNm) throws Exception
	{
		StringBuilder sb = new StringBuilder();
		sb.append(JCRStrConst.KAIGYO_CD);
		sb.append("□顧客紐付け自動変更:").append(JCRBatCommon.formatDatetimeMM(sysDtms.substring(0, 12))).append(JCRStrConst.KAIGYO_CD);
		sb.append("　紐付け元:").append(tiawsKyakuNm).append("(").append(tiawsKyakuNo).append(")").append(JCRStrConst.KAIGYO_CD);
		sb.append("------------------------------------------------------------").append(JCRStrConst.KAIGYO_CD);
		return sb.toString();
	}

	/**
	 * 連絡先登録
	 * @param sysId SYSID
	 * @param skkAd 申告アドレス
	 * @throws Exception 例外
	 */
	//ANK-2928-00-00 ADD START
//	private void entryRenrakusaki(String sysId, String skkAd) throws Exception
	private void entryRenrakusaki(String sysId, String skkAd,String rrksCd) throws Exception
	//ANK-2928-00-00 ADD END
	{
		int count = 0;
		// 1.申告アドレスで連絡先検索
		executeCK_T_RRKS_CR_SELECT_001(new String[]{sysId, skkAd, commonItem.getOpeDate()});
		JBSbatCommonDBInterface selectedData = db_CK_T_RRKS.selectNext();
		if (selectedData != null)
		{
			count = selectedData.getBigDecimal(CNT).intValue();
		}

		// 2.連絡先に申告アドレス登録
		if (count == 0)
		{
			String key = JCRBatCommon.getFormatedNextSeq(commonItem, SEQ_RRKS_NO, "", KETA_RRKS_NO);
			String sysTimeStamp = JCRBatCommon.getSysDateTimeStamp();

			String[] param = new String[] {
				key,								// 連絡先番号
				sysTimeStamp,						// 世代登録年月日時分秒
				sysId,								// SYSID
				null,								// 連絡先コード
				//ANK-2928-00-00 MOD START
//				CD_DIV_RRK_WAY_CD_SKK_AD,			// 連絡方法コード
				rrksCd,								// 連絡方法コード
//				null,								// 連絡先種別コード
				CD_DIV_RRK_SBT_CD_OTHER,			// 連絡先種別コード
				//ANK-2928-00-00 MOD END
				CD_DIV_RRKS_BUNRUI_CD_KAISEN,		// 連絡先分類コード
				skkAd,								// メールアドレス
				null,								// 電話番号
				null,								// 内線番号
				null,								// FAX番号
				null,								// メールアドレス変更受付年月日
				null,								// メールアドレス変更年月日
				commonItem.getOpeDate(),			// 予約適用年月日
				null,								// 予約取消年月日
				CD_DIV_RSV_APLY_CD_KAKUTEI,			// 予約適用コード
				sysTimeStamp,						// 登録年月日時分秒
				commonItem.getBatchUserId(),		// 登録オペレータアカウント
				sysTimeStamp,						// 更新年月日時分秒
				commonItem.getBatchUserId(),		// 更新オペレータアカウント
				null,								// 削除年月日時分秒
				null,								// 削除オペレータアカウント
				JCRStrConst.CD_DIV_MK_FLG_YUKO,		// 無効フラグ
				null,								// 登録運用年月日（自動設定）
				null,								// 登録処理ID（自動設定）
				null,								// 更新運用年月日（自動設定）
				null,								// 更新処理ID（自動設定）
				null,								// 削除運用年月日（自動設定）
				null								// 削除処理ID（自動設定）
			};
			executeCK_T_RRKS_PKINSERT(param);
		}
	}

	/**
	 * お客様更新
	 * @param sysId SYSID
	 * @param geneAddDtm 世代登録年月日時分秒
	 * @param svcKeiNo サービス契約番号
	 * @param proscstHskBiko 問合せ客補足備考
	 * @param custCfmBiko お客様確認備考
	 * @param pcstDelTrgtGaiFlg 削除対象外フラグ（問合せ客）
	 * @param custDelTrgtGaiFlg 削除対象外フラグ（お客様）
	 * @param custKeishaTypeCd 契約者タイプコード
	 * @return 備考桁あふれの場合 true
	 * @throws Exception 例外
	 */
	private boolean updateOkyakusama(String sysId,
									String geneAddDtm,
									String svcKeiNo,
									String proscstHskBiko,
									String custCfmBiko,
									String pcstDelTrgtGaiFlg,
									String custDelTrgtGaiFlg,
									// OM-2015-0002187 ADD START
									String custKeishaTypeCd) throws Exception
									// OM-2015-0002187 ADD END
	{
		// 備考桁あふれの場合 true
		boolean wkBikoOverFlow = false;

		String biko = null;

		// 「お客様確認備考」と「問合せ客補足備考」を結合
		StringBuilder wkBiko = new StringBuilder();
		if (custCfmBiko != null && !("".equals(custCfmBiko)))
		{
			wkBiko.append(custCfmBiko);
		}
		if (proscstHskBiko != null && !("".equals(proscstHskBiko)))
		{
			if (wkBiko.length() > 0)
			{
				wkBiko.append(JCRStrConst.KAIGYO_CD);
			}
			wkBiko.append("[").append(svcKeiNo).append("]").append(JCRStrConst.KAIGYO_CD);
			wkBiko.append(proscstHskBiko);

			biko = wkBiko.toString();
			// 改行コードを\r\nに揃える
			biko = biko.replaceAll(JCRStrConst.KAIGYO_CD, KAIGYO_N);
			biko = biko.replaceAll(KAIGYO_R, KAIGYO_N);
			biko = biko.replaceAll(KAIGYO_N, JCRStrConst.KAIGYO_CD);

			if (biko.length() > DB_CUST_CFM_BIKO_LENGTH)
			{
				biko = biko.substring(0, DB_CUST_CFM_BIKO_LENGTH);
				wkBikoOverFlow = true;
			}
		}
		else
		{
			biko = wkBiko.toString();
		}

		// 削除対象外フラグ
		String delTrgtGaiFlg = custDelTrgtGaiFlg;
		if (JCRStrConst.CD_DIV_DEL_TAISHO.equals(custDelTrgtGaiFlg))
		{
			if (JCRStrConst.CD_DIV_DEL_TAISHOGAI.equals(pcstDelTrgtGaiFlg))
			{
				delTrgtGaiFlg = pcstDelTrgtGaiFlg;
			}
		}

		// OM-2015-0002187 ADD START
		// システム年月日時分秒を取得
		String sysDateTimeStamp = JCRBatCommon.getSysDateTimeStamp();
		// OM-2015-0002187 ADD END
		// 「お客様」最新世代レコード追加
		String[] param1 = new String[] {
				// OM-2015-0002187 MOD START
//				JCRBatCommon.getSysDateTimeStamp(),		// 世代登録年月日時分秒（新世代データ）
				sysDateTimeStamp,						// 世代登録年月日時分秒（新世代データ）
				// OM-2015-0002187 MOD END
				biko,									// お客様確認備考
				delTrgtGaiFlg,							// 削除対象外フラグ
				sysId,									// SYSID
				geneAddDtm								// 世代登録年月日時分秒（カレントデータ）
			};
		// OM-2015-0002187 MOD START
//		executeCK_T_CUST_CR_INSERT_001(param1);
		executeCK_T_CUST_CR_INSERT_002(param1);
		// OM-2015-0002187 MOD END

		// 「お客様」予約中レコード更新
		String[] param2 = new String[] {
				biko,						// お客様確認備考
				delTrgtGaiFlg,				// 削除対象外フラグ
				sysId,						// SYSID
				commonItem.getOpeDate()		// 運用日付
			};
		executeCK_T_CUST_CR_UPDATE_001(param2);

		// OM-2015-0002187 ADD START
		if (JCRStrConst.KEISHA_TYPE_CD_KOJIN.equals(custKeishaTypeCd)) 
		{
			// 「お客様<個人>」最新世代レコード追加
			String[] param3 = new String[] {
					sysDateTimeStamp,						// 世代登録年月日時分秒（新世代データ）
					sysId,									// SYSID
				};
			executeCK_T_CUST_KOJIN_CR_INSERT_001(param3);
		}
		else 
		{
			// 「お客様<法人>」最新世代レコード追加
			String[] param4 = new String[] {
					sysDateTimeStamp,						// 世代登録年月日時分秒（新世代データ）
					sysId,									// SYSID
				};
			executeCK_T_CUST_HOJIN_CR_INSERT_001(param4);
		}
		// OM-2015-0002187 ADD END
		return wkBikoOverFlow;
	}

	/**
	 * 問合せ客論理削除
	 * @param tiawsKyakuNo 問合せ客番号
	 * @throws Exception 例外
	 */
	private void deleteTiawsKyaku(String tiawsKyakuNo) throws Exception
	{
		// 論理削除実行
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("PROSCST_NO", tiawsKyakuNo);
		db_CK_T_PROSCST.logicalDeleteByPrimaryKeys(whereMap);
	}

	/**
	 * 削除データファイル出力
	 * @param deleteTiawsKyakuNoList 削除問合せ客番号リスト
	 * @param outputFilePath 出力ファイルパス
	 * @throws Exception 例外
	 */
	private void outputFile(List<String> deleteTiawsKyakuNoList, String outputFilePath) throws Exception
	{
		// ファイル出力オブジェクト
		JBSbatBusinessFileUtil outputFileObj = null;

		try
		{
			outputFileObj =
				JCRBatCommon.createBusinessFileUtil(outputFilePath, JCRStrConst.DEFAULT_ENCODE, JCRStrConst.KAIGYO_CD, JCRStrConst.STR_HALF_COMMA);

			for (int i = 0; i < deleteTiawsKyakuNoList.size(); i++)
			{
				ArrayList<String> outputDataList = makeOneLineData(deleteTiawsKyakuNoList.get(i));

				// ファイル書き込み
				JCRBatCommon.printBusinessFileUtil(outputFileObj, outputDataList);
			}
		}
		finally
		{
			if (outputFileObj != null)
			{
				outputFileObj.close();
			}
		}
	}

	/**
	 * 出力データ1行生成
	 * @param tiawsKyakuNo 問合せ客番号
	 * @return 生成した1行分のリスト
	 * @throws Exception 例外
	 */
	private ArrayList<String> makeOneLineData(String tiawsKyakuNo) throws Exception
	{
		// 出力レコード1行生成
		ArrayList<String> outputDataList = new ArrayList<String>();

		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービス契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(tiawsKyakuNo));	// 問合せ客番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービス契約内訳番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービス契約回線内訳番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// オプションサービス契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サブオプションサービス契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 機器提供サービス契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 請求オプションサービス契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービスコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 料金グループコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 料金コースコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// オプションサービスコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サブオプションサービスコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 機器提供サービスコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 請求オプションサービスコード
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 新規申込書番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 請求契約番号
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// ISP認証ID
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービス解約年月日
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// サービスキャンセル年月日
		outputDataList.add(JCRUtilCommon.addDblQut(null));			// 削除実施日

		return outputDataList;
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/

		// ファイル出力
		String outputFilePath = outputPath
								+ JCRStrConst.FILE_KUGIRI
								+ PREFIX_FILE_NM
								+ JCRBatCommon.getSysDateTime()
								+ EXT_DATA_FILE;
		outputFile(deleteDataList, outputFilePath);

		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CK_T_PROSCST.close();
		db_CK_T_CUST.close();
		db_KK_T_SVC_KEI.close();
		db_CR_T_TAIO_KIROK.close();
		db_CK_T_RRKS.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		// OM-2015-0002187 ADD START
		db_CK_T_CUST_KOJIN.close();
		db_CK_T_CUST_HOJIN.close();
		// OM-2015-0002187 ADD END

		if (bikoOverFlow == true)
		{
			// １件でも備考の桁あふれがある場合
			// ECRB0440AI	%1%処理が正常終了しました。　%2%	1	1	0
			String[] param = new String[]{"問合せ顧客紐付変更処理", "問合せ客補足備考をお客様確認備考に追記するときに桁あふれが発生したのでご確認下さい。処理は正常終了しています。"};
			super.logPrint.printBusinessErrorLog(JPCBatchMessageConstant.ECRB0440AI, param);
		}

	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(CR_SELECT_008)で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_PROSCST_CR_SELECT_008(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_PROSCST.selectBySqlDefine(paramList, CK_T_PROSCST_CR_SELECT_008);
	}

	/**
	 * SQLKEY(CR_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_CUST_CR_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CR_SELECT_001);
	}

	/**
	 * SQLKEY(CR_SELECT_017)で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_CR_SELECT_017(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_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CR_SELECT_017);
	}

	/**
	 * SQLKEY(CR_SELECT_015)で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_CR_SELECT_015(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_KK_T_SVC_KEI.selectBySqlDefine(paramList, KK_T_SVC_KEI_CR_SELECT_015);
	}

	/**
	 * SQLKEY(CR_UPDATE_004)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	サービス契約番号
	 *		 	対応記録履歴
	 *		 	更新年月日時分秒
	 *		 	更新オペレータアカウント
	 *		 	問合せ客番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCR_T_TAIO_KIROK_CR_UPDATE_004(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_CR_T_TAIO_KIROK.executeBySqlDefine(paramList, CR_T_TAIO_KIROK_CR_UPDATE_004);
	}

	/**
	 * SQLKEY(CR_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_RRKS_CR_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CK_T_RRKS.selectBySqlDefine(paramList, CK_T_RRKS_CR_SELECT_001);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	連絡先番号				RRKS_NO
	 *		 	世代登録年月日時分秒				GENE_ADD_DTM
	 *		 	ＳＹＳＩＤ				SYSID
	 *		 	連絡先コード				RRKS_CD
	 *		 	連絡方法コード				RRK_WAY_CD
	 *		 	連絡先種別コード				RRKS_SBT_CD
	 *		 	連絡先分類コード				RRKS_BUNRUI_CD
	 *		 	メールアドレス				MLAD
	 *		 	電話番号				TELNO
	 *		 	内線番号				NISNNO
	 *		 	ＦＡＸ番号				FAX_NO
	 *		 	メールアドレス変更受付年月日				MLAD_CHGE_UK_YMD
	 *		 	メールアドレス変更年月日				MLAD_CHGE_YMD
	 *		 	予約適用年月日				RSV_APLY_YMD
	 *		 	予約取消年月日				RSV_CL_YMD
	 *		 	予約適用コード				RSV_APLY_CD
	 *		 	登録年月日時分秒				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 executeCK_T_RRKS_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("RRKS_NO", setParam[0]);
		setMap.setValue("GENE_ADD_DTM", setParam[1]);
		setMap.setValue("SYSID", setParam[2]);
		setMap.setValue("RRKS_CD", setParam[3]);
		setMap.setValue("RRK_WAY_CD", setParam[4]);
		setMap.setValue("RRKS_SBT_CD", setParam[5]);
		setMap.setValue("RRKS_BUNRUI_CD", setParam[6]);
		setMap.setValue("MLAD", setParam[7]);
		setMap.setValue("TELNO", setParam[8]);
		setMap.setValue("NISNNO", setParam[9]);
		setMap.setValue("FAX_NO", setParam[10]);
		setMap.setValue("MLAD_CHGE_UK_YMD", setParam[11]);
		setMap.setValue("MLAD_CHGE_YMD", setParam[12]);
		setMap.setValue("RSV_APLY_YMD", setParam[13]);
		setMap.setValue("RSV_CL_YMD", setParam[14]);
		setMap.setValue("RSV_APLY_CD", setParam[15]);
		setMap.setValue("ADD_DTM", setParam[16]);
		setMap.setValue("ADD_OPEACNT", setParam[17]);
		setMap.setValue("UPD_DTM", setParam[18]);
		setMap.setValue("UPD_OPEACNT", setParam[19]);
		setMap.setValue("DEL_DTM", setParam[20]);
		setMap.setValue("DEL_OPEACNT", setParam[21]);
		setMap.setValue("MK_FLG", setParam[22]);
		setMap.setValue("ADD_UNYO_YMD", setParam[23]);
		setMap.setValue("ADD_TRN_ID", setParam[24]);
		setMap.setValue("UPD_UNYO_YMD", setParam[25]);
		setMap.setValue("UPD_TRN_ID", setParam[26]);
		setMap.setValue("DEL_UNYO_YMD", setParam[27]);
		setMap.setValue("DEL_TRN_ID", setParam[28]);
	
		// DBアクセスを実行します
		db_CK_T_RRKS.insertByPrimaryKeys(setMap);
	}

	/**
	 * SQLKEY(CR_INSERT_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_CUST_CR_INSERT_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_CK_T_CUST.executeBySqlDefine(paramList, CK_T_CUST_CR_INSERT_001);
	}

	/**
	 * SQLKEY(CR_UPDATE_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_CUST_CR_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());

		// DBアクセスを実行します
		db_CK_T_CUST.executeBySqlDefine(paramList, CK_T_CUST_CR_UPDATE_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	// OM-2015-0002187 ADD START
	/**
	 * SQLKEY(CR_SELECT_005)で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_CR_SELECT_005(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST.selectBySqlDefine(paramList, CK_T_CUST_CR_SELECT_005);
	}

	/**
	 * SQLKEY(CR_INSERT_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_CUST_KOJIN_CR_INSERT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST_KOJIN.executeBySqlDefine(paramList, CK_T_CUST_KOJIN_CR_INSERT_001);
	}

	/**
	 * SQLKEY(CR_INSERT_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_CUST_HOJIN_CR_INSERT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CK_T_CUST_HOJIN.executeBySqlDefine(paramList, CK_T_CUST_HOJIN_CR_INSERT_001);
	}

	/**
	 * SQLKEY(CR_INSERT_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_CR_INSERT_002(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_CK_T_CUST.executeBySqlDefine(paramList, CK_T_CUST_CR_INSERT_002);
	}
// OM-2015-0002187 ADD END
}
