/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JFUCaseFileRnkDataCC
*   ソースファイル名：JFUCaseFileRnkDataCC.java
*   作成者          ：富士通
*   日付            ：2016年05月02日
*＜機能概要＞
*   CASEファイル作成ワークコモンコンポーネント部品
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v24.00    2016/05/02   FJ）西川    新規作成
*   
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;

import eo.common.constant.JPCModelConstant;
import eo.ejb.cbs.cbsmsg.ECR0511D010CBSMsg;

/**
 * CASEファイル作成ワークコモンコンポーネント部品
 * 
 * <br>
 * @author 富士通
 */
public class JFUCaseFileRnkDataUtil extends JFUBaseCC
{

	/* ■□ CASEファイル作成ワーク登録SC ■□ */
	/** テンプレートID(CASEファイル作成ワーク登録) */
	private static final String TEMPLATE_ID_ECR0511D010 = "ECR0511D010";
	/** テンプレートID(CASEファイル作成ワーク登録明細) */
	private static final String TEMPLATE_ID_ECR0511D010_DETAIL = null;
	/** IN項目リスト(CASEファイル作成ワーク登録) */
	private static final List<String> IN_COLUMN_LIST_ECR0511D010 =
			Arrays.asList(ECR0511D010CBSMsg.CSFL_SBT_CD, ECR0511D010CBSMsg.MSKM_UK_DTM, ECR0511D010CBSMsg.PROSCST_TYPE_NM,
					ECR0511D010CBSMsg.SVC_KEI_NO, ECR0511D010CBSMsg.PROSCST_NM, ECR0511D010CBSMsg.PROSCST_KANA, ECR0511D010CBSMsg.PROSCST_TELNO,
					ECR0511D010CBSMsg.PROSCST_KTAI_TELNO, ECR0511D010CBSMsg.PROSCST_PCD, ECR0511D010CBSMsg.PROSCST_AD, ECR0511D010CBSMsg.PROSCST_SEX,
					ECR0511D010CBSMsg.PROSCST_BIRTHD, ECR0511D010CBSMsg.TOIAWASE_STAT_NM, ECR0511D010CBSMsg.TAIOKRK_STAT_NM,
					ECR0511D010CBSMsg.UKETSUKESYA, ECR0511D010CBSMsg.TNTSHA, ECR0511D010CBSMsg.QUE_BOX_NM, ECR0511D010CBSMsg.TOIAWASE_UK_SBT_NM,
					ECR0511D010CBSMsg.TITLE, ECR0511D010CBSMsg.CTGR_NM_1, ECR0511D010CBSMsg.CTGR_NM_2, ECR0511D010CBSMsg.CTGR_NM_3,
					ECR0511D010CBSMsg.CTGR_NM_4, ECR0511D010CBSMsg.CTGR_NM_5, ECR0511D010CBSMsg.CTGR_NM_6, ECR0511D010CBSMsg.CTGR_NM_7,
					ECR0511D010CBSMsg.CTGR_NM_8, ECR0511D010CBSMsg.CTGR_NM_9, ECR0511D010CBSMsg.CTGR_NM_10, ECR0511D010CBSMsg.CTGR_NM_11,
					ECR0511D010CBSMsg.TAIO_KIROK_RIREKI, ECR0511D010CBSMsg.PROSCST_NO, ECR0511D010CBSMsg.EOID, ECR0511D010CBSMsg.MSKMSHO_NO,
					ECR0511D010CBSMsg.CALLBK_KIBO_DTM, ECR0511D010CBSMsg.CALLBK_TIME_STI_TYPE_NM, ECR0511D010CBSMsg.CSFL_SKSI_ZM_FLG,
					ECR0511D010CBSMsg.CSFL_SKSI_YMD);
	/** 関連チェックエラー項目(CASEファイル作成ワーク登録) */
	private static final String ERROR_COLUMN_ECR0511D010 = null;

	/**
	 * CASEファイル作成ワーク登録処理
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ管理クラス
	 * @throws Throwable 
	 */
	public IRequestParameterReadWrite addCaseFileRnkData(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		try
		{
			// 機能コード
			String funcCd = getFuncCode(param, fixedText);
			if (!JPCModelConstant.FUNC_CD_1.equals(funcCd))
			{
				// 機能コードが(1:チェック&登録)以外の場合
				return param;
			}

			// ●CASEファイル作成ワーク登録
			// 機能コード設定(1:チェック&更新)
			setFuncCode(param, fixedText, JPCModelConstant.FUNC_CD_1);
			setInMapECR0511D010(param, fixedText);
			// 上りマッピングと登録サービスIF実行
			executeSC(handle, param, fixedText, TEMPLATE_ID_ECR0511D010, TEMPLATE_ID_ECR0511D010_DETAIL, IN_COLUMN_LIST_ECR0511D010,
					ERROR_COLUMN_ECR0511D010);
		}
		finally
		{
			this.deleteTempArea(param, fixedText);
		}
		return param;
	}

	/**
	 * 上りマッピング項目設定(CASEファイル作成ワーク登録)
	 * 
	 * <br>
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @throws RequestParameterException
	 */
	private void setInMapECR0511D010(IRequestParameterReadWrite param, String fixedText) throws RequestParameterException
	{
		// ユーザデータ取得
		HashMap<String, Object> inMap = (HashMap<String, Object>)param.getData(fixedText);
		// CASEファイル種別コード
		inMap.put(ECR0511D010CBSMsg.CSFL_SBT_CD, inMap.get("csfl_sbt_cd"));
		// 申込受付年月日時分秒
		inMap.put(ECR0511D010CBSMsg.MSKM_UK_DTM, inMap.get("mskm_uk_dtm"));
		// 問合せ客タイプ名
		inMap.put(ECR0511D010CBSMsg.PROSCST_TYPE_NM, inMap.get("proscst_type_nm"));
		// サービス契約番号
		inMap.put(ECR0511D010CBSMsg.SVC_KEI_NO, inMap.get("svc_kei_no"));
		// 問合せ客名
		inMap.put(ECR0511D010CBSMsg.PROSCST_NM, inMap.get("proscst_nm"));
		// 問合せ客カナ名
		inMap.put(ECR0511D010CBSMsg.PROSCST_KANA, inMap.get("proscst_kana"));
		// 問合せ客電話番号
		inMap.put(ECR0511D010CBSMsg.PROSCST_TELNO, inMap.get("proscst_telno"));
		// 問合せ客携帯電話番号
		inMap.put(ECR0511D010CBSMsg.PROSCST_KTAI_TELNO, inMap.get("proscst_ktai_telno"));
		// 問合せ客郵便番号
		inMap.put(ECR0511D010CBSMsg.PROSCST_PCD, inMap.get("proscst_pcd"));
		// 問合せ客住所
		inMap.put(ECR0511D010CBSMsg.PROSCST_AD, inMap.get("proscst_ad"));
		// 問合せ客性別
		inMap.put(ECR0511D010CBSMsg.PROSCST_SEX, inMap.get("proscst_sex"));
		// 問合せ客生年月日
		inMap.put(ECR0511D010CBSMsg.PROSCST_BIRTHD, inMap.get("proscst_birthd"));
		// 問合せ状態名
		inMap.put(ECR0511D010CBSMsg.TOIAWASE_STAT_NM, inMap.get("toiawase_stat_nm"));
		// 対応記録ステータス名
		inMap.put(ECR0511D010CBSMsg.TAIOKRK_STAT_NM, inMap.get("taiokrk_stat_nm"));
		// 受付者
		inMap.put(ECR0511D010CBSMsg.UKETSUKESYA, inMap.get("uketsukesya"));
		// 担当者
		inMap.put(ECR0511D010CBSMsg.TNTSHA, inMap.get("tntsha"));
		// キューBOX名
		inMap.put(ECR0511D010CBSMsg.QUE_BOX_NM, inMap.get("que_box_nm"));
		// 問合せ受付種別名
		inMap.put(ECR0511D010CBSMsg.TOIAWASE_UK_SBT_NM, inMap.get("toiawase_uk_sbt_nm"));
		// タイトル
		inMap.put(ECR0511D010CBSMsg.TITLE, inMap.get("title"));
		// カテゴリー名1
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_1, inMap.get("ctgr_nm_1"));
		// カテゴリー名2
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_2, inMap.get("ctgr_nm_2"));
		// カテゴリー名3
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_3, inMap.get("ctgr_nm_3"));
		// カテゴリー名4
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_4, inMap.get("ctgr_nm_4"));
		// カテゴリー名5
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_5, inMap.get("ctgr_nm_5"));
		// カテゴリー名6
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_6, inMap.get("ctgr_nm_6"));
		// カテゴリー名7
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_7, inMap.get("ctgr_nm_7"));
		// カテゴリー名8
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_8, inMap.get("ctgr_nm_8"));
		// カテゴリー名9
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_9, inMap.get("ctgr_nm_9"));
		// カテゴリー名10
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_10, inMap.get("ctgr_nm_10"));
		// カテゴリー名11
		inMap.put(ECR0511D010CBSMsg.CTGR_NM_11, inMap.get("ctgr_nm_11"));
		// 対応記録履歴
		inMap.put(ECR0511D010CBSMsg.TAIO_KIROK_RIREKI, inMap.get("taio_kirok_rireki"));
		// 問合せ客番号
		inMap.put(ECR0511D010CBSMsg.PROSCST_NO, inMap.get("proscst_no"));
		// eoID
		inMap.put(ECR0511D010CBSMsg.EOID, inMap.get("eoid"));
		// 申込書番号
		inMap.put(ECR0511D010CBSMsg.MSKMSHO_NO, inMap.get("mskmsho_no"));
		// コールバック希望年月日時分秒
		inMap.put(ECR0511D010CBSMsg.CALLBK_KIBO_DTM, inMap.get("callbk_kibo_dtm"));
		// コールバック時間指定タイプ名
		inMap.put(ECR0511D010CBSMsg.CALLBK_TIME_STI_TYPE_NM, inMap.get("callbk_time_sti_type_nm"));
		// CASEファイル作成済フラグ
		inMap.put(ECR0511D010CBSMsg.CSFL_SKSI_ZM_FLG, inMap.get("csfl_sksi_zm_flg"));
		// CASEファイル作成年月日
		inMap.put(ECR0511D010CBSMsg.CSFL_SKSI_YMD, inMap.get("csfl_sksi_ymd"));
	}

	/**
	 * チェック処理
	 * 
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText サービスメッセージ
	 * @return リクエストパラメータ
	 * @throws Exception
	 */
	@Override
	public HashMap<String, Object> getInvokeCBS(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		return null;
	}
}
