/*********************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム構築
*	モジュール名	：JCRejbEditTaioKirokHistory
*	ソースファイル名：JCRejbEditTaioKirokHistory.java
*	作成者			：富士通
*	日付			：2011年04月22日
*＜機能概要＞
*	対応記録履歴編集部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/22	富士通		新規作成
*	v5.00.00	2013/06/27	FJ)伊藤		ANK-1555-00-00  コールバック履歴化対応について
*	v5.00.01	2014/04/01	FJ)伊藤		OM-2013-0002656 対応記録履歴（対応記録クローズ）編集部品を修正。
*														業務個別設定組織名がnullの場合、空文字に置換する。
*	v6.00.00	2013/08/20	FJ)伊藤		OM-2013-0000486 メール返信、メール転送の履歴を修正。
*														Fromアドレス→送信元メールアドレス。Toアドレス→送信先メールアドレス。
*	v6.00.00	2013/08/29	FJ)伊藤		OM-2013-0001243 対応記録履歴取得部品を修正。
*														取得した対応記録履歴の終端に改行コードが存在しない場合は、改行コードを追加する。
*
 * ｖ54.00.00   2021/08/15	FJ)星野     ANK-4092-00-00 CX戦略WG方針対応
*  ｖ54.01.00	2021/08/20	FJ)星野		ANK-4092-08-00_【CX戦略WG方針対応STEP2】 対応記録画面からのＳＭＳ送信挙動の変更
*  ｖ56.00.00	2021/12/02	FJ)舘山		ANK-4174-00-00_開通前マイページ関連業務改善（2022年1月下旬リリース）
**********************************************************************/

package eo.ejb.common.edit;

import com.fujitsu.futurity.model.base.CAANException;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JZM0171Constant;
import eo.common.util.JCRUtilCommon;
import eo.ejb.cbm.entity.CR0011ETMsg;
import eo.ejb.cbm.entity.CR0011LE;
import eo.ejb.cbm.entity.CR0021ETMsg;
import eo.ejb.cbm.entity.ZM0171ETMsg;
import eo.ejb.cbm.entity.ZM0171LE;
import eo.ejb.cbs.cbsmsg.ECR0011C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C040CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C060CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C070CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C080CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C090CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C100CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C110CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C140CBSMsg;
import eo.ejb.cbs.cbsmsg.ECR0011C150CBSMsg;

/**
 * <p>
 * 対応記録履歴編集部品クラスです。
 * </p>
 * @author 富士通
 */
public class JCRejbEditTaioKirokHistory
{

	/**
	 * コンストラクタです。
	 * 
	 */
	private JCRejbEditTaioKirokHistory()
	{
	}

	/**
	 * 対応記録履歴取得部品です。<br>
	 * <br>
	 * 対応記録をプライマリー検索し、対応記録履歴を返します。
	 * 対応記録履歴がnullの場合、空文字列を返します。
	 * 
	 * @param taioKirokNo 対応記録番号
	 * @return 対応記録履歴
	 */
	private static CAANMsg getTaioKirok(String taioKirokNo)
	{

		// 対応記録のETメッセージを生成
		CAANMsg searchMsg = new CAANMsg(CR0011ETMsg.class.getName());

		// 検索条件を設定
		// 対応記録番号
		searchMsg.set(CR0011ETMsg.TAIO_KIROK_NO, taioKirokNo);

		// プライマリーキー検索
		CAANMsg retMsg = new CR0011LE().findByPrimaryKey(searchMsg);

		return retMsg;

	}

	/**
	 * 対応記録履歴取得部品です。<br>
	 * <br>
	 * 対応記録をプライマリー検索し、対応記録履歴を返します。
	 * 対応記録履歴がnullの場合、空文字列を返します。
	 * 
	 * @param taioKirokNo 対応記録番号
	 * @return 対応記録履歴
	 */
	private static String getTaioKirokHistory(String taioKirokNo)
	{

		// プライマリーキー検索
		CAANMsg retMsg = getTaioKirok(taioKirokNo);

		if (retMsg == null)
		{
			return "";
		}

		// 取得した対応記録から対応記録履歴を取得
		String history = retMsg.getString(CR0011ETMsg.TAIO_KIROK_RIREKI);
		if (JCRUtilCommon.isNull(history))
		{
			history = "";
		} else {
			// 対応記録履歴の終端が改行コードかチェック
			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();
				}
			}
		}

		return history;

	}

	/**
	 * 対応記録履歴（対応記録エスカレーションアクセプト）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録エスカレーションアクセプト）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録エスカレーションアクセプト）
	 */
	public static String getTaioKirokHistoryAccept(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C020CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C020CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C020CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C020CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_ACCEPT_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録エスカレーションリジェクト）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録エスカレーションリジェクト）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録エスカレーションリジェクト）
	 */
	public static String getTaioKirokHistoryReject(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C030CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C030CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C030CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C030CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_REJECT_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録クローズ）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録クローズ）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録クローズ）
	 */
	public static String getTaioKirokHistoryClose(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C080CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C080CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C080CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C080CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録キャンセル）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録キャンセル）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録キャンセル）
	 */
	public static String getTaioKirokHistoryCancel(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C060CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C060CBSMsg.LOGIN_USER_NM);
		// 回答内容取得
		String answerNaiyo = inMsg.getString(ECR0011C060CBSMsg.ANS_NAIYO);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C060CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C060CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_CANCEL_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(answerNaiyo).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録キャンセル再開）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録キャンセル再開）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録キャンセル再開）
	 */
	public static String getTaioKirokHistoryCancelRestart(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C070CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C070CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C070CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C070CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_RESTART_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録クローズ再開）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録クローズ再開）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録クローズ再開）
	 */
	public static String getTaioKirokHistoryCloseRestart(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C090CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C090CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C090CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C090CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_RESTART_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録強制取得）編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録強制取得）を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録強制取得）
	 */
	public static String getTaioKirokHistoryGetKyosei(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C100CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C100CBSMsg.LOGIN_USER_NM);

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C100CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C100CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_GETKYOSEI_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録エスカレーション開始（キューBOX））編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録エスカレーション開始（キューBOX））を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録エスカレーション開始（キューBOX））
	 */
	public static String getTaioKirokHistoryEsclQue(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C010CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C010CBSMsg.LOGIN_USER_NM);
		// エスカレーション先キューBOX名
		String esclQueNm = inMsg.getString(ECR0011C010CBSMsg.ESCLA_SAKI_QUE_BOX_NM);
		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C010CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C010CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_ESCL_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ESCL_TITLE2);
		currentHistory.append("「").append(esclQueNm).append("」").append(JCRStrConst.TAIO_KIROK_HISTORY_ESCL_TITLE3).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);
		
		
		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 対応記録履歴（対応記録エスカレーション開始（ユーザー））編集部品です。<br>
	 * <br>
	 * 対応記録履歴（対応記録エスカレーション開始（ユーザー））を編集し、作成した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @return 対応記録履歴（対応記録エスカレーション開始（キューBOX））
	 */
	public static String getTaioKirokHistoryEsclUser(CAANMsg inMsg, AgentDispatchContext inContext)
	{

		// 業務個別設定組織名取得
		String wkkbtOrgNm = inMsg.getString(ECR0011C110CBSMsg.WKKBT_ORG_NM);
		// ユーザー名取得
		String userNm = inMsg.getString(ECR0011C110CBSMsg.LOGIN_USER_NM);
		// エスカレーション先業務個別設定組織名
		String esclSakiWksoNm = inMsg.getString(ECR0011C110CBSMsg.ESCLA_SAKI_WKSO_NM);
		// エスカレーション先ユーザー名
		String esclSakiUserNm = inMsg.getString(ECR0011C110CBSMsg.ESCLA_SAKI_USER_NM);
		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inMsg.getString(ECR0011C110CBSMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inMsg.getString(ECR0011C110CBSMsg.TAIO_KIROK_NO)));

		// 今回の対応記録履歴
		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_ESCL_TITLE);
		currentHistory.append(wkkbtOrgNm).append("(").append(userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ESCL_TITLE2);
		currentHistory.append(esclSakiWksoNm).append("(").append(esclSakiUserNm).append(") ").append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);
		
		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}
	
	/**
	 * 新規作成用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録)
	 * @param cr0011ETMsg ETメッセージ(対応記録)一意データ
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @param callbkDtmOutputFlg コールバック日時出力フラグ
	 * @return 対応記録履歴（新規作成）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryCreate(CAANMsg inCBSMsg, AgentDispatchContext inContext, CAANMsg inETMsg, CAANMsg cr0011ETMsg
			, String wkkbtOrgNm, String userNm, String callbkDtmOutputFlg) throws CAANException
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(cr0011ETMsg.getString(CR0011ETMsg.TAIO_KIROK_NO)));

		// (3) 新規作成分の対応記録履歴を編集する
		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inETMsg.getString(CR0011ETMsg.TAIO_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// 今回の対応記録履歴
		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_CREATE_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// コールバック日時出力フラグが"1"(出力する)の場合
		if (JCRStrConst.RIREKI_OUTPUT_FLG_ARI.equals(callbkDtmOutputFlg))
		{
			// コール分の対応記録履歴を編集する
			String callbkKiboDtm = "";

			// フォーマット変換(yyyyMMddHHmmss)→(yyyy/MM/dd HH:mm:ss)
			// コールバック希望年月日、コールバック希望時間が共に設定されている場合
			if (!JCRUtilCommon.isNull(cr0011ETMsg.getString(CR0011ETMsg.CALLBK_KIBO_YMD))
				&& !JCRUtilCommon.isNull(cr0011ETMsg.getString(CR0011ETMsg.CALLBK_KIBO_TIME)))
			{
				callbkKiboDtm = JCRUtilCommon.formatDate(cr0011ETMsg.getString(
						CR0011ETMsg.CALLBK_KIBO_YMD).concat(cr0011ETMsg.getString(CR0011ETMsg.CALLBK_KIBO_TIME)),
						JCRStrConst.FMT_YMDHM, JCRStrConst.FMT_EDIT_YMDHM);
			}
			// コールバック希望年月日のみが設定されている場合
			else if (!JCRUtilCommon.isNull(cr0011ETMsg.getString(CR0011ETMsg.CALLBK_KIBO_YMD)))
			{
				callbkKiboDtm = JCRUtilCommon.formatDate(cr0011ETMsg.getString(CR0011ETMsg.CALLBK_KIBO_YMD),
						JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);	
			}
			// 上記以外の場合
			else
			{
				callbkKiboDtm = "";
			}

			// コールバック時間指定タイプコード
			String callbkShiteiTypeCdNm = getCdNmKanri(JZM0171Constant.CD00457, cr0011ETMsg.getString(CR0011ETMsg.CALLBK_SHITEI_TYPE_CD));

			// コールバック希望日時が設定されている場合
			if (!JCRUtilCommon.isNull(callbkKiboDtm))
			{
				currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE7).append(
						wkkbtOrgNm).append("(").append(userNm == null ? "" : userNm).append(")").append(JCRStrConst.KAIGYO_CD);
				currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE8).append(
						callbkKiboDtm).append(" ").append(callbkShiteiTypeCdNm).append(JCRStrConst.KAIGYO_CD);
				currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
				currentHistory.append(JCRStrConst.KAIGYO_CD);
			}
		}

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * コール作成用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsgCr0011 ETメッセージ
	 * @param inETMsgCr0021 ETメッセージ
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @return 対応記録履歴（コールバック待ち）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryCall(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsgCr0011, CAANMsg inETMsgCr0021, String wkkbtOrgNm, String userNm) throws CAANException
	{

		// (1) 対応記録を取得する
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsgCr0011.getString(CR0011ETMsg.TAIO_KIROK_NO)));

		// (3) コール分の対応記録履歴を編集する
		// コールバック指定日付
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm:ss)に変換
		String callbkKiboDtm = "";
		
		// コールバック希望年月日、コールバック希望時間が共に設定されている場合
		if (!JCRUtilCommon.isNull(inETMsgCr0011.getString(CR0011ETMsg.CALLBK_KIBO_YMD))
			&& !JCRUtilCommon.isNull(inETMsgCr0011.getString(CR0011ETMsg.CALLBK_KIBO_TIME)))
		{
			callbkKiboDtm = JCRUtilCommon.formatDate(inETMsgCr0011.getString(
					CR0011ETMsg.CALLBK_KIBO_YMD).concat(inETMsgCr0011.getString(CR0011ETMsg.CALLBK_KIBO_TIME)),
					JCRStrConst.FMT_YMDHM, JCRStrConst.FMT_EDIT_YMDHM);
		}
		
		// コールバック希望年月日のみが設定されている場合
		else if (!JCRUtilCommon.isNull(inETMsgCr0011.getString(CR0011ETMsg.CALLBK_KIBO_YMD)))
		{
			callbkKiboDtm = JCRUtilCommon.formatDate(inETMsgCr0011.getString(CR0011ETMsg.CALLBK_KIBO_YMD),
					JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);	
		}
		
		// 上記以外の場合
		else
		{
			callbkKiboDtm = "";
		}

		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm:ss)に変換
		String actionStaDtm = JCRUtilCommon.formatDate(inETMsgCr0021.getString(CR0021ETMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHMS);

		// アクション終了年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm:ss)に変換
		String actionFinDtm = JCRUtilCommon.formatDate(inETMsgCr0021.getString(CR0021ETMsg.ACTION_FIN_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHMS);

		// コールバック時間指定タイプコード
		String callbkShiteiTypeCdNm = getCdNmKanri(JZM0171Constant.CD00457, inETMsgCr0011.getString(CR0011ETMsg.CALLBK_SHITEI_TYPE_CD));

		// 問合せ種別名取得
		String toiawaseUkSbtCdNm = getCdNmKanri(JZM0171Constant.CD00233, inETMsgCr0011.getString(CR0011ETMsg.TOIAWASE_UK_SBT_CD));
		
		// お客様取得
		String contactSakiCdNm = getCdNmKanri(JZM0171Constant.CD00238, inETMsgCr0021.getString(CR0021ETMsg.CONTACT_SAKI_CD));

		// 今回の対応記録履歴
		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_CALL_TITLE).append(
				wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(").append(userNm == null ? "" : userNm).append(")").append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE2).append(
				actionStaDtm).append(" - ").append(actionFinDtm).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE3).append(toiawaseUkSbtCdNm).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE4).append(contactSakiCdNm).append(
				inETMsgCr0021.getString(CR0021ETMsg.TOIAWASE_MOTO_NM) == null ? "" : "("
					+ inETMsgCr0021.getString(CR0021ETMsg.TOIAWASE_MOTO_NM) + ")").append(JCRStrConst.KAIGYO_CD);
		
		// 問合せ内容が設定されている場合
		if (!JCRUtilCommon.isNull(inETMsgCr0021.getString(CR0021ETMsg.TOIAWASE_NAIYO)))
		{
			currentHistory.append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE5).append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(inETMsgCr0021.getString(CR0021ETMsg.TOIAWASE_NAIYO)).append(JCRStrConst.KAIGYO_CD);
		}

		// 回答内容が設定されている場合
		if (!JCRUtilCommon.isNull(inETMsgCr0021.getString(CR0021ETMsg.ANS_NAIYO)))
		{
			currentHistory.append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE6).append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(inETMsgCr0021.getString(CR0021ETMsg.ANS_NAIYO)).append(JCRStrConst.KAIGYO_CD);
		}
		
		// コールバック希望日時が設定されている場合
		if (!JCRUtilCommon.isNull(callbkKiboDtm))
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
			currentHistory.append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE7).append(
					wkkbtOrgNm).append("(").append(userNm == null ? "" : userNm).append(")").append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE8).append(
					callbkKiboDtm).append(" ").append(callbkShiteiTypeCdNm).append(JCRStrConst.KAIGYO_CD);
		}
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * メモ作成用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録明細)
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @return 対応記録履歴（メモ登録）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryMemo(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsg, String wkkbtOrgNm, String userNm) throws CAANException
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsg.getString(CR0021ETMsg.TAIO_KIROK_NO)));

		// (2) メモ登録分の対応記録履歴を編集する
		// アクション終了年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inETMsg.getString(CR0021ETMsg.ACTION_FIN_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// メモタイプコード
		String memoTypeCdNm = getCdNmKanri(JZM0171Constant.CD00302, inETMsg.getString(CR0021ETMsg.MEMO_TYPE_CD));

		
		// 今回の対応記録履歴
		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_MEMO_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(operationDTM).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(memoTypeCdNm).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(inETMsg.getString(CR0021ETMsg.MEMO_NAIYO)).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}
	
	/**
	 * メール返信用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録明細)
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @param fileBunshoFileList 文書ファイルリスト
	 * @return 対応記録履歴（メール返信）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryMailReply(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsg, String wkkbtOrgNm, String userNm, String[] fileBunshoFileList) throws CAANException
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsg.getString(CR0021ETMsg.TAIO_KIROK_NO)));

		// (2) メール返信登録分の対応記録履歴を編集する
		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inETMsg.getString(CR0021ETMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// アクションタイプコード
		String actionTypeCdNm = getCdNmKanri(JZM0171Constant.CD00236, inETMsg.getString(CR0021ETMsg.ACTION_TYPE_CD));

		// 送信先メールアドレス
		String sendsMlad = inETMsg.getString(CR0021ETMsg.SENDS_MLAD);
		// 送信元メールアドレス
		String sendmvlad = inETMsg.getString(CR0021ETMsg.SENDM_MLAD);
		// CCメールアドレス
		String ccMlad = inETMsg.getString(CR0021ETMsg.CC_MLAD);
		// メールタイトル
		String mailTitle = inETMsg.getString(CR0021ETMsg.MAIL_TITLE);
		// メール本文
		String mailText = inETMsg.getString(CR0021ETMsg.MAIL_TEXT);
		// メールフッター
		String mailFooter = inETMsg.getString(CR0021ETMsg.MAIL_FOOTER);
		// 問合せ内容
		String toiawaseNaiyo = inETMsg.getString(CR0021ETMsg.TOIAWASE_NAIYO);

		// 今回の対応記録履歴
		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_MAIL_REPLY_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE2);
		currentHistory.append(operationDTM).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE3);
		currentHistory.append(actionTypeCdNm).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE4);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE5);
		currentHistory.append(sendmvlad == null ? "" : sendmvlad).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE6);
		currentHistory.append(sendsMlad == null ? "" : sendsMlad).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE7);
		currentHistory.append(ccMlad == null ? "" : ccMlad).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE8);
		currentHistory.append(mailTitle == null ? "" : mailTitle).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE9);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(mailText == null ? "" : mailText).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(mailFooter == null ? "" : mailFooter).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(toiawaseNaiyo == null ? "" : toiawaseNaiyo).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 添付ファイル文作成
		if (fileBunshoFileList != null && fileBunshoFileList.length > 0)
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE10);
			currentHistory.append(JCRStrConst.KAIGYO_CD);

			for (int i = 0; i < fileBunshoFileList.length; i++)
			{
				currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_REPLY_TITLE11);
				currentHistory.append(fileBunshoFileList[i] == null ? "" : fileBunshoFileList[i]).append(JCRStrConst.KAIGYO_CD);
			}
		}

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

// ANK-4092-00-00対応 20210815 星野 ADD START
	/**
	 * SMS送信用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録明細)
	 * @return 対応記録履歴（SMS送信）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistorySmsSend(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsg) throws CAANException
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsg.getString(CR0021ETMsg.TAIO_KIROK_NO)));

		// (2) SMS送信分の対応記録履歴を編集する
		// メール本文
		String mailText = inETMsg.getString(CR0021ETMsg.MAIL_TEXT);
		
		// SMS送信先電話番号
		String smsSendsTln = inETMsg.getString(CR0021ETMsg.SMS_SENDS_TLN);
		// SMS送信元電話番号
		String smsSendmTln = inETMsg.getString(CR0021ETMsg.SMS_SENDM_TLN);
// ANK-4174-00-00 ADD START
		// 送信結果
		String sendStatCd = inETMsg.getString(CR0021ETMsg.SEND_STAT_CD);
// ANK-4174-00-00 ADD END

		// 今回の対応記録履歴
		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_SMS_SEND_TITLE);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE2);
		currentHistory.append(smsSendsTln == null ? "" : smsSendsTln).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE3);
		currentHistory.append(smsSendmTln == null ? "" : smsSendmTln).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE4);
		currentHistory.append(mailText == null ? "" : mailText).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

// ANK-4092-08-00対応 20210824 星野 ADD START
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE5);
// ANK-4174-00-00 ADD START
		// 送信済かどうかをチェック
		if (JCRStrConst.SEND_STAT_CD_SNDZM.equals(sendStatCd))
		{
			currentHistory.append("送信済");
		}
		else 
		{
			currentHistory.append("送信NG");
		}
// ANK-4174-00-00 ADD END
		currentHistory.append(JCRStrConst.KAIGYO_CD);
// ANK-4092-08-00対応 20210824 星野 ADD START

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}
// ANK-4092-00-00対応 20210815 星野 ADD END
	
// ANK-4092-08-00対応 20210824 星野 ADD START
	/**
	 * SMS配信結果用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @return 対応記録履歴（SMS配信結果）
	 */
	public static String getTaioKirokHistorySmsHaisinRslt(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inCBSMsg.getString(ECR0011C150CBSMsg.TAIO_KIROK_NO)));
		
		// SMS送信時の対応記録履歴位置を探す
		String smsSendKeyword = JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE5 + JCRStrConst.KAIGYO_CD;
		int lastIndex = history.lastIndexOf(smsSendKeyword);
		
		// 配信結果コード
		String haisinRsltCd = inCBSMsg.getString(ECR0011C150CBSMsg.HAISIN_RSLT_CD);
		String haisinRsltMessage;
		if("0".equals(haisinRsltCd))
		{
			haisinRsltMessage = "送信済";
		}
		else
		{
			haisinRsltMessage = "送信NG";
		}
		
		// 更新用文字列
		String replacedKeyword = JCRStrConst.TAIO_KIROK_HISTORY_SMS_SEND_TITLE5 + haisinRsltMessage + JCRStrConst.KAIGYO_CD;
		
		// 該当箇所を置換
		history.replace(lastIndex, lastIndex+smsSendKeyword.length(), replacedKeyword);
		
		return history.toString();
	}
// ANK-4092-08-00対応 20210824 星野 ADD END

	
	/**
	 * メール転送用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録明細)
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @param fileBunshoFileList 文書ファイルリスト
	 * @return 対応記録履歴（メール転送）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryMailForward(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsg, String wkkbtOrgNm, String userNm, String[] fileBunshoFileList) throws CAANException
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsg.getString(CR0021ETMsg.TAIO_KIROK_NO)));

		// (2) メール返信登録分の対応記録履歴を編集する
		// アクション開始年月日時分秒取得
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inETMsg.getString(CR0021ETMsg.ACTION_STA_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);

		// アクションタイプコード
		String actionTypeCdNm = getCdNmKanri(JZM0171Constant.CD00236, inETMsg.getString(CR0021ETMsg.ACTION_TYPE_CD));

		// 送信先メールアドレス
		String sendsMlad = inETMsg.getString(CR0021ETMsg.SENDS_MLAD);
		// 送信元メールアドレス
		String sendmvlad = inETMsg.getString(CR0021ETMsg.SENDM_MLAD);
		// メールタイトル
		String mailTitle = inETMsg.getString(CR0021ETMsg.MAIL_TITLE);
		// メール本文
		String mailText = inETMsg.getString(CR0021ETMsg.MAIL_TEXT);
		// メールフッター
		String mailFooter = inETMsg.getString(CR0021ETMsg.MAIL_FOOTER);
		// 問合せ内容
		String toiawaseNaiyo = inETMsg.getString(CR0021ETMsg.TOIAWASE_NAIYO);

		// 今回の対応記録履歴
		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_MAIL_FORWARD_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE2);
		currentHistory.append(operationDTM).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE3);
		currentHistory.append(actionTypeCdNm).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE4);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE5);
		currentHistory.append(sendmvlad == null ? "" : sendmvlad).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE6);
		currentHistory.append(sendsMlad == null ? "" : sendsMlad).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE7);
		currentHistory.append(mailTitle == null ? "" : mailTitle).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE8);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(mailText == null ? "" : mailText).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(mailFooter == null ? "" : mailFooter).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(toiawaseNaiyo == null ? "" : toiawaseNaiyo).append(JCRStrConst.KAIGYO_CD);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		// 添付ファイル文作成
		if (fileBunshoFileList != null && fileBunshoFileList.length > 0)
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE9);
			currentHistory.append(JCRStrConst.KAIGYO_CD);

			for (int i = 0; i < fileBunshoFileList.length; i++)
			{
				currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_MAIL_FORWARD_TITLE10);
				currentHistory.append(fileBunshoFileList[i] == null ? "" : fileBunshoFileList[i]).append(JCRStrConst.KAIGYO_CD);
			}
		}

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 資料送付指示用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsg ETメッセージ(対応記録明細)
	 * @return 対応記録履歴（資料送付）
	 */
	public static String getTaioKirokHistoryAticleSohuSiji(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{
		String aticleBunruiNm = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_BUNRUI_NM);
		if (aticleBunruiNm != null && !JCRUtilCommon.isNull(aticleBunruiNm))
		{
			return getTaioKirokHistoryAticleSohu(inCBSMsg, inContext);
		}
		else
		{
			return getTaioKirokHistoryAticleSohuAllDel(inCBSMsg, inContext);
		}
	}

	/**
	 * 資料送付用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @return 対応記録履歴（資料送付）
	 */
	public static String getTaioKirokHistoryAticleSohu(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inCBSMsg.getString(ECR0011C140CBSMsg.TAIO_KIROK_NO)));

		// (2) 資料送付分の対応記録履歴を編集する
		// 業務個別設定組織
		String wkkbtOrgNm = inCBSMsg.getString(ECR0011C140CBSMsg.WKKBT_ORG_NM);
		// ログインユーザー名
		String userNm = inCBSMsg.getString(ECR0011C140CBSMsg.LOGIN_USER_NM);
		// アクション終了年月日時分秒
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inCBSMsg.getString(ECR0011C140CBSMsg.ACTION_FIN_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);
		// アクションタイプコード
		String actionTypeCdNm = "";
		try 
		{
			actionTypeCdNm = getCdNmKanri(JZM0171Constant.CD00236, JCRStrConst.CD_DIV_ACTION_TYPE_CD_SHIRYO);
		}
		catch (CAANException e)
		{
			return history.toString();
		}
		// 送付先名
		String sohuNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_NM);
		// 送付先カナ名
		String sohuKanaNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_KANA_NM);
		// 送付先電話番号
		String sohusTelno = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_TELNO);
		// 送付区分名
		String sohuKbnNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHU_KBN_NM);
		// 資料分類コード名称
		String[] aticleBunruiNm = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_BUNRUI_NM).split(JCRStrConst.STR_HALF_COMMA);
		// 資料名
		String[] aticleNm = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_NM).split(JCRStrConst.STR_HALF_COMMA);
		// 送付部数
		String[] sohuCnt = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_SOHU_CNT).split(JCRStrConst.STR_HALF_COMMA);
		// 送付先郵便番号
		String pcd = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_PCD);
		// 送付先都道府県
		String state = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_STATE);
		// 送付先市区町村
		String city = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_CITY);
		// 送付先大字通称
		String oaztsuMei = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_OAZTSU_MEI);
		// 送付先字丁目
		String azchoMei = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_AZCHO_MEI);
		// 送付先番地・号
		String bnchigo = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_BNCHIGO);
		// 送付先建物名
		String adrttm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_ADRTTM);
		// 送付先部屋番号
		String adrrm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_ADRRM);
		// 資料送付備考
		String biko = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_SOHU_BIKO);

		// 今回の対応記録履歴
		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_ATICLE_SOHU_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE2);
		currentHistory.append(operationDTM).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE3);
		currentHistory.append(actionTypeCdNm).append(JCRStrConst.KAIGYO_CD);

		for (int i = 0; i < aticleBunruiNm.length; i++)
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE4);
			currentHistory.append(aticleBunruiNm[i]).append(JCRStrConst.STR_SLASH);
			currentHistory.append(aticleNm[i]).append(JCRStrConst.STR_SLASH);
			currentHistory.append(sohuCnt[i]);
			currentHistory.append(JCRStrConst.KAIGYO_CD);
		}

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE5);
		currentHistory.append(sohuNm).append(JCRStrConst.STR_SLASH);
		currentHistory.append(sohuKanaNm).append(JCRStrConst.STR_SLASH);
		currentHistory.append(sohusTelno == null ? "" : sohusTelno);
		currentHistory.append(sohusTelno == null ? "" : JCRStrConst.STR_SLASH);
		currentHistory.append(sohuKbnNm);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE6);
		currentHistory.append(pcd == null ? "" : pcd);
		currentHistory.append(state == null ? "" : state);
		currentHistory.append(city == null ? "" : city);
		currentHistory.append(oaztsuMei == null ? "" : oaztsuMei);
		currentHistory.append(azchoMei == null ? "" : azchoMei);
		currentHistory.append(bnchigo == null ? "" : bnchigo);
		currentHistory.append(adrttm == null ? "" : adrttm);
		currentHistory.append(adrrm == null ? "" : adrrm).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE7);
		currentHistory.append(biko == null ? "" : biko).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * 資料送付（全削除）用対応履歴編集処理です。<br>
	 * <br>
	 * 対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @return 対応記録履歴（資料送付）
	 */
	public static String getTaioKirokHistoryAticleSohuAllDel(CAANMsg inCBSMsg, AgentDispatchContext inContext)
	{

		// (1) 対応記録を取得する
		// 対応記録から対応記録履歴を取得
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inCBSMsg.getString(ECR0011C140CBSMsg.TAIO_KIROK_NO)));

		// (2) 資料送付分の対応記録履歴を編集する
		// 業務個別設定組織
		String wkkbtOrgNm = inCBSMsg.getString(ECR0011C140CBSMsg.WKKBT_ORG_NM);
		// ログインユーザー名
		String userNm = inCBSMsg.getString(ECR0011C140CBSMsg.LOGIN_USER_NM);
		// アクション終了年月日時分秒
		// (yyyyMMddHHmmss)から(yyyy/MM/dd HH:mm)に変換
		String operationDTM = JCRUtilCommon.formatDate(inCBSMsg.getString(ECR0011C140CBSMsg.ACTION_FIN_DTM),
				JCRStrConst.FMT_YMDHMS, JCRStrConst.FMT_EDIT_YMDHM);		// アクションタイプコード
		String actionTypeCdNm = "";
		try 
		{
			actionTypeCdNm = getCdNmKanri(JZM0171Constant.CD00236, JCRStrConst.CD_DIV_ACTION_TYPE_CD_SHIRYO);
		}
		catch (CAANException e)
		{
			return history.toString();
		}
		// 送付先名
		String sohuNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_NM);
		// 送付先カナ名
		String sohuKanaNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_KANA_NM);
		// 送付先電話番号
		String sohusTelno = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_TELNO);
		// 送付区分名
		String sohuKbnNm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHU_KBN_NM);
		// 送付先郵便番号
		String pcd = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_PCD);
		// 送付先都道府県
		String state = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_STATE);
		// 送付先市区町村
		String city = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_CITY);
		// 送付先大字通称
		String oaztsuMei = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_OAZTSU_MEI);
		// 送付先字丁目
		String azchoMei = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_AZCHO_MEI);
		// 送付先番地・号
		String bnchigo = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_BNCHIGO);
		// 送付先建物名
		String adrttm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_ADRTTM);
		// 送付先部屋番号
		String adrrm = inCBSMsg.getString(ECR0011C140CBSMsg.SOHUS_ADRRM);
		// 資料送付備考
		String biko = inCBSMsg.getString(ECR0011C140CBSMsg.ATICLE_SOHU_BIKO);

		// 今回の対応記録履歴
		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_ATICLE_SOHU_TITLE);
		currentHistory.append(wkkbtOrgNm == null ? "" : wkkbtOrgNm).append("(")
				.append(userNm == null ? "" : userNm).append(") ").append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE2);
		currentHistory.append(operationDTM).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE3);
		currentHistory.append(actionTypeCdNm).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE4);
		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_SUBJECT).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE5);
		currentHistory.append(sohuNm).append(JCRStrConst.STR_SLASH);
		currentHistory.append(sohuKanaNm).append(JCRStrConst.STR_SLASH);
		currentHistory.append(sohusTelno == null ? "" : sohusTelno);
		currentHistory.append(sohusTelno == null ? "" : JCRStrConst.STR_SLASH);
		currentHistory.append(sohuKbnNm);
		currentHistory.append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE6);
		currentHistory.append(pcd == null ? "" : pcd);
		currentHistory.append(state == null ? "" : state);
		currentHistory.append(city == null ? "" : city);
		currentHistory.append(oaztsuMei == null ? "" : oaztsuMei);
		currentHistory.append(azchoMei == null ? "" : azchoMei);
		currentHistory.append(bnchigo == null ? "" : bnchigo);
		currentHistory.append(adrttm == null ? "" : adrttm);
		currentHistory.append(adrrm == null ? "" : adrrm).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_ATICLE_SOHU_TITLE7);
		currentHistory.append(biko == null ? "" : biko).append(JCRStrConst.KAIGYO_CD);

		currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE).append(JCRStrConst.KAIGYO_CD);

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}

	/**
	 * コール作成用対応履歴編集処理です。<br>
	 * <br>
	 * コールバック日時が変更時、対応記録の対応記録履歴を更新する。
	 * 
	 * @param inCBSMsg CBSメッセージ
	 * @param inContext ディスパッチコンテキスト
	 * @param inETMsgCr0011 ETメッセージ
	 * @param wkkbtOrgNm 業務個別設定組織名
	 * @param userNm ログインユーザー名
	 * @return 対応記録履歴（コールバック待ち）
	 * @throws CAANException CAANException
	 */
	public static String getTaioKirokHistoryUpdCall(CAANMsg inCBSMsg, AgentDispatchContext inContext
			, CAANMsg inETMsgCr0011, String wkkbtOrgNm, String userNm) throws CAANException
	{

		// 対応記録を取得する
		StringBuilder history = new StringBuilder(getTaioKirokHistory(inETMsgCr0011.getString(CR0011ETMsg.TAIO_KIROK_NO)));

		// コール分の対応記録履歴を編集する
		String callbkKiboDtm = "";

		// フォーマット変換(yyyyMMddHHmmss)→(yyyy/MM/dd HH:mm:ss)
		// コールバック希望年月日、コールバック希望時間が共に設定されている場合
		if (!JCRUtilCommon.isNull(inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_KIBO_YMD))
			&& !JCRUtilCommon.isNull(inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_KIBO_TIME)))
		{
			callbkKiboDtm = JCRUtilCommon.formatDate(inCBSMsg.getString(
					ECR0011C040CBSMsg.CALLBK_KIBO_YMD).concat(inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_KIBO_TIME)),
					JCRStrConst.FMT_YMDHM, JCRStrConst.FMT_EDIT_YMDHM);
		}
		// コールバック希望年月日のみが設定されている場合
		else if (!JCRUtilCommon.isNull(inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_KIBO_YMD)))
		{
			callbkKiboDtm = JCRUtilCommon.formatDate(inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_KIBO_YMD),
					JCRStrConst.FMT_YMD, JCRStrConst.FMT_EDIT_YMD);	
		}
		// 上記以外の場合
		else
		{
			callbkKiboDtm = "";
		}

		// コールバック時間指定タイプコード
		String callbkShiteiTypeCdNm = getCdNmKanri(JZM0171Constant.CD00457, inCBSMsg.getString(ECR0011C040CBSMsg.CALLBK_SHITEI_TYPE_CD));

		// 今回の対応記録履歴
		StringBuilder currentHistory = new StringBuilder();

		// コールバック希望日時が設定されている場合
		if (!JCRUtilCommon.isNull(callbkKiboDtm))
		{
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE7).append(
					wkkbtOrgNm).append("(").append(userNm == null ? "" : userNm).append(")").append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_CALL_TITLE8).append(
					callbkKiboDtm).append(" ").append(callbkShiteiTypeCdNm).append(JCRStrConst.KAIGYO_CD);
			currentHistory.append(JCRStrConst.TAIO_KIROK_HISTORY_LINE);
			currentHistory.append(JCRStrConst.KAIGYO_CD);
		}

		// 現在の対応記録履歴に今回の対応記録履歴を追加
		history.append(currentHistory);

		return history.toString();

	}


	/**
	 * コード名称管理取得処理.<br>
	 * 
	 * @param cdSbtCd コード種別コード
	 * @param cdDiv コード区分
	 * @return コード区分名
	 * @throws CAANException CAANException
	 */
	private static String getCdNmKanri(String cdSbtCd, String cdDiv) throws CAANException
	{

		// コード区分が設定されていない場合は、以降の処理は行わない。
		if (JCRUtilCommon.isNull(cdDiv))
		{
			return "";
		}

		// (1) コード名称管理を取得する。
		// コード名称管理のETメッセージ
		CAANMsg zm0171ETMsg = new CAANMsg(ZM0171ETMsg.class.getName());
		
		// コード種別コード
		zm0171ETMsg.set(ZM0171ETMsg.CD_SBT_CD, cdSbtCd);

		// コード区分
		zm0171ETMsg.set(ZM0171ETMsg.CD_DIV, cdDiv);

		// 無効フラグ
		zm0171ETMsg.set(ZM0171ETMsg.MK_FLG, JCRStrConst.CD_DIV_MK_FLG_YUKO);

		// 検索結果
		CAANMsg[] retCdNmKanriMsg = new ZM0171LE().findByCondition(zm0171ETMsg);
		
		String cdDivNm = retCdNmKanriMsg[0].getString(ZM0171ETMsg.CD_DIV_NM);
		return cdDivNm == null ? "" : cdDivNm;

	}


}
