/*******************************************************************************
 *	All Rights reserved,Copyright (c) K-Opticom
 ********************************************************************************
 *＜プログラム内容＞
 *	システム名		：eo顧客基幹システム
 *	モジュール名	：JKKejbExclusiveProcCommon
 *	ソースファイル名：JKKejbExclusiveProcCommon.java
 *	作成者			：富士通
 *	日付			：2011年11月24日
 *＜機能概要＞
 *	排他処理部品の共通処理。
 *＜修正履歴＞
 *	バージョン	修正日		修正者		修正内容
 *	ｖ1.00.00	2011/11/24	富士通		新規作成
 *	v27.00.01	2016/10/12	FJ)三原		【IT1-2016-0000144】排他制御未実装サービスインターフェイス改修
 *  v33.00.00	2017/09/22	FJ)澤田		ANK-3251-00-00_新規作成
 *	v33.01.00	2017/10/18	FJ)柳		【ANK-3307-00-00】訪販申込情報閲覧システム向けAPIへの工事進捗・キャンセル状況取得機能追加
 *	v48.00.00	2020/02/18	FJ)荒木		【ANK-3639-00-00】契約内容通知書の修正可能項目追加
 *	v50.00.00	2020/06/01	FJ)中原		【ANK-3754-00-00】トビラフォン対応
 *	v55.00.00	2021/10/08	FJ)舘山		【ANK-4112-00-00】通秘データ(通信量等)の活用に向けた取り組みに対するシステム対応
 *	v70.00.00	2024/03/01	FJ)藤本涼	【ANK-4538-00-00】LaLaCall契約時の本人確認必須化
********************************************************************************/

package eo.ejb.common.db;

import java.util.ArrayList;
import java.util.Collections;

import com.fujitsu.futurity.model.base.CAANMsg;

import eo.ejb.cbm.entity.CK0011ETMsg;
import eo.ejb.cbm.entity.CK0061ETMsg;
import eo.ejb.cbm.entity.CK0201ETMsg;
import eo.ejb.cbm.entity.CK0301ETMsg;
import eo.ejb.cbm.entity.CN0341ETMsg;
import eo.ejb.cbm.entity.KK0011ETMsg;
import eo.ejb.cbm.entity.KK0271ETMsg;
import eo.ejb.cbm.entity.KK0491ETMsg;
import eo.ejb.cbm.entity.KK0561ETMsg;
import eo.ejb.cbm.entity.KK0671ETMsg;
import eo.ejb.cbm.entity.KK0891ETMsg;
import eo.ejb.cbm.entity.KK1071ETMsg;
import eo.ejb.cbm.entity.KK1351ETMsg;
import eo.ejb.cbm.entity.KK2011ETMsg;
import eo.ejb.cbm.entity.KK2091ETMsg;
import eo.ejb.cbm.entity.KK2111ETMsg;
import eo.ejb.cbm.entity.KK2441ETMsg;
import eo.ejb.cbm.entity.KK3011ETMsg;
import eo.ejb.cbm.entity.KK3101ETMsg;
import eo.ejb.cbm.entity.KK3111ETMsg;
import eo.ejb.cbm.entity.KK3211ETMsg;
import eo.ejb.cbm.entity.KK3241ETMsg;

/**
 * <p>
 * 排他処理部品の共通処理です。
 * </p>
 * @author 富士通
 *
 */
public class JKKejbExclusiveProcCommon
{
	/** レコードロック用SQL文接尾語 */
	private static final String SUFIX_SQL = " FOR UPDATE NOWAIT";

	/** 更新用キー項目結合用文字（,） */
	private static final String KEY_JOIN_WORD = ",";

	/**
	* <p>
	* 機能コードがチェックのみの実行モードか判定します。<br>
	* 制約上、奇数は実行モード、偶数はチェックモードとして扱います。
	* </p>
	* @param func 機能コード
	* @return チェックモードの場合はtrue
	*/
	protected boolean isFuncMode(String func)
	{
		int in = Integer.parseInt(func);
		boolean ret = (in % 2) == 0;
		return ret;
	}

	/**
	 * 指定されたSQL文の末尾に文言を付与し、レコードロック用SQLに切り替えます。
	 * @param setSQL 切り替え対象のSQL文。
	 * @return レコードロック用のデータ取得SQL文。
	 */
	protected String creSQLForLock(String setSQL)
	{
		return setSQL.concat(SUFIX_SQL);
	}

	/**
	 * 取得したメッセージ内の最終更新年月日時分秒と更新年月日時分秒（更新前）が一致しているかを判定します。
	 * @param inList 更新年月日時分秒を保持しているリスト。
	 * @param updDtmBf タイムスタンプチェック用更新年月日時分秒（更新前）
	 * @return 指定された更新年月日時分秒（更新前）が最終更新年月日時分秒と一致した場合true。一致しない場合false。
	 */
	protected boolean isTimeStampCheck(ArrayList<String> inList, String updDtmBf)
	{
		// 最終更新年月日時分秒を取得する
		String maxUpdDtm = getLastUpdDtm(inList);

		// 最終更新年月日時分秒と更新年月日時分秒（更新前）が一致している場合はtrueを返却する
		if (updDtmBf.equals(maxUpdDtm))
		{
			return true;
		}

		return false;
	}

	/**
	 * 対象のメッセージ内の更新年月日時分秒で最大のものを取得します。
	 * @param inList 更新年月日時分秒を保持しているリスト。
	 * @return 最終更新年月日時分秒。
	 */
	protected String getLastUpdDtm(ArrayList<String> inList)
	{
		// 処理対象のリストをソートし、昇順になったソート順を降順に逆転させる
		Collections.sort(inList);
		Collections.reverse(inList);

		// 最大値を取得して返却
		return inList.get(0);
	}
	
	/**
	 * レコードロック対象となったお客様の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（お客様）。
	 */
	protected void updateCK0011(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(CK0011ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(CK0011ETMsg.SYSID, key[0]);
			inETMsg.set(CK0011ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(CK0011ETMsg.UPD_DTM, inMsg.getString(CK0011ETMsg.UPD_DTM));
			inETMsg.set(CK0011ETMsg.UPD_OPEACNT, inMsg.getString(CK0011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった不良顧客の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（不良顧客）。
	 */
	protected void updateCK0061(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(CK0061ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(CK0061ETMsg.HURYO_CUST_NO, retList.get(i));
			inETMsg.set(CK0061ETMsg.UPD_DTM, inMsg.getString(CK0061ETMsg.UPD_DTM));
			inETMsg.set(CK0061ETMsg.UPD_OPEACNT, inMsg.getString(CK0061ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
	
	/**
	 * レコードロック対象となった連絡先の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（連絡先）。
	 */
	protected void updateCK0201(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(CK0201ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(CK0201ETMsg.RRKS_NO, key[0]);
			inETMsg.set(CK0201ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(CK0201ETMsg.UPD_DTM, inMsg.getString(CK0201ETMsg.UPD_DTM));
			inETMsg.set(CK0201ETMsg.UPD_OPEACNT, inMsg.getString(CK0201ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった面開発案件の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（面開発案件_面開発案件番号）。
	 */
	protected void updateKK0271(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0271ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0271ETMsg.MENKAIHAT_ANKEN_NO, retList.get(i));
			inETMsg.set(KK0271ETMsg.UPD_DTM, inMsg.getString(KK0271ETMsg.UPD_DTM));
			inETMsg.set(KK0271ETMsg.UPD_OPEACNT, inMsg.getString(KK0271ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
	
	/**
	 * レコードロック対象となった申込の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（申込）。
	 */
	protected void updateKK0011(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0011ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0011ETMsg.MSKM_NO, key[0]);
			inETMsg.set(KK0011ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(KK0011ETMsg.UPD_DTM, inMsg.getString(KK0011ETMsg.UPD_DTM));
			inETMsg.set(KK0011ETMsg.UPD_OPEACNT, inMsg.getString(KK0011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
	
	/**
	 * レコードロック対象となった請求契約の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（請求契約）。
	 */
	protected void updateKK0491(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0491ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0491ETMsg.SEIKY_KEI_NO, key[0]);
			inETMsg.set(KK0491ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(KK0491ETMsg.UPD_DTM, inMsg.getString(KK0491ETMsg.UPD_DTM));
			inETMsg.set(KK0491ETMsg.UPD_OPEACNT, inMsg.getString(KK0491ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった通知書の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（通知書_通知著番号）。
	 */
	protected void updateKK0561(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0561ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0561ETMsg.TCHISHO_NO, retList.get(i));
			inETMsg.set(KK0561ETMsg.UPD_DTM, inMsg.getString(KK0561ETMsg.UPD_DTM));
			inETMsg.set(KK0561ETMsg.UPD_OPEACNT, inMsg.getString(KK0561ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった提供方式契約の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（提供方式契約）。
	 */
	protected void updateKK0891(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0891ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0891ETMsg.TK_HOSHIKI_KEI_NO, retList.get(i));
			inETMsg.set(KK0891ETMsg.UPD_DTM, inMsg.getString(KK0891ETMsg.UPD_DTM));
			inETMsg.set(KK0891ETMsg.UPD_OPEACNT, inMsg.getString(KK0891ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
	
	/**
	 * レコードロック対象となった審査の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（審査番号）。
	 */
	protected void updateKK1071(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK1071ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK1071ETMsg.JUDGE_NO, retList.get(i));
			inETMsg.set(KK1071ETMsg.UPD_DTM, inMsg.getString(KK2011ETMsg.UPD_DTM));
			inETMsg.set(KK1071ETMsg.UPD_OPEACNT, inMsg.getString(KK2011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となったデータ抽出項目の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	protected void updateKK1351(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK1351ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK1351ETMsg.DCHSKM_CD, key[0]);
			inETMsg.set(KK1351ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(KK1351ETMsg.UPD_DTM, inMsg.getString(KK1351ETMsg.UPD_DTM));
			inETMsg.set(KK1351ETMsg.UPD_OPEACNT, inMsg.getString(KK1351ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった住所変更申込一時保存の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（住所変更申込一時保存）。
	 */
	protected void updateKK2011(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK2011ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK2011ETMsg.SYSID, key[0]);
			inETMsg.set(KK2011ETMsg.ADCHM_TPPV_NO, key[1]);
			inETMsg.set(KK2011ETMsg.UPD_DTM, inMsg.getString(KK2011ETMsg.UPD_DTM));
			inETMsg.set(KK2011ETMsg.UPD_OPEACNT, inMsg.getString(KK2011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった住所変更の全てのレコードを更新します。
	 * 更新対象項目は「最終更新年月日時分秒」、「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（住所変更）。
	 */
	protected void updateKK2091(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK2091ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK2091ETMsg.ADCHG_NO, retList.get(i));
			inETMsg.set(KK2091ETMsg.UPD_DTM, inMsg.getString(KK2091ETMsg.UPD_DTM));
			inETMsg.set(KK2091ETMsg.UPD_OPEACNT, inMsg.getString(KK2091ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となったサービス契約排他制御の全てのレコードを更新します。
	 * 更新対象項目は「最終更新年月日時分秒」、「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（サービス契約排他制御）。
	 */
	protected void updateKK2111(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK2111ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK2111ETMsg.SVC_KEI_NO, retList.get(i));
			inETMsg.set(KK2111ETMsg.LAST_UPD_DTM, inMsg.getString(KK2111ETMsg.UPD_DTM));
			inETMsg.set(KK2111ETMsg.UPD_DTM, inMsg.getString(KK2111ETMsg.UPD_DTM));
			inETMsg.set(KK2111ETMsg.UPD_OPEACNT, inMsg.getString(KK2111ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となったはぴeポイント契約の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報を保持するリスト（はぴeポイント契約_はぴeポイント契約番号）。
	 */
	protected void updateKK0671(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK0671ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK0671ETMsg.HAPIE_POINT_KEI_NO, retList.get(i));
			inETMsg.set(KK0671ETMsg.UPD_DTM, inMsg.getString(KK0671ETMsg.UPD_DTM));
			inETMsg.set(KK0671ETMsg.UPD_OPEACNT, inMsg.getString(KK0671ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	/**
	 * レコードロック対象となった他事業者割引契約の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	protected void updateKK2441(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(KK2441ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(KK2441ETMsg.TAJGS_WRIB_KEI_NO, key[0]);
			inETMsg.set(KK2441ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(KK2441ETMsg.UPD_DTM, inMsg.getString(KK2441ETMsg.UPD_DTM));
			inETMsg.set(KK2441ETMsg.UPD_OPEACNT, inMsg.getString(KK2441ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}

	// IT1-2016-0000144 ADD START
	/**
	 * レコードロック対象となった契約内容通知書の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	public void updateKK3011(CAANMsg inETMsg, ArrayList<String> keyArray) {
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < keyArray.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = keyArray.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg1 = new CAANMsg(KK3011ETMsg.class.getName());

			// 更新情報を設定
			inETMsg1.set(KK3011ETMsg.KNYTCS_NO, key[0]);
			inETMsg1.set(KK3011ETMsg.UPD_DTM, inETMsg.getString(KK3011ETMsg.UPD_DTM));
			inETMsg1.set(KK3011ETMsg.UPD_OPEACNT, inETMsg.getString(KK3011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inETMsg).update(inETMsg1);
		}
	}
	// IT1-2016-0000144 ADD END
	// ANK-3251-00-00 ADD START
	/**
	 * レコードロック対象となった解約レター登録の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	public void updateKK3111(CAANMsg inETMsg, ArrayList<String> keyArray) {
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < keyArray.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = keyArray.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg1 = new CAANMsg(KK3111ETMsg.class.getName());

			// 更新情報を設定
			inETMsg1.set(KK3111ETMsg.DSL_LETTER_ADD_NO, key[0]);
			inETMsg1.set(KK3111ETMsg.UPD_DTM, inETMsg.getString(KK3111ETMsg.UPD_DTM));
			inETMsg1.set(KK3111ETMsg.UPD_OPEACNT, inETMsg.getString(KK3111ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inETMsg).update(inETMsg1);
		}
	}
	// ANK-3251-00-00 ADD END
	// ANK-3307-00-00 2017/10/18 ADD START
	/**
	 * レコードロック対象となった他システム連携用申込実績の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	public void updateKK3101(CAANMsg inETMsg, ArrayList<String> keyArray)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < keyArray.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = keyArray.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg1 = new CAANMsg(KK3101ETMsg.class.getName());

			// 更新情報を設定
			inETMsg1.set(KK3101ETMsg.MSKM_DTL_NO, key[0]);
			inETMsg1.set(KK3101ETMsg.UPD_DTM, inETMsg.getString(KK3101ETMsg.UPD_DTM));
			inETMsg1.set(KK3101ETMsg.UPD_OPEACNT, inETMsg.getString(KK3101ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inETMsg).update(inETMsg1);
		}
	}
	// ANK-3307-00-00 2017/10/18 ADD END
	// ANK-3639-00-00 ADD START
	/**
	 * レコードロック対象となった契約内容通知書訂正の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	public void updateKK3211(CAANMsg inETMsg, ArrayList<String> keyArray) {
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < keyArray.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = keyArray.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg1 = new CAANMsg(KK3211ETMsg.class.getName());

			// 更新情報を設定
			inETMsg1.set(KK3211ETMsg.KNYTCS_NO, key[0]);
			inETMsg1.set(KK3211ETMsg.UPD_DTM, inETMsg.getString(KK3211ETMsg.UPD_DTM));
			inETMsg1.set(KK3211ETMsg.UPD_OPEACNT, inETMsg.getString(KK3211ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inETMsg).update(inETMsg1);
		}
	}
	// ANK-3639-00-00 ADD END
	// ANK-3754-00-00 ADD START
	/**
	 * レコードロック対象となったトビラフォンIDの全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（データ抽出項目）。
	 */
	public void updateKK3241(CAANMsg inETMsg, ArrayList<String> keyArray) {
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < keyArray.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = keyArray.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg1 = new CAANMsg(KK3241ETMsg.class.getName());

			// 更新情報を設定
			inETMsg1.set(KK3241ETMsg.TOBILAPH_ID, key[0]);
			inETMsg1.set(KK3241ETMsg.UPD_DTM, inETMsg.getString(KK3241ETMsg.UPD_DTM));
			inETMsg1.set(KK3241ETMsg.UPD_OPEACNT, inETMsg.getString(KK3241ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inETMsg).update(inETMsg1);
		}
	}
	// ANK-3754-00-00 ADD END
// ▽▽▽ ANK-4112-00-00 ADD START
	/**
	 * レコードロック対象となったお客様の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（通秘データ活用同意）。
	 */
	protected void updateCK0301(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(CK0301ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(CK0301ETMsg.TUHDT_KATY_DOI_NO, key[0]);
			inETMsg.set(CK0301ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(CK0301ETMsg.UPD_DTM, inMsg.getString(CK0011ETMsg.UPD_DTM));
			inETMsg.set(CK0301ETMsg.UPD_OPEACNT, inMsg.getString(CK0011ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
// △△△ ANK-4112-00-00 ADD END
	// ▽▽▽ ANK-4538-00-00 ADD START
	/**
	 * レコードロック対象となったお客様の全てのレコードを更新します。
	 * 更新対象項目は「更新年月日時分秒」、「更新オペレータアカウント」です。
	 * @param inMsg 更新年月日時分秒、オペレータアカウントを保持するETメッセージ。
	 * @param retList ロック対象のPK情報をカンマ区切りで保持するリスト（通秘データ活用同意）。
	 */
	protected void updateCN0341(CAANMsg inMsg, ArrayList<String> retList)
	{
		// ロック対象全てのレコードの更新を行う
		for (int i = 0; i < retList.size(); i++)
		{
			// リスト内の項目の結合を解除して配列に設定する
			String[] key = retList.get(i).split(KEY_JOIN_WORD);

			// ETMsgを作成する
			CAANMsg inETMsg = new CAANMsg(CN0341ETMsg.class.getName());

			// 更新情報を設定
			inETMsg.set(CN0341ETMsg.CONT_KEI_NO, key[0]);
			inETMsg.set(CN0341ETMsg.GENE_ADD_DTM, key[1]);
			inETMsg.set(CN0341ETMsg.UPD_DTM, inMsg.getString(CN0341ETMsg.UPD_DTM));
			inETMsg.set(CN0341ETMsg.UPD_OPEACNT, inMsg.getString(CN0341ETMsg.UPD_OPEACNT));

			// 更新処理を行う
			new JKKejbDBAUtil(inMsg).update(inETMsg);
		}
	}
// △△△ ANK-4538-00-00 ADD END
}