/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKAtchakuYoksiUpd
*	ソースファイル名	：JBSbatKKAtchakuYoksiUpd.java
*	作成者				：FJ)藤本
*	作成日				：2017年09月02日
*＜機能概要＞
*　圧着ハガキ抑止対象更新部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v33.00.00	2017/09/02	FJ)藤本		【ANK-3233-00-00】(契アシRDSツール改善）圧着請求書拒否抽出
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCRBatCommon;
import eo.business.common.JKKBatCommon;
import eo.business.util.file.JBSbatKKIFM743;
import eo.business.util.table.JBSbatCR_T_TAIOKRK_DTL;
import eo.business.util.table.JBSbatCR_T_TAIO_KIROK;
import eo.common.constant.JACStrConst;
import eo.common.constant.JCRStrConst;
import eo.common.util.JCRUtilCommon;
import eo.common.util.JKKStringUtil;
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.JBSbatDateUtil;

/**
* 圧着ハガキ抑止対象更新部品です。 <p>
*<BR>
* @author FJ
*/
public class JBSbatKKAtchakuYoksiUpd extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(請求抑止)*/
	private static final String D_TBL_NAME_KK_T_SEIKY_YOKSI = "KK_T_SEIKY_YOKSI";

	/** テーブル(料金対応記録)*/
	private static final String D_TBL_NAME_CH_T_PRC_TAIOKRK = "CH_T_PRC_TAIOKRK";

	/** テーブル(対応記録)*/
	private static final String D_TBL_NAME_CR_T_TAIO_KIROK = "CR_T_TAIO_KIROK";

	/** テーブル(対応記録明細)*/
	private static final String D_TBL_NAME_CR_T_TAIOKRK_DTL = "CR_T_TAIOKRK_DTL";

	/** テーブル(キューBOX)*/
	private static final String D_TBL_NAME_CR_T_QUE_BOX = "CR_T_QUE_BOX";

	/** SQL定義キー(KK_SELECT_002)*/
	private static final String CR_T_TAIO_KIROK_KK_SELECT_002 = "KK_SELECT_002";

	/** SQL定義キー(CR_SELECT_006)*/
	private static final String CR_T_TAIOKRK_DTL_CR_SELECT_006 = "CR_SELECT_006";

	/** SQL定義キー(KK_UPDATE_001)*/
	private static final String CR_T_QUE_BOX_KK_UPDATE_001 = "KK_UPDATE_001";
	
	/** テーブルアクセスクラス(請求抑止)*/
	private JBSbatSQLAccess db_KK_T_SEIKY_YOKSI = null;

	/** テーブルアクセスクラス(料金対応記録)*/
	private JBSbatSQLAccess db_CH_T_PRC_TAIOKRK = null;

	/** テーブルアクセスクラス(対応記録)*/
	private JBSbatSQLAccess db_CR_T_TAIO_KIROK = null;

	/** テーブルアクセスクラス(対応記録明細)*/
	private JBSbatSQLAccess db_CR_T_TAIOKRK_DTL = null;

	/** テーブルアクセスクラス(キューBOX)*/
	private JBSbatSQLAccess db_CR_T_QUE_BOX = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** 料金対応記録のタイトル */
	private static final String PRC_TAIOKRK_TITLE = "督促状況更新";

	/** 問合せクローズ登録を行うユーザ名 */
	private static final String TAIO_USER_NM = "システム管理者";

	/** 料金対応記録の記事 */
	private static final String PRC_TAIOKRK_KIJI = "圧着請求書拒否";
	
	/** 抑止処理区分：全ての登録処理を行う */
	private static final String YOKSI_TRAN_DIV_ALL = "1";

	/** 対応記録明細番号の桁数 */
	private static final int LENGTH_TAIO_KIROK_DTL_NO = 10;

	/** 請求抑止を登録／更新した請求契約番号 */
	private String prevSeikyKeiNo = "";

	/**
	 * 初期処理
	 * @param commonItem バッチ共通パラメータ電文
	 * @throws Exception 例外が発生した場合
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_SEIKY_YOKSI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_SEIKY_YOKSI);
		db_CH_T_PRC_TAIOKRK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CH_T_PRC_TAIOKRK);
		db_CR_T_TAIO_KIROK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CR_T_TAIO_KIROK);
		db_CR_T_TAIOKRK_DTL = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CR_T_TAIOKRK_DTL);
		db_CR_T_QUE_BOX = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CR_T_QUE_BOX);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap 入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception 例外が発生した場合
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 請求抑止の登録／更新
		if (insertUpdateSeikyYoksi(inMap))
		{
			// 料金対応記録の登録
			insertPrcTaiokrk(inMap);
		}

		// 対応記録のクローズ
		closeTaioKirok(inMap);

		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception 例外が発生した場合
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_SEIKY_YOKSI.close();
		db_CH_T_PRC_TAIOKRK.close();
		db_CR_T_TAIO_KIROK.close();
		db_CR_T_TAIOKRK_DTL.close();
		db_CR_T_QUE_BOX.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 請求抑止の登録、または更新を行います。<br>
	 * 請求契約番号ごとに1件のみ登録／更新します。
	 * <br>
	 * @param inMap 入力電文
	 * @return 請求抑止の登録／更新を行った場合はtrue、行っていない場合はfalse
	 * @throws Exception DBアクセス処理で例外が発生した場合
	 */
	private boolean insertUpdateSeikyYoksi(JBSbatServiceInterfaceMap inMap)
	throws Exception
	{
		// 登録／更新した請求契約番号と変わらない間は処理しない
		if (prevSeikyKeiNo.equals(inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO)))
		{
			return false;
		}

		// 抑止処理区分が「全ての登録処理を行う」の場合
		if (YOKSI_TRAN_DIV_ALL.equals(inMap.getString(JBSbatKKIFM743.YOKSI_TRAN_DIV)))
		{
			// 請求抑止を検索
			JBSbatCommonDBInterface resultMap = executeKK_T_SEIKY_YOKSI_PKSELECT(new String[]{
					inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO),
					JACStrConst.SEIKY_YOKSI_CD_SKS_HAGAKI
			});

			// 登録済みの場合
			if (resultMap != null)
			{
				// 更新項目
 				String[] setParam = new String[]{
						JACStrConst.YOKSI_FLG_ARI,			// 請求抑止フラグ
						super.opeDate,						// 請求抑止年月日
						"",									// 請求抑止解除年月日
						""									// 請求抑止解除予定年月日
				};
				// 更新条件
				String[] whereParam = new String[]{
						inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO),
						JACStrConst.SEIKY_YOKSI_CD_SKS_HAGAKI
				};
				executeKK_T_SEIKY_YOKSI_PKUPDATE(setParam, whereParam);
			}
			// 未登録の場合
			else
			{
				// 登録項目
				String[] setParam = new String[]{
						inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO),	// 請求契約番号
						JACStrConst.SEIKY_YOKSI_CD_SKS_HAGAKI,			// 請求抑止コード
						JACStrConst.YOKSI_FLG_ARI,						// 請求抑止フラグ
						super.opeDate,									// 請求抑止年月日
						"",												// 請求抑止解除年月日
						""												// 請求抑止解除予定年月日
				};
				executeKK_T_SEIKY_YOKSI_PKINSERT(setParam);
			}

			// 請求抑止の登録／更新を行った請求契約番号を保持する
			prevSeikyKeiNo = inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO);

			return true;
		}

		return false;
	}

	/**
	 * 料金対応記録に登録します。
	 * <br>
	 * @param inMap 入力電文
	 * @throws Exception DBアクセス処理で例外が発生した場合
	 */
	private void insertPrcTaiokrk(JBSbatServiceInterfaceMap inMap)
	throws Exception
	{
		// 登録項目
		String[] setParam = new String[]{
				JKKBatCommon.getFormatedNextSeq(commonItem, "SEQ_PRC_TAIO_KIROK_NO", "", 12),	// 料金対応記録番号
				batchUserId,																	// 料金対応ユーザID
				inMap.getString(JBSbatKKIFM743.SEIKY_KEI_NO),									// 請求契約番号
				JBSbatDateUtil.getSystemDateTimeStamp(),										// 対応年月日時分秒
				JACStrConst.TKRK_SBT_TOKUSOKU_STAT_UPD,											// 料金対応記録種別コード
				JACStrConst.TKRK_SBTD_YKSI_SKS_HAGAKI,											// 料金対応記録種別詳細コード
				PRC_TAIOKRK_TITLE,																// タイトル
				PRC_TAIOKRK_KIJI,																// 記事
				"",																				// 変更前コード種別コード
				"",																				// 変更前コード区分
				"",																				// 変更後コード種別コード
				"",																				// 変更後コード区分
				"",																				// 変更前料金グループコード
				"",																				// 変更前料金コースコード
				"",																				// 変更前料金サービスコード
				"",																				// 変更前料金項目コード
				"",																				// 変更後料金グループコード
				"",																				// 変更後料金コースコード
				"",																				// 変更後料金サービスコード
				"",																				// 変更後料金項目コード
				"",																				// 変更前年月日
				"",																				// 変更後年月日
				"",																				// 変更前金額
				"",																				// 変更後金額
				"",																				// 記録対象年月
				JACStrConst.TAIORRKI_RENDO_TG_FLG_HIHYOJI,										// 対応履歴連動対象フラグ
				"",																				// 対応記録番号
				"",																				// サービス契約番号
				"",																				// 督促番号
				"",																				// 督促異動番号
				"",																				// 請求番号
				"",																				// 金庫番号
				"",																				// 債権番号
				"",																				// 入金番号
				""																				// 電子ファイル管理番号
		};
		executeCH_T_PRC_TAIOKRK_PKINSERT(setParam);
	}

	/**
	 * 対応記録をクローズします。<br>
	 * 対応記録の更新、対応記録明細の登録、キューBOXの更新を行います。
	 * <br>
	 * @param inMap 入力電文
	 * @throws Exception 例外が発生した場合
	 */
	private void closeTaioKirok(JBSbatServiceInterfaceMap inMap)
	throws Exception
	{
		// 対応記録を取得
		JBSbatCommonDBInterface taioKirok = getTaioKirok(inMap.getString(JBSbatKKIFM743.TAIO_KIROK_NO));

		// システム年月日時分秒を取得
		String systemDateTime = JBSbatDateUtil.getSystemDateTime();

		// 対応記録更新
		updateTaioKirok(taioKirok, systemDateTime);

		// 対応記録明細登録
		insertTaiokrkDtl(taioKirok, systemDateTime);

		// キューBOX更新
		updateQueBox(taioKirok);
	}

	/**
	 * 対応記録を更新します。
	 * <br>
	 * @param taioKirok 対応記録
	 * @param systemDateTime システム年月日時分秒
	 * @throws Exception 例外が発生した場合
	 */
	private void updateTaioKirok(JBSbatCommonDBInterface taioKirok, String systemDateTime)
	throws Exception
	{
		// 更新項目
		String[] setParam = new String[]{
				JCRStrConst.CD_DIV_TAIO_KIROK_STAT_CLOSE,		// 対応記録ステータス
				"",												// キューBOX番号
				"",												// キューBOX番号格納年月日時分秒
				systemDateTime,									// 対応完了年月日時分秒
				systemDateTime,									// 対応クローズ年月日時分秒
				JCRStrConst.CD_DIV_TOIAWASE_STAT_CD_CLOSE,		// 問合せ状態コード
				getTaioKirokRirekiClose(taioKirok)				// 対応記録履歴
		};
		// 更新条件
		String[] whereParam = new String[]{
				taioKirok.getString(JBSbatCR_T_TAIO_KIROK.TAIO_KIROK_NO)
		};
		executeCR_T_TAIO_KIROK_PKUPDATE(setParam, whereParam);
	}

	/**
	 * 対応記録明細に登録します。
	 * <br>
	 * @param taioKirok 対応記録
	 * @param systemDateTime システム年月日時分秒
	 * @throws Exception 例外が発生した場合
	 */
	private void insertTaiokrkDtl(JBSbatCommonDBInterface taioKirok, String systemDateTime)
	throws Exception
	{
		String taioKirokNo = taioKirok.getString(JBSbatCR_T_TAIO_KIROK.TAIO_KIROK_NO);

		// 最大の対応記録明細番号を取得
		executeCR_T_TAIOKRK_DTL_CR_SELECT_006(new String[]{
				taioKirokNo
		});
		JBSbatCommonDBInterface taiokrkDtl = db_CR_T_TAIOKRK_DTL.selectNext();

		int maxTaioKirokDtlNo = 0;
		if (taiokrkDtl != null)
		{
			maxTaioKirokDtlNo = taiokrkDtl.getBigDecimal(JBSbatCR_T_TAIOKRK_DTL.TAIO_KIROK_DTL_NO).intValue();
		}
		String taioKirokDtlNo = JCRBatCommon.fillZero(String.valueOf(++maxTaioKirokDtlNo), LENGTH_TAIO_KIROK_DTL_NO, false);

		String[] setParam = new String[]{
				taioKirokNo,									// 対応記録番号
				taioKirokDtlNo,									// 対応記録明細番号
				JCRStrConst.CD_DIV_ACTION_TYPE_CD_CLOSE,		// アクションタイプコード
				systemDateTime,									// アクション開始年月日時分秒
				systemDateTime,									// アクション完了年月日時分秒
				batchUserId,									// 対応ユーザーID
				"",												// 問合せ内容
				"",												// 問合せ元名
				"",												// 回答内容
				"",												// コンタクト先コード
				"",												// メモ内容
				"",												// メモタイプコード
				JCRStrConst.CD_DIV_HENSHU_STAT_FLG_KANRYO,		// 編集中フラグ
				"",												// メール受信番号
				"",												// メールヘッダー内タイトル
				"",												// メールヘッダー内送信者メールアドレス
				"",												// メールヘッダー内宛先メールアドレス
				"",												// メールヘッダー内CCメールアドレス
				"",												// メールヘッダー内メッセージID
				"",												// メールヘッダー内送信年月日時分秒
				"",												// メールヘッダー内受信年月日時分秒
				"",												// メール送信番号
				"",												// メールタイトル
				"",												// メール受信本文
				"",												// 元メールアドレス
				"",												// メールヘッダー
				"",												// メールフッター
				"",												// メール本文
				"",												// 送信先メールアドレス
				"",												// 送信元メールアドレス
				"",												// CCメールアドレス
				"",												// 送信メールタイプコード
				"",												// メール送信年月日時分秒
				"",												// 送信ユーザーＩＤ
				"",												// 送信状態コード
				"",												// 返信記号コード
				""												// 業務個別設定組織コード
		};
		executeCR_T_TAIOKRK_DTL_PKINSERT(setParam);
	}

	/**
	 * キューBOXを更新します。
	 * <br>
	 * @param taioKirok 対応記録
	 * @throws Exception 例外が発生した場合
	 */
	private void updateQueBox(JBSbatCommonDBInterface taioKirok)
	throws Exception
	{
		String queBoxNo = taioKirok.getString(JBSbatCR_T_TAIO_KIROK.QUE_BOX_NO);
		if (!JKKStringUtil.isNullBlank(queBoxNo))
		{
			executeCR_T_QUE_BOX_KK_UPDATE_001(new String[]{
					queBoxNo
			});
		}
	}

	/**
	 * 対応記録を取得します。
	 * <br>
	 * @param taioKirokNo 対応記録番号
	 * @return 対応記録
	 * @throws Exception DBアクセス処理で例外が発生した場合
	 */
	private JBSbatCommonDBInterface getTaioKirok(String taioKirokNo)
	throws Exception
	{
		// 対応記録を検索
		executeCR_T_TAIO_KIROK_KK_SELECT_002(new String[]{
				taioKirokNo
		});
		return db_CR_T_TAIO_KIROK.selectNext();
	}

	/**
	 * 対応記録履歴を取得します。
	 * <br>
	 * @param taioKirok 対応記録
	 * @return 対応記録履歴
	 * @throws Exception 例外が発生した場合
	 * @see JCRejbEditTaioKirokHistory
	 */
	private String getTaioKirokRirekiClose(JBSbatCommonDBInterface taioKirok) throws Exception
	{
		// システム年月日時分秒(yyyyMMddHHmmss)を(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(JBSbatDateUtil.getSystemDateTime(),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		String history = taioKirok.getString(JBSbatCR_T_TAIO_KIROK.TAIO_KIROK_RIREKI);
		// 対応記録履歴の終端が改行コードかチェック
		if (!history.endsWith(JCRStrConst.KAIGYO_CD))
		{
			// 終端がCRまたはLFの場合
			if (history.endsWith("\r") || history.endsWith("\n"))
			{
				history = new StringBuffer(history.substring(0, history.length() - 1)).append(JCRStrConst.KAIGYO_CD).toString();
			}
			// 終端が上記以外の場合
			else
			{
				// 対応記録履歴の終端に改行コードを追加
				history = new StringBuffer(history).append(JCRStrConst.KAIGYO_CD).toString();
			}
		}

		// 今回の対応記録履歴
		StringBuilder currentHistory = new StringBuilder();

		if (JCRUtilCommon.isNull(history))
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);
		}

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CLOSE_TITLE);
		currentHistory.append("(").append(TAIO_USER_NM).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		return history + currentHistory.toString();
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KK_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 executeCR_T_TAIO_KIROK_KK_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CR_T_TAIO_KIROK.selectBySqlDefine(paramList, CR_T_TAIO_KIROK_KK_SELECT_002);
	}

	/**
	 * PK(ＰＫ　検索)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で条件マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	SEIKY_YOKSI_CD
	 * </pre>
	 * <p>
	 * @param whereParam 条件項目の値。
	 * @return JBSbatCommonDBInterface 検索の結果。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private JBSbatCommonDBInterface executeKK_T_SEIKY_YOKSI_PKSELECT(Object[] whereParam) throws Exception
	{
		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_KEI_NO", whereParam[0]);
		whereMap.setValue("SEIKY_YOKSI_CD", whereParam[1]);

		// DBアクセスを実行します
		return db_KK_T_SEIKY_YOKSI.selectByPrimaryKeys(whereMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	請求抑止フラグ				SEIKY_YOKSI_FLG
	 *		 	請求抑止年月日				SEIKY_YOKSI_YMD
	 *		 	請求抑止解除年月日			SEIKY_YOKSI_RLS_YMD
	 *		 	請求抑止解除予定年月日		SEIKY_YOKSI_RLS_RSV_YMD
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	SEIKY_KEI_NO
	 *		 	SEIKY_YOKSI_CD
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_YOKSI_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_YOKSI_FLG", setParam[0]);
		setMap.setValue("SEIKY_YOKSI_YMD", setParam[1]);
		setMap.setValue("SEIKY_YOKSI_RLS_YMD", setParam[2]);
		setMap.setValue("SEIKY_YOKSI_RLS_RSV_YMD", setParam[3]);

		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("SEIKY_KEI_NO", whereParam[0]);
		whereMap.setValue("SEIKY_YOKSI_CD", whereParam[1]);

		// DBアクセスを実行します
		db_KK_T_SEIKY_YOKSI.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	請求契約番号				SEIKY_KEI_NO
	 *		 	請求抑止コード				SEIKY_YOKSI_CD
	 *		 	請求抑止フラグ				SEIKY_YOKSI_FLG
	 *		 	請求抑止年月日				SEIKY_YOKSI_YMD
	 *		 	請求抑止解除年月日			SEIKY_YOKSI_RLS_YMD
	 *		 	請求抑止解除予定年月日		SEIKY_YOKSI_RLS_RSV_YMD
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_SEIKY_YOKSI_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("SEIKY_KEI_NO", setParam[0]);
		setMap.setValue("SEIKY_YOKSI_CD", setParam[1]);
		setMap.setValue("SEIKY_YOKSI_FLG", setParam[2]);
		setMap.setValue("SEIKY_YOKSI_YMD", setParam[3]);
		setMap.setValue("SEIKY_YOKSI_RLS_YMD", setParam[4]);
		setMap.setValue("SEIKY_YOKSI_RLS_RSV_YMD", setParam[5]);

		// DBアクセスを実行します
		db_KK_T_SEIKY_YOKSI.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *			料金対応記録番号				PRC_TAIO_KIROK_NO
	 *			料金対応ユーザID				PRC_TAIO_USER_ID
	 *			請求契約番号					SEIKY_KEI_NO
	 *			対応年月日時分秒				TAIO_DTM
	 *			料金対応記録種別コード			PRC_TAIO_KIROK_SBT_CD
	 *			料金対応記録種別詳細コード		PRC_TAIO_KIROK_SBT_DTL_CD
	 *			タイトル						TITLE
	 *			記事							KIJI
	 *			変更前コード種別コード			CHG_BF_CD_SBT_CD
	 *			変更前コード区分				CHG_BF_CD_DIV
	 *			変更後コード種別コード			CHG_AF_CD_SBT_CD
	 *			変更後コード区分				CHG_AF_CD_DIV
	 *			変更前料金グループコード		CHG_BF_PRC_GRP_CD
	 *			変更前料金コースコード			CHG_BF_PCRS_CD
	 *			変更前料金サービスコード		CHG_BF_PRC_SVC_CD
	 *			変更前料金項目コード			CHG_BF_PRC_KMK_CD
	 *			変更後料金グループコード		CHG_AF_PRC_GRP_CD
	 *			変更後料金コースコード			CHG_AF_PCRS_CD
	 *			変更後料金サービスコード		CHG_AF_PRC_SVC_CD
	 *			変更後料金項目コード			CHG_AF_PRC_KMK_CD
	 *			変更前年月日					CHG_BF_YMD
	 *			変更後年月日					CHG_AF_YMD
	 *			変更前金額						CHG_BF_AMNT
	 *			変更後金額						CHG_AF_AMNT
	 *			記録対象年月					KIROK_TG_YM
	 *			対応履歴連動対象フラグ			TAIORRKI_RENDO_TG_FLG
	 *			対応記録番号					TAIO_KIROK_NO
	 *			サービス契約番号				SVC_KEI_NO
	 *			督促番号						TOKUSOKU_NO
	 *			督促異動番号					TOKUSOKU_IDO_NO
	 *			請求番号						SEIKY_NO
	 *			金庫番号						KNK_NO
	 *			債権番号						SAIKEN_NO
	 *			入金番号						NYUKIN_NO
	 *			電子ファイル管理番号			EFILE_KANRI_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCH_T_PRC_TAIOKRK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("PRC_TAIO_KIROK_NO", setParam[0]);
		setMap.setValue("PRC_TAIO_USER_ID", setParam[1]);
		setMap.setValue("SEIKY_KEI_NO", setParam[2]);
		setMap.setValue("TAIO_DTM", setParam[3]);
		setMap.setValue("PRC_TAIO_KIROK_SBT_CD", setParam[4]);
		setMap.setValue("PRC_TAIO_KIROK_SBT_DTL_CD", setParam[5]);
		setMap.setValue("TITLE", setParam[6]);
		setMap.setValue("KIJI", setParam[7]);
		setMap.setValue("CHG_BF_CD_SBT_CD", setParam[8]);
		setMap.setValue("CHG_BF_CD_DIV", setParam[9]);
		setMap.setValue("CHG_AF_CD_SBT_CD", setParam[10]);
		setMap.setValue("CHG_AF_CD_DIV", setParam[11]);
		setMap.setValue("CHG_BF_PRC_GRP_CD", setParam[12]);
		setMap.setValue("CHG_BF_PCRS_CD", setParam[13]);
		setMap.setValue("CHG_BF_PRC_SVC_CD", setParam[14]);
		setMap.setValue("CHG_BF_PRC_KMK_CD", setParam[15]);
		setMap.setValue("CHG_AF_PRC_GRP_CD", setParam[16]);
		setMap.setValue("CHG_AF_PCRS_CD", setParam[17]);
		setMap.setValue("CHG_AF_PRC_SVC_CD", setParam[18]);
		setMap.setValue("CHG_AF_PRC_KMK_CD", setParam[19]);
		setMap.setValue("CHG_BF_YMD", setParam[20]);
		setMap.setValue("CHG_AF_YMD", setParam[21]);
		setMap.setValue("CHG_BF_AMNT", setParam[22]);
		setMap.setValue("CHG_AF_AMNT", setParam[23]);
		setMap.setValue("KIROK_TG_YM", setParam[24]);
		setMap.setValue("TAIORRKI_RENDO_TG_FLG", setParam[25]);
		setMap.setValue("TAIO_KIROK_NO", setParam[26]);
		setMap.setValue("SVC_KEI_NO", setParam[27]);
		setMap.setValue("TOKUSOKU_NO", setParam[28]);
		setMap.setValue("TOKUSOKU_IDO_NO", setParam[29]);
		setMap.setValue("SEIKY_NO", setParam[30]);
		setMap.setValue("KNK_NO", setParam[31]);
		setMap.setValue("SAIKEN_NO", setParam[32]);
		setMap.setValue("NYUKIN_NO", setParam[33]);
		setMap.setValue("EFILE_KANRI_NO", setParam[34]);

		// DBアクセスを実行します
		db_CH_T_PRC_TAIOKRK.insertByPrimaryKeys(setMap);
	}

	/**
	 * PK(ＰＫ　更新)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.引数で条件マップを作ります。<br>
	 *
	 * 3.DBアクセスを実行します。<br>
	 * 
	 * 4.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	対応記録ステータス				TAIO_KIROK_STAT
	 *		 	キューBOX番号					QUE_BOX_NO
	 *		 	キューBOX番号格納年月日時分秒	QUE_BOX_KAKNO_DTM
	 *		 	対応完了年月日時分秒			TAIO_FIN_DTM
	 *		 	対応クローズ年月日時分秒		LAST_END_DTM
	 *		 	問合せ状態コード				TOIAWASE_STAT_CD
	 *		 	対応記録履歴					TAIO_KIROK_RIREKI
	 *		whereParam:PK項目の(項目、値)を(key、value)として,格納された配列です。PK項目は以下に説明します。
	 *		 	TAIO_KIROK_NO
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @param whereParam 条件項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCR_T_TAIO_KIROK_PKUPDATE(Object[] setParam, Object[] whereParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("TAIO_KIROK_STAT", setParam[0]);
		setMap.setValue("QUE_BOX_NO", setParam[1]);
		setMap.setValue("QUE_BOX_KAKNO_DTM", setParam[2]);
		setMap.setValue("TAIO_FIN_DTM", setParam[3]);
		setMap.setValue("LAST_END_DTM", setParam[4]);
		setMap.setValue("TOIAWASE_STAT_CD", setParam[5]);
		setMap.setValue("TAIO_KIROK_RIREKI", setParam[6]);

		// 条件のマップを作成します
		JBSbatCommonDBInterface whereMap = new JBSbatCommonDBInterface();
		whereMap.setValue("TAIO_KIROK_NO", whereParam[0]);

		// DBアクセスを実行します
		db_CR_T_TAIO_KIROK.updateByPrimaryKeys(whereMap, setMap);
	}

	/**
	 * SQLKEY(CR_SELECT_006)で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_TAIOKRK_DTL_CR_SELECT_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CR_T_TAIOKRK_DTL.selectBySqlDefine(paramList, CR_T_TAIOKRK_DTL_CR_SELECT_006);
	}

	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	対応記録番号							TAIO_KIROK_NO
	 *		 	対応記録明細番号						TAIO_KIROK_DTL_NO
	 *		 	アクションタイプコード					ACTION_TYPE_CD
	 *		 	アクション開始年月日時分秒				ACTION_STA_DTM
	 *		 	アクション完了年月日時分秒				ACTION_FIN_DTM
	 *		 	対応ユーザーＩＤ						TAIO_USER_ID
	 *		 	問合せ内容								TOIAWASE_NAIYO
	 *		 	問合せ元名								TOIAWASE_MOTO_NM
	 *		 	回答内容								ANS_NAIYO
	 *		 	コンタクト先コード						CONTACT_SAKI_CD
	 *		 	メモ内容								MEMO_NAIYO
	 *		 	メモタイプコード						MEMO_TYPE_CD
	 *		 	編集状態フラグ							HENSHU_STAT_FLG
	 *		 	メール受信番号							MAIL_RCV_NO
	 *		 	メールヘッダー内タイトル				ML_HEADER_NAI_TITLE
	 *		 	メールヘッダー内送信者メールアドレス	ML_HEADER_NAI_SENDER_MLAD
	 *		 	メールヘッダー内宛先メールアドレス		ML_HEADER_NAI_AD_MLAD
	 *		 	メールヘッダー内ＣＣメールアドレス		ML_HEADER_NAI_CC_MLAD
	 *		 	メールヘッダー内メッセージＩＤ			MAIL_HEADER_NAI_MSG_ID
	 *		 	メールヘッダー内送信年月日時分秒		MAIL_HEADER_NAI_SEND_DTM
	 *		 	メールヘッダー内受信年月日時分秒		MAIL_HEADER_NAI_RCV_DTM
	 *		 	メール送信番号							MAIL_SEND_NO
	 *		 	メールタイトル							MAIL_TITLE
	 *		 	メール受信本文							ML_RCV_TEXT
	 *		 	元メールアドレス						MOTO_MLAD
	 *		 	メールヘッダー							MAIL_HEADER
	 *		 	メールフッター							MAIL_FOOTER
	 *		 	メール本文								MAIL_TEXT
	 *		 	送信先メールアドレス					SENDS_MLAD
	 *		 	送信元メールアドレス					SENDM_MLAD
	 *		 	ＣＣメールアドレス						CC_MLAD
	 *		 	送信メールタイプコード					SEND_MAIL_TYPE_CD
	 *		 	メール送信年月日時分秒					MAIL_SEND_DTM
	 *		 	送信ユーザーＩＤ						SEND_USER_ID
	 *		 	送信状態コード							SEND_STAT_CD
	 *		 	返信転送記号コード						HNSIN_TENSO_SYMBOL_CD
	 *		 	業務個別設定組織コード					WKKBT_ORG_CD
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCR_T_TAIOKRK_DTL_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("TAIO_KIROK_NO", setParam[0]);
		setMap.setValue("TAIO_KIROK_DTL_NO", setParam[1]);
		setMap.setValue("ACTION_TYPE_CD", setParam[2]);
		setMap.setValue("ACTION_STA_DTM", setParam[3]);
		setMap.setValue("ACTION_FIN_DTM", setParam[4]);
		setMap.setValue("TAIO_USER_ID", setParam[5]);
		setMap.setValue("TOIAWASE_NAIYO", setParam[6]);
		setMap.setValue("TOIAWASE_MOTO_NM", setParam[7]);
		setMap.setValue("ANS_NAIYO", setParam[8]);
		setMap.setValue("CONTACT_SAKI_CD", setParam[9]);
		setMap.setValue("MEMO_NAIYO", setParam[10]);
		setMap.setValue("MEMO_TYPE_CD", setParam[11]);
		setMap.setValue("HENSHU_STAT_FLG", setParam[12]);
		setMap.setValue("MAIL_RCV_NO", setParam[13]);
		setMap.setValue("ML_HEADER_NAI_TITLE", setParam[14]);
		setMap.setValue("ML_HEADER_NAI_SENDER_MLAD", setParam[15]);
		setMap.setValue("ML_HEADER_NAI_AD_MLAD", setParam[16]);
		setMap.setValue("ML_HEADER_NAI_CC_MLAD", setParam[17]);
		setMap.setValue("MAIL_HEADER_NAI_MSG_ID", setParam[18]);
		setMap.setValue("MAIL_HEADER_NAI_SEND_DTM", setParam[19]);
		setMap.setValue("MAIL_HEADER_NAI_RCV_DTM", setParam[20]);
		setMap.setValue("MAIL_SEND_NO", setParam[21]);
		setMap.setValue("MAIL_TITLE", setParam[22]);
		setMap.setValue("ML_RCV_TEXT", setParam[23]);
		setMap.setValue("MOTO_MLAD", setParam[24]);
		setMap.setValue("MAIL_HEADER", setParam[25]);
		setMap.setValue("MAIL_FOOTER", setParam[26]);
		setMap.setValue("MAIL_TEXT", setParam[27]);
		setMap.setValue("SENDS_MLAD", setParam[28]);
		setMap.setValue("SENDM_MLAD", setParam[29]);
		setMap.setValue("CC_MLAD", setParam[30]);
		setMap.setValue("SEND_MAIL_TYPE_CD", setParam[31]);
		setMap.setValue("MAIL_SEND_DTM", setParam[32]);
		setMap.setValue("SEND_USER_ID", setParam[33]);
		setMap.setValue("SEND_STAT_CD", setParam[34]);
		setMap.setValue("HNSIN_TENSO_SYMBOL_CD", setParam[35]);
		setMap.setValue("WKKBT_ORG_CD", setParam[36]);
	
		// DBアクセスを実行します
		db_CR_T_TAIOKRK_DTL.insertByPrimaryKeys(setMap);
	}

	/**
	 * SQLKEY(KK_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	QUE_BOX_NO
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @return 処理件数
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private int executeCR_T_QUE_BOX_KK_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		return db_CR_T_QUE_BOX.executeBySqlDefine(paramList, CR_T_QUE_BOX_KK_UPDATE_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
