/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom, 2011
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：JKKIdPwdShkkaSaifurHakko
 *   ソースファイル名：JKKIdPwdShkkaSaifurHakko.java
 *   作成者          ：富士通
 *   日付            ：2012年02月23日
 *＜機能概要＞
 *   ＩＤＰＷ初期化・再振・再発行実行クラスです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2012/02/23   FJ）        新規作成
 *   v4.00.00    2012/10/24   FJ)森       【ANK-1223-00-00】進捗補足事項編集対応
 *   v5.00.00    2013/02/19   FJ)藤本     【ANK-1469-00-00】ＩＤ登録証随時発行対応
 *   v7.00.00    2014/03/07   FJ)阮       【OM-2014-0000538】 住所変更のコース変更考慮
 *   v7.01.00    2014/03/11   FJ)藤本     【OM-2014-0001014】eoID初期化時に進捗が登録されない
 *   v8.00.00    2014/04/03   FJ)藤田     【ANK-1951-00-00】進捗の初期化と再発行を正しく登録する
 *   v8.01.00    2014/04/03   FJ)藤田     【ANK-1946-00-00】ID通知書送付先情報について、様々な住所を選べるようにする
 *   v8.02.00    2014/05/19   FJ)藤田     【ANK-2116-00-00】mineo契約者のeoID／PW初期化
 *   v8.03.00    2014/06/02   FJ)田中     【OM-2014-0001922】一時金設定登録可能かの判定時にＴＶを考慮するように改修
 *  v10.00.00    2014/09/30   FJ)藤田     【OM-2014-0003116】通知書再発行で進捗が登録されない
 *  v11.00.00    2014/10/23   FJ)伊藤     【ANK-2332-00-00】,【ANK-2333-00-00】開通証明書発行対応・ID登録証のサンキューレター同梱
 *  v11.01.00    2014/12/29   FJ)阮       【OM-2014-0003905】対応
 *	v13.00.00    2015/03/12   FJ)野々下   【ANK-2394-00-00】改善案件対応
 *  v13.00.01    2015/03/23   FJ)野々下   【IT1-2015-0000038】緊急発行時に進捗特記事項に機器送付先住所が表示されてしまう
 *  v16.00.00    2015/05/26   FJ)松尾     【ANK-2480-00-00】新電力対応
 *  v19.00.00    2015/10/29   FJ)松岡     【OM-2015-0002751】コース変更中にＩＤＰＷ初期化を行うと変更後の認証IDのSODが発行されない
 *  v41.00.00    2018/02/15   FJ)河邊     【OM-2018-0001294】eoIDエイジングステータス不正
 **********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.JKKAddSjishoConst;
import com.fujitsu.futurity.bp.custom.constant.JKKHakkoSODConstCC;
import com.fujitsu.futurity.bp.custom.constant.JKKSvcConst;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
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.IRequestParameterReadOnly;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.bp.x21.sc.exception.SCException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;

import com.fujitsu.futurity.bp.custom.constant.JKKSvcConst;
import eo.common.constant.JKKStrConst;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0011C012CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C013CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0011C020CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0021C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0031C010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111A010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111B002CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111C011CBSMsg;
import eo.ejb.cbs.cbsmsg.ECK0111C012CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0011D020CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0021A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0021C060CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0171A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0171C013CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0171C014CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0191C013CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B002CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B022CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B022CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0351A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0351A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0361C050CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361C111CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0361C112CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1021C011CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1021D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1091D010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1681B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B050CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111B050CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0111C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0111C030CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0171A010CBSMsg1List;

/**
 * ＩＤＰＷ初期化・再振・再発行実行部品です。
 * <p>
 * <br>
 * 
 * @author FJ
 */
@SuppressWarnings({"unchecked"})
public class JKKIdPwdShkkaSaifurHakko extends AbstractCommonComponent
{
	/*****************************************************************/
	/** ワークマップキー                                            **/
	/*****************************************************************/
	/** 機能コード */
	private static final String WORK_MAP_KEY_FUNC_CODE       = "func_code";
	/** 発行区分 */
	private static final String WORK_MAP_KEY_HAKKO_DIV       = "hakko_div";
	/** 印刷方法 */
	private static final String WORK_MAP_KEY_PRINT_WAY       = "print_way";
	// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add Start
	/** サンキューレター同梱 */
	private static final String WORK_MAP_KEY_THNX_LETTER     = "thnx_letter";
	/** 出力サイズ */
	private static final String WORK_MAP_KEY_OPUT_SIZE       = "oput_size";
	// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add End
	/** 手数料 */
	private static final String WORK_MAP_KEY_COMMISION       = "commision";
	/** 選択（請求先情報） */
	private static final String WORK_MAP_KEY_SEIKY_SEL       = "seiky_sel";
	/** 選択（EOモバイル） */
	private static final String WORK_MAP_KEY_MBL_SEL         = "mbl_sel";
	/** SYSID */
	private static final String WORK_MAP_KEY_SYSID           = "sysid";
	/** EOID情報リスト */
	private static final String WORK_MAP_KEY_EOIDINFOLIST    = "eoidinfolist";
	/** 請求情報リスト */
	private static final String WORK_MAP_KEY_SEIKYLIST       = "seikylist";
	/** サービス契約情報 */
	private static final String WORK_MAP_KEY_SVCKEILIST      = "svckeilist";
	/** EOモバイル送付先情報リスト */
	private static final String WORK_MAP_KEY_EOMBLSOFULIST   = "eomblsofulist";
	/** 異動区分 */
	private static final String WORK_MAP_KEY_IDO_DIV         = "ido_div";
	/** 異動理由明細 */
	private static final String WORK_MAP_KEY_IDO_RSN_CD_LIST = "ido_rsn_cd_list";
	/** サービス契約番号 */
	private static final String WORK_MAP_KEY_SVC_KEI_NO      = "svc_kei_no";
	/** 申込明細番号 */
	private static final String WORK_MAP_KEY_MSKM_DTL_NO     = "mskm_dtl_no";
	/** USER_ID */
	private static final String WORK_MAP_KEY_USERID          = "userid";
	// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
	/** お客様名 */
	private static final String WORK_MAP_KEY_CUST_NM         = "cust_nm";
	/** 契約者電話番号 */
	private static final String WORK_MAP_KEY_KEISHA_TELNO    = "keisha_telno";
	// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END

	/**  */
	private static final String EOIDINFOLIST_KEY_SHK_EOID_RE_HRIDS     = "shk_eoid_re_hrids";
	/**  */
	private static final String EOIDINFOLIST_KEY_SHK_EOID_PWD_RE_HRIDS = "shk_eoid_pwd_re_hrids";
	/**  */
	private static final String EOIDINFOLIST_KEY_FAMILY_CD_RE_HRIDS     = "family_cd_re_hrids";
	/**  */
	private static final String EOIDINFOLIST_KEY_FAMILY_CD_PWD_RE_HRIDS = "family_cd_pwd_re_hrids";
	/**  */
	private static final String EOIDINFOLIST_KEY_EOID_RESET            = "eoid_reset";
	/**  */
	private static final String EOIDINFOLIST_KEY_EOID_PWD_RESET        = "eoid_pwd_reset";
	
	// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
	// 進捗特記事項テキストの定義
	private static final String TKJK1_SHK_EOID           = "初期eoID";
	private static final String TKJK1_SHK_EOID_PWD       = "初期eoIDパスワード";
	private static final String TKJK1_FAMILY_CD          = "ファミリーコード";
	private static final String TKJK1_FAMILY_CD_PWD      = "ファミリーコードパスワード";
	private static final String TKJK1_EOID               = "eoID";
	private static final String TKJK1_EOID_PWD           = "eoIDパスワード";
	private static final String TKJK1_SVC_KEI_POP_PWD    = "POPパスワード";
	private static final String TKJK1_SVC_KEI_WEB_ID_PWD = "WebIDパスワード";
	private static final String TKJK1_SVC_KEI_NINSYO_PWD = "認証IDパスワード";
	private static final String TKJK1_SVC_KEI_RMTS_PWD   = "リモート操作用パスワード";
	private static final String PRG_TKJK1_SPLIT_CHAR		= "、";
	private static final String PRG_TKJK1_KEY				= "prg_tkjk_1";
	// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END

	// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
	/** ID通知書連携データ連結保持 **/
	// ＩＤ通知書発行の際に必要になる情報を区切り文字でつなげて１つの文字列にする際に使用
	public static String ID_TCHISHO_RENK_LINKED_SEPERATOR = "\r\t";
	// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END
	
	/*****************************************************************/
	/** 呼び出しサービスIF                                          **/
	/*****************************************************************/
	/** お客様一意照会 */
	private static final String ECK0011A010 = "ECK0011A010";
	/** グループ一意照会 */
	private static final String ECK0111A010 = "ECK0111A010";
	/** 初期eoID再振出 */
	private static final String ECK0011C012 = "ECK0011C012";
	/** 初期eoIDパスワード再振出 */
	private static final String ECK0011C013 = "ECK0011C013";
	/** eoID/パスワード初期化 */
	private static final String ECK0011C020 = "ECK0011C020";
	/** お客様＜個人＞内容変更 */
	private static final String ECK0021C010 = "ECK0021C010";
	/** お客様＜法人＞内容変更 */
	private static final String ECK0031C010 = "ECK0031C010";
	/** ファミリー会員グループ一覧照会（SYSID） */
	private static final String ECK0111B002 = "ECK0111B002";
	/** グループ入会コード再振出 */
	private static final String ECK0111C011 = "ECK0111C011";
	/** グループ入会コードパスワード再振出 */
	private static final String ECK0111C012 = "ECK0111C012";
	/** 申込内容承認登録 */
	private static final String EKK0011D020 = "EKK0011D020";
	/** 申込明細一意照会 */
	private static final String EKK0021A010 = "EKK0021A010";
	/** 申込明細照査・後続業務依頼 */
	private static final String EKK0021C060 = "EKK0021C060";
	/** サービス契約一意照会 */
	private static final String EKK0081A010 = "EKK0081A010";
	/** サービス契約内訳一覧照会 */
	private static final String EKK0161B004 = "EKK0161B004";
	/** サービス契約内訳＜eo光ネット＞一意照会 */
	private static final String EKK0171A010 = "EKK0171A010";
	/** ISP認証IDパスワード初期化 */
	private static final String EKK0171C013 = "EKK0171C013";
	/** ISP認証IDパスワード再振出 */
	private static final String EKK0171C014 = "EKK0171C014";
	/** サービス契約内訳＜eo光電話＞一意照会 */
	private static final String EKK0191A010 = "EKK0191A010";
	/** 電話設定リモート操作用パスワード初期化 */
	private static final String EKK0191C013 = "EKK0191C013";
	/** 機器提供サービス契約一覧照会（サービス契約番号） */
	private static final String EKK0341B002 = "EKK0341B002";
	/** オプションサービス契約一意照会 */
	private static final String EKK0351A010 = "EKK0351A010";
	/** オプションサービス契約＜ISP＞一意照会 */
	private static final String EKK0361A010 = "EKK0361A010";
	/** オプションサービス契約<ISP>情報変更 */
	private static final String EKK0361C050 = "EKK0361C050";
	/** POPパスワード再振出 */
	private static final String EKK0361C111 = "EKK0361C111";
	/** WEBIDパスワード再振出 */
	private static final String EKK0361C112 = "EKK0361C112";
	/** 事務手数料判定結果取得 */
	private static final String EKK1021C011 = "EKK1021C011";
	/** 一時金設定登録 */
	private static final String EKK1021D010 = "EKK1021D010";
	/** 進捗登録 */
	private static final String EKK1091D010 = "EKK1091D010";
	/** コード名称管理一意照会 */
	private static final String EZM0171A010 = "EZM0171A010";
	/** サービス契約一覧照会（SYSID）2 */
	private static final String EKK0081B004 = "EKK0081B004";
	/** サービス対象機器提供サービス契約一覧照会 */
	private static final String EKK0341B022 = "EKK0341B022";
	//OM-2015-0002751 2015/10/29 ADD START
	/** 異動予約一覧照会 */
	private static final String EKK1681B001 = "EKK1681B001";
	//OM-2015-0002751 2015/10/29 ADD END
// OM-2018-0001294 2019/02/15 ADD START
	/** エイジング一覧照会 */
	private static final String EZM0111B050 = "EZM0111B050";
	/** エイジング対象使用終了 */
	private static final String EZM0111C010 = "EZM0111C010";
	/** 回復可能期間終了 */
	private static final String EZM0111C030 = "EZM0111C030";
// OM-2018-0001294 2019/02/15 ADD END
	/*****************************************************************/
	/*****************************************************************/
	/** 機能コード；１ */
	private static final String FUNC_CD_1 = "1";
	/** 機能コード：２ */
	private static final String FUNC_CD_2 = "2";

	/*****************************************************************/
	/*****************************************************************/
	/** 申込種別コード：00032(お客さまＩＤパスワード初期化・再発行申込) */
	private static final String MSKM_SBT_CD_00032 = "00032";

	/*****************************************************************/
	/*****************************************************************/
	/** 進捗ステータス ：ＩＤ速報書再発行受付 */
	private static final String PRG_STAT_9801 = "9801";
	/** 進捗ステータス ：ＩＤ速報書再発行出力済 */
	private static final String PRG_STAT_9802 = "9802";
	/** 進捗ステータス ：ＩＤパスワード初期化 */
	private static final String PRG_STAT_5302 = "5302";
	// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 START
	/** 進捗ステータス ：ＩＤパスワード再発行 */
	private static final String PRG_STAT_5402 = "5402";
	// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 END

	/*****************************************************************/
	/*****************************************************************/
	/** 発行区分　発行無 */
	private static final String HAKKO_DIV_0 = "0";
	/** 発行区分　再発行 */
	private static final String HAKKO_DIV_1 = "1";
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
	/** 発行区分　緊急発行 */
	private static final String HAKKO_DIV_2 = "2";
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END

	/*****************************************************************/
	/*****************************************************************/
	/** 印刷方法　社内印刷 */
	private static final String PRINTWAY_0 = "0";
	/** 印刷方法　社外印刷 */
	private static final String PRINTWAY_1 = "1";
	
	// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add Start
	/*****************************************************************/
	/*****************************************************************/
	/** サンキューレター同梱　無 */
	private static final String THNX_LETTER_0 = "0";
	/** サンキューレター同梱　有 */
	private static final String THNX_LETTER_1 = "1";
	
	/*****************************************************************/
	/*****************************************************************/
	/** 通知書発行コード　再発行 */
	private static final String TCHISHO_HAKKO_CD_SAIHAKKO = "2";
	/** 通知書発行コード　レター同梱 */
	private static final String TCHISHO_HAKKO_CD_LETTER = "4";
	// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add End

	/*****************************************************************/
	/*****************************************************************/
	/** 手数料　無し */
	private static final String COMMISION_0 = "0";
	/** 手数料　有り */
	private static final String COMMISION_1 = "1";

	/** エラーメッセージ */
	private static final String ERR_MSG = "INVALID_RETURN_MESSAGE";
	
	/** 異動理由コード　56：その他 */
	public static final String IDO_RSN_CD_OTHER = "56";

	/*****************************************************************/
	/*****************************************************************/
	/** サービスコード インターネットサービス*/
	private static final String SVC_CD_01 = "01";
	/** サービスコード 電話サービス*/
	private static final String SVC_CD_02 = "02";

	/*****************************************************************/
	/*****************************************************************/
	/** 通知書送付先コード 1:契約者住所 */
	private static final String SOHUS_CD_1 = "1";
	/** 通知書送付先コード 2:機器配送先 */
	private static final String SOHUS_CD_2 = "2";
	
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD START
	/** コード名称管理: ＫＥＹ＿コード種別コード: 通知書コード */
	private static final String KEY_CD_SBT_CD_CD01316 = "CD01316";
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD END

	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
	/** エラー種別 緊急発行対象チェックエラー */
	private static final String ERR_SBT_CHK_EMG_HAKKO_TRGT = "1";
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END
	
	/** 定義キー */
	private String fText = null;

	/** Axm連携リスト */
	private static final String workText = "renkei_data_list";
	
	/** 連携実行可否 お客様の基本情報 */
	private boolean renkei_cust = false;
	
	/** 通知書コード */
	private String tchisho_cd = null;
	
	/** お客様情報最終更新年月日時分秒 */
	private String cust_Upd_dtm = null;
	
	/** サービス契約情報最終更新年月日時分秒 */
	private String svc_upd_dtm_bf = null;
	
	// IT2-2013-0000493 2013/06/04 START
	private boolean eoIdSaiflg = false;
	// IT2-2013-0000493 2013/06/04 END
	
	public String getCust_Upd_dtm()
	{
		return cust_Upd_dtm;
	}

	public void setCust_Upd_dtm(HashMap<String, Object> custMap)
	{
		this.cust_Upd_dtm = (String)custMap.get("upd_dtm");
	}
	
	public void setCust_Upd_Dtm_Haita(HashMap<String, Object> custMap)
	{
		this.cust_Upd_dtm = (String)custMap.get("last_upd_dtm");
	}

	public String getSvc_upd_dtm_bf()
	{
		return svc_upd_dtm_bf;
	}

	public void setSvc_upd_dtm_bf(String svc_upd_dtm_bf)
	{
		this.svc_upd_dtm_bf = svc_upd_dtm_bf;
	}
	
	public void setSvc_upd_dtm_bf(HashMap<String, Object> svckeiMap)
	{
		this.svc_upd_dtm_bf = (String)svckeiMap.get("upd_dtm");
	}
	
	public void setLastSvc_upd_dtm_bf(HashMap<String, Object> svckeiMap)
	{
		this.svc_upd_dtm_bf = (String)svckeiMap.get("last_upd_dtm");
	}
	
	/**
	 * 初期化・再振出実行の初期処理です。
	 * @param param
	 * @param fixedText
	 * @throws Throwable
	 */
	private void init(IRequestParameterReadWrite param, String fixedText) throws Throwable
	{
		this.fText = fixedText;
		// リターンコードに正常を設定
		param.setControlMapData(SCControlMapKeys.RETURN_CODE, JCMConstants.RET_NORMAL);
	}

	/**
	 * 初期化・再振出実行処理です。
	 * 
	 * @param	handle		セッションマネージャなどを持ったハンドル
	 * @param	param		モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param	trgtData	対象データ
	 * @param	fixedText	ユーザ任意文字列
	 * @throws	Throwable
	 */
	public void runShkkaSaifuri(
			SessionHandle handle,
			IRequestParameterReadWrite param,
			HashMap trgtData,
			String fixedText
	) throws Throwable
	{
		// 初期化処理呼出
		init(param, fixedText);

		// 初期化・再振出実行処理
		runShkkaSaifuri(handle, param, trgtData);
	}
	
	/**
	 * 初期化・再振出実行処理です。
	 * 
	 * @param	handle		セッションマネージャなどを持ったハンドル
	 * @param	param		モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param	trgtData	対象データ
	 * @throws	Throwable
	 */
	public void runShkkaSaifuri(
			SessionHandle handle,
			IRequestParameterReadWrite param,
			HashMap trgtData
	) throws Throwable
	{
		ArrayList<ArrayList<HashMap<String, Object>>> tchilist = new ArrayList<ArrayList<HashMap<String, Object>>>();
		HashMap<String, Object> work = new HashMap<String, Object>();
		// 契約者情報（ID速報書）
		HashMap<String, Object> custHash = new HashMap<String, Object>();

		// SOD対象データリスト
		ArrayList<HashMap<String, Object>> sodDataList = new ArrayList<HashMap<String, Object>>();
		String func_code = (String)trgtData.get("func_code");

		// 引継ぎデータ取得
		work = getHktgData(trgtData);

		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
		ArrayList<HashMap<String, Object>> errInfoList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> errInfo = new HashMap<String, Object>();

		// 発行区分取得
		String hakkoDiv = (String)work.get(WORK_MAP_KEY_HAKKO_DIV);

		// 発行区分「緊急発行」の場合
		if (HAKKO_DIV_2.equals(hakkoDiv))
		{
			if (!chkEmgHakkoTrgt(param, handle, work))
			{
				// エラー情報リストを設定
				errInfo.put("err_sbt", ERR_SBT_CHK_EMG_HAKKO_TRGT);
				errInfoList.add(errInfo);
				trgtData.put("errInfoList", errInfoList);
				return;
			}
		}
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END

		ArrayList workSvcKeiNoList = new ArrayList();

		// チェック時は以降処理を行わない
		if (FUNC_CD_2.equals(func_code))
		{
			return;
		}

		// ********************************************** //
		// eoID情報の再振出・初期化処理                   //
		// ********************************************** //
		eoIdShkkaSaifuri(
				param,
				handle,
				work,
				func_code,
				custHash
		);

		// ********************************************** //
		// 申込・申込明細登録処理                         //
		// ********************************************** //
		addMskm(
				param, 
				handle, 
				work
		);

		// ********************************************** //
		// サービス契約情報の再振出・初期化処理           //
		// ********************************************** //
		svcKeiShkkaSaifuri(
				param,
				handle,
				work,
				tchilist,
				sodDataList,
				workSvcKeiNoList
		);

		// ********************************************** //
		// ＳＯＤ発行ＣＣ                                 //
		// ********************************************** //
		callHakkoSodCC(
				param,
				handle,
				sodDataList,
				work,
				func_code
		);

		// 発行区分「発行無」の場合は通知書データ作成、帳票生成を行わない
		if (!HAKKO_DIV_0.equals(hakkoDiv))
		{
			// ********************************************** //
			// 通知書ＣＣ                                     //
			// ********************************************** //
			callTchishoCC(
					param,
					handle,
					tchilist,
					work,
					trgtData
			);
		}

		// ********************************************** //
		// 指示書登録ＣＣ                                 //
		// ********************************************** //
		sjishoRenkei(handle, param, work, trgtData);

		// ********************************************** //
		// 進捗登録                                       //
		// ********************************************** //
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*		addPrg(param, handle, work, tchilist, workSvcKeiNoList);	*/
		addPrg(param, handle, work, tchilist, workSvcKeiNoList, trgtData);
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
	}
	
	/**
	 * 引継ぎデータ取得
	 * 
	 * @param	trgtData	
	 * @return				ワークマップ
	 */
	private HashMap<String, Object> getHktgData(HashMap trgtData)
	{

		HashMap<String, Object> work = new HashMap<String, Object>();

		ArrayList custList = (ArrayList)trgtData.get("custList");
		HashMap<String, Object> custMap = (HashMap)custList.get(0);

		ArrayList cust_kei_hktgi_list = (ArrayList)trgtData.get("cust_kei_hktgi_list");
		HashMap<String, Object> custHktgiMap = (HashMap)cust_kei_hktgi_list.get(0);

		// 機能コード
		work.put(WORK_MAP_KEY_FUNC_CODE, (String)trgtData.get("func_code"));
		// 発行区分
		work.put(WORK_MAP_KEY_HAKKO_DIV, (String)trgtData.get("hakko_div"));
		// 印刷方法
		work.put(WORK_MAP_KEY_PRINT_WAY, (String)trgtData.get("print_way"));
		// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add Start
		// サンキューレター同梱
		work.put(WORK_MAP_KEY_THNX_LETTER, (String)trgtData.get("thnx_letter"));
		// 出力サイズ
		work.put(WORK_MAP_KEY_OPUT_SIZE, (String)trgtData.get("oput_size"));
		// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add End
		// 手数料
		work.put(WORK_MAP_KEY_COMMISION, (String)trgtData.get("commision"));
		// 選択（請求先情報）
		work.put(WORK_MAP_KEY_SEIKY_SEL, (String)trgtData.get("seiky_sel"));
		// 選択（eoモバイル）
		work.put(WORK_MAP_KEY_MBL_SEL,   (String)trgtData.get("mbl_sel"));
		// SYSID
		work.put(WORK_MAP_KEY_SYSID,     (String)custMap.get("sysid"));

		// eoID情報リスト
		work.put(WORK_MAP_KEY_EOIDINFOLIST,  (ArrayList)trgtData.get("eoIdInfoList"));
		// 請求情報リスト
		work.put(WORK_MAP_KEY_SEIKYLIST,     (ArrayList)trgtData.get("seikyList"));
		// サービス契約情報
		work.put(WORK_MAP_KEY_SVCKEILIST,    (ArrayList)trgtData.get("svcKeiList"));
		// eoモバイル送付先情報リスト
		work.put(WORK_MAP_KEY_EOMBLSOFULIST, (ArrayList)trgtData.get("eoMblsofuList"));

		// 異動区分
		work.put(WORK_MAP_KEY_IDO_DIV,         (String)custHktgiMap.get("ido_div"));
		// 異動理由明細
		work.put(WORK_MAP_KEY_IDO_RSN_CD_LIST, (ArrayList)trgtData.get("ido_rsn_cd_list"));

		// サービス契約番号
		work.put(WORK_MAP_KEY_SVC_KEI_NO,  "");
		// 申込明細番号
		work.put(WORK_MAP_KEY_MSKM_DTL_NO, "");
		// USER_ID
		work.put(WORK_MAP_KEY_USERID,      (String)trgtData.get("userId"));

		// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
		// お客様名（契約者名）
		work.put(WORK_MAP_KEY_CUST_NM,           (String)custMap.get("cust_nm"));
		// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END
		
		return work;
	}

	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/22 START
	/**
	 * 緊急発行対象チェック
	 * 
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param work 入力情報
	 * @return 緊急発行対象である場合(チェックOK)はture、対象でない場合(チェックNG)はfalse
	 * @throws Throwable 例外が発生した場合
	 */
	private boolean chkEmgHakkoTrgt(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> work) throws Throwable
	{
		HashMap<String, Object> eKK0081B004Hash = new HashMap<String, Object>();

		// サービス契約一覧照会（SYSID）2
		// ※サービス契約一覧照会（SYSID）はプラン開始年月日、プラン終了年月日が設定されていないと取得しない
		callEKK0081B004SC(param, handle, work, eKK0081B004Hash);
		CAANMsg[] eKK0081B004CBSMSG1list = (CAANMsg[])eKK0081B004Hash.get(EKK0081B004CBSMsg.EKK0081B004CBSMSG1LIST);

		ArrayList<HashMap<String, Object>> svcKeiList = (ArrayList)work.get(WORK_MAP_KEY_SVCKEILIST);

		// 利用場所
		String usePlc   = "";
		String usePlcBf = "";

		for (HashMap<String, Object> svcKeiMap : svcKeiList)
		{
			// 利用場所(番号)を取得
			usePlc = (String)svcKeiMap.get("use_plc");

			// 選択されている場合
			if ((Boolean)svcKeiMap.get("svc_kei_sel"))
			{
				// 利用場所(番号)を保持
				usePlcBf = usePlc;
			}

			if (!usePlc.equals(usePlcBf))
			{
				// 次レコードを処理
				continue;
			}

			String selSvcKeiNo = (String)svcKeiMap.get("svc_kei_no");
			for (int i = 0; i < eKK0081B004CBSMSG1list.length; i++)
			{
				HashMap<String, Object> eKK0081B004 = eKK0081B004CBSMSG1list[i].getMsgData();

				// サービス契約番号取得
				String svcKeiNo = (String)eKK0081B004.get(EKK0081B004CBSMsg1List.SVC_KEI_NO);

				// 選択されたサービス契約情報と一致する場合
				if (svcKeiNo.equals(selSvcKeiNo))
				{
					// 料金グループコード取得
					String prcGrpCd = (String)eKK0081B004.get(EKK0081B004CBSMsg1List.PRC_GRP_CD);

					// 料金グループコードが「eoADSL(eAccess)」「eoADSL(フレッツ)」「eoモバイル(Wi-Fi)」
					// 「eoモバイル(メールアドレス)」のいずれかの場合
					if (
							JKKStrConst.CD00133_05.equals(prcGrpCd)
							|| JKKStrConst.CD00133_06.equals(prcGrpCd)
							|| JKKStrConst.CD00133_07.equals(prcGrpCd)
							|| JKKStrConst.CD00133_16.equals(prcGrpCd)
						// ANK-2116-00-00 mineo契約者のeoID／PW初期化 藤田 2014/05/19 ADD START
							|| JKKStrConst.CD00133_51.equals(prcGrpCd)
						// ANK-2116-00-00 mineo契約者のeoID／PW初期化 藤田 2014/05/19 ADD END
						// ANK-2480-00-00 新電力対応 2015/05/26 ADD START
							|| JKKStrConst.CD00133_17.equals(prcGrpCd)
						// ANK-2480-00-00 新電力対応 2015/05/26 ADD END
					)
					{
						// 緊急発行対象でない(チェックNG)
						return false;
					}
					// 料金グループコードが「eoモバイル(UQ-WiMAX)」の場合
					else if (JKKStrConst.CD00133_09.equals(prcGrpCd))
					{
						HashMap<String, Object> eKK0341B022Hash = new HashMap<String, Object>();

						// サービス対象機器提供サービス契約一覧照会
						callEKK0341B022SC(param, handle, eKK0081B004, eKK0341B022Hash);
						CAANMsg[] eKK0341B022CBSMSG1list = (CAANMsg[])eKK0341B022Hash.get(EKK0341B022CBSMsg.EKK0341B022CBSMSG1LIST);

						boolean chkKktsvkei = false;
						for (int j = 0; j < eKK0341B022CBSMSG1list.length; j++)
						{
							HashMap<String, Object> eKK0341B022 = eKK0341B022CBSMSG1list[j].getMsgData();

							// 機器提供サービス契約ステータス取得
							String kktkSvcKeiStat = (String)eKK0341B022.get(EKK0341B022CBSMsg1List.KKTK_SVC_KEI_STAT);
							// 機器提供種別コード取得
							String kktkSbtCd      = (String)eKK0341B022.get(EKK0341B022CBSMsg1List.KKTK_SBT_CD);

							// 機器提供サービス契約ステータスが「解約済」「キャンセル済」以外で、
							// 機器提供種別コードが「持込」でない場合
							if (
									!JKKStrConst.CD00056_STAT_DSLZUMI.equals(kktkSvcKeiStat)
									&& !JKKStrConst.CD00056_STAT_CANCELZUMI.equals(kktkSvcKeiStat)
									&& !JKKStrConst.CD00212_03.equals(kktkSbtCd)
							)
							{
								chkKktsvkei = true;
							}
						}

						if (!chkKktsvkei)
						{
							// 緊急発行対象でない(チェックNG)
							return false;
						}
					}

					// 次の選択されたサービス契約に移る
					break;
				}
			}
		}

		return true;

	}
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/22 END

	/**
	 * SOD発行CC呼出
	 * 
	 * @param param
	 * @param handle
	 * @param trgtDataList
	 * @throws Throwable 
	 */
	private void callHakkoSodCC(IRequestParameterReadWrite param, SessionHandle handle,
			ArrayList<HashMap<String, Object>> trgtDataList, HashMap<String, Object> work, String funcCd) throws Throwable
	{
		
		ArrayList<HashMap<String, Object>> sodDataList = new ArrayList<HashMap<String, Object>>();
		// SOD対象データマップ
		HashMap<String, Object> sodTrgtData = new HashMap<String, Object>();
		
		// 繰返し
		for (int i = 0; i < trgtDataList.size(); i++)
		{
			//↓↓↓2012-11-01追加　ロット１ST1-2012-0000830（PTバグ改修）↓↓↓
			//Listに詰めるMapは、ループ毎にインスタンスを作成しないとダメ
			HashMap<String, Object> sodMap = new HashMap<String, Object>();
			//↑↑↑2012-11-01追加　ロット１ST1-2012-0000830（PTバグ改修）↑↑↑
			
			HashMap<String, Object> trgtMap = trgtDataList.get(i);
			// SOD基本情報
			HashMap<String, Object> sodKihonInfo = new HashMap<String, Object>();
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_SYSID,                 (String)work.get(WORK_MAP_KEY_SYSID));
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_IDO_DIV,               (String)work.get(WORK_MAP_KEY_IDO_DIV));
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_PASSWORD_SHORI_DIV,    trgtMap.get("shori_div"));
			sodKihonInfo.put(JKKHakkoSODConstCC.INFO_PASSWORD_SAIHAKKO_DIV, trgtMap.get("saihakko_div"));
			sodMap.put(JKKHakkoSODConstCC.SOD_KIHON_INFO, sodKihonInfo);
			
			// サービス契約情報
			HashMap<String, Object> svcKeiInfo = new HashMap<String, Object>();
			
			svcKeiInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_NO, trgtMap.get("svc_kei_no"));
			sodMap.put(JKKHakkoSODConstCC.SVC_KEI_INFO, svcKeiInfo);
			
			// サービス契約内訳情報
			// ■設定パターン
			//     認証ID PW 初期化
			//     認証ID PW 再振出
			//     リモート操作用PW 初期化
			HashMap<String, Object> svcKeiUcwkInfo = new HashMap<String, Object>();
			
			svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_SVC_KEI_UCWK_NO, trgtMap.get("svc_kei_ucwk_no"));
			svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_CHAF_SVC_KEI_UCWK_GENE_ADD_DTM, trgtMap.get("ucwk_gene_add_dtm"));
			// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
			svcKeiUcwkInfo.put(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG, trgtMap.get(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG));
			// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
			
			sodMap.put(JKKHakkoSODConstCC.SVC_KEI_UCWK_INFO, svcKeiUcwkInfo);
			
			// オプションサービス契約情報
			// ■設定パターン
			//     POP PW初期化
			//     POP PW再振出
			//     WEBID PW 初期化
			//     WEBID PW 再振出
			HashMap<String, Object> opSvcKeiInfo = new HashMap<String, Object>();
			
			opSvcKeiInfo.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_NO, trgtMap.get("op_svc_kei_no"));
			opSvcKeiInfo.put(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_GENE_ADD_DTM, trgtMap.get("op_gene_add_dtm"));
			
			sodMap.put(JKKHakkoSODConstCC.OPSVKEI_INFO, opSvcKeiInfo);
			
			// 機器提供サービス契約情報
			HashMap<String, Object> kktsvkeiInfo = new HashMap<String, Object>();
			sodMap.put(JKKHakkoSODConstCC.KKTSVKEI_INFO, kktsvkeiInfo);
			
			sodDataList.add(sodMap);
		}
		
		sodTrgtData.put(JKKHakkoSODConstCC.TRGT_DATA_LIST, sodDataList);
		sodTrgtData.put(JCMConstants.FUNC_CODE_KEY, funcCd);
		 // サービスオーダ発行CCを呼び出す
		 JKKHakkoSODCC hakkoSODCC = new JKKHakkoSODCC();
		 param.setData("sodTrgtData", sodTrgtData);
		 hakkoSODCC.hakkoSOD(handle, param, "sodTrgtData");
	}

	/**
	 * 通知書CC呼出処理
	 * 
	 * @param param
	 * @param handle
	 * @param trgtDataList
	 * @throws Throwable
	 */
	private void callTchishoCC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			ArrayList<ArrayList<HashMap<String, Object>>> tclist,
			HashMap<String, Object> work,
			HashMap<String, Object> trgtData
	) throws Throwable
	{
		ArrayList tchishoNoList = new ArrayList();
		// 通知書用ユーザ定義領域名設定
		String workFixedText = "tchisho_list";
		// ユーザ定義領域作成
		createUserData(param, workFixedText);
		// 利用場所（前回
		// CCのインスタンス生成
		JKKTchishoAddCC tchishoCC = new JKKTchishoAddCC();

		// 発行区分取得
		String hakkoDiv = (String)work.get(WORK_MAP_KEY_HAKKO_DIV);
		// 印刷区分取得
		String printWay = (String)work.get(WORK_MAP_KEY_PRINT_WAY);

		// 対象データリスト
		for (int i = 0; i < tclist.size(); i++)
		{
			HashMap outMap = (HashMap)param.getData(workFixedText);

			outMap.put("trgt_data_list", tclist.get(i));

			// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
			// 発行区分が「緊急発行」の場合
			if (HAKKO_DIV_2.equals(hakkoDiv))
			{
				tchishoCC.emgHakko(handle, param, workFixedText);
			}
			else
			{
				// 印刷方法によって呼び出すメソッドを変える
				if (PRINTWAY_0.equals(printWay))
				{
					tchishoCC.saiHakkoShanai(handle, param, workFixedText);
				}
				else if (PRINTWAY_1.equals(printWay))
				{
					tchishoCC.saiHakkoShagai(handle, param, workFixedText);
				}
			}
			// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START

			// 通知書CCの処理結果を取得
			mappingTchiKekka(outMap, tchishoNoList);
		}

		// ↓↓↓ 返却データ ↓↓↓

		// 通知書リスト
		trgtData.put("tchisho_hktgi_list", tchishoNoList);

		// 発行区分
		trgtData.put("hakko_div", hakkoDiv);

		// 印刷方法
		trgtData.put("printway", printWay);

		// ↑↑↑ 返却データ ↑↑↑

	}

	/**
	 * 通知書CCから戻り値取得処理
	 * @param param
	 * @param tchishoNoList
	 * @param userData
	 */
	private void mappingTchiKekka(HashMap<String, Object> outMap, ArrayList tchishoNoList)
	{
		HashMap<String, Object> tchiMap = new HashMap<String, Object>();
		
		// 通知書番号を取得する
		tchiMap.put("tchisho_no", (String)outMap.get("tchisho_no"));
		
		// 通知書番号
		tchishoNoList.add(tchiMap);
	}

// ST1-2013-0000402 EDIT_START お客様の基本情報は指示書連携を行う
	// 2012/12/17 IT1-2012-0002437 DEL START
	/**
	 * 指示書連携リスト生成
	 * @param	handle
	 * @param	param
	 * @param	sysid
	 * @param	trgtData
	 * @throws	Throwable
	 */
	private void sjishoRenkei(
			SessionHandle handle,
			IRequestParameterReadWrite param,
			HashMap<String, Object> work,
			HashMap trgtData
	) throws Throwable
	{
		JKKAddSjishoCC sjishoCC = new JKKAddSjishoCC();
		// 指示書CC呼出フラグ
		boolean sijiFlg = false;
		// ユーザ定義領域作成
		createUserData(param, workText);

		// SYSID
		String sysid = (String)work.get(WORK_MAP_KEY_SYSID);

		if (renkei_cust)
		{
			ArrayList<String> updTrgt = new ArrayList<String>();

			ArrayList eoIdList = (ArrayList)work.get(WORK_MAP_KEY_EOIDINFOLIST);
			HashMap eoInfoMap  = (HashMap)eoIdList.get(0);

			if (eoInfoMap != null)
			{
				// 初期eoID（再振出）
				if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_RE_HRIDS))
				{
					updTrgt.add("2");
				}
				// 初期eoIDPW（再振出）
				if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_PWD_RE_HRIDS))
				{
					updTrgt.add("4");
				}
				// eoId（初期化）
				if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_RESET))
				{
					updTrgt.add("2");
				}
				// eoIDPW（初期化）
				if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_PWD_RESET))
				{
					updTrgt.add("4");
				}
			}

			String[] v1 = new String[updTrgt.size()];

			// 連携データ区分11「お客様の基本情報」
			JKKBpCommon.putAxMRenkeiDataKbn11(
					param,
					workText,
					JKKAddSjishoConst.TRN_KBN_UPD,
					new String[]{},
					sysid,
					updTrgt.toArray(v1)
			);
			sijiFlg = true;
		}

//		if (renkei_custGrp)
//		{
//			// 連携データ区分01「お客様のグループ情報」
//			JKKBpCommon.putAxMRenkeiDataKbn(param, workText, JKKAddSjishoConst.RENKEI_DATA_KBN_CUST_GRP,
//					JKKAddSjishoConst.TRN_KBN_ADD, new String[]{}, sysid);
//			sijiFlg = true;
//		}
//
//		if (svcKeiUcwkNoList.size() > 0)
//		{
//			// 連携データ区分
//			JKKBpCommon.putAxMRenkeiDataKbn(param, workText, JKKAddSjishoConst.RENKEI_DATA_KBN_NINSHO_ID,
//					JKKAddSjishoConst.TRN_KBN_ADD, (String[])svcKeiUcwkNoList.toArray(new String[0]), sysid);
//			sijiFlg = true;
//		}
//
//		if (opSvcKeiNoB001List.size() > 0)
//		{
//			// 連携データ区分 03 ：POPIDの情報
//			JKKBpCommon.putAxMRenkeiDataKbn(param, workText, JKKAddSjishoConst.RENKEI_DATA_KBN_POPID,
//					JKKAddSjishoConst.TRN_KBN_ADD, (String[])opSvcKeiNoB001List.toArray(new String[0]), sysid);
//			sijiFlg = true;
//		}
//
//		if (opSvcKeiNoB002List.size() > 0)
//		{
//			// 連携データ区分 04 ：WEBIDの情報
//			JKKBpCommon.putAxMRenkeiDataKbn(param, workText, JKKAddSjishoConst.RENKEI_DATA_KBN_WEBID,
//					JKKAddSjishoConst.TRN_KBN_ADD, (String[])opSvcKeiNoB002List.toArray(new String[0]), sysid);
//			sijiFlg = true;
//		}

		// 連携データを作成している場合は指示書CCを呼び出す
		if (sijiFlg)
		{
			// 指示書登録
			sjishoCC.addSjisho(handle, param, workText);
		}

		// 指示書連携フラグ
		trgtData.put("sjisho_renkei", sijiFlg);
	}
	// 2012/12/17 IT1-2012-0002437 DEL END
// ST1-2013-0000402 EDIT_END お客様の基本情報は指示書連携を行う

// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD START
	/**
	 * 進捗登録<br>
	 * <br>
	 * @param	param				
	 * @param	handle				
	 * @param	work				
	 * @param	tclist				
	 * @param	workSvcKeiNoList	
	 * @return						
	 * @throws	Throwable
	 */
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*	private int addPrg(												*/
/*			IRequestParameterReadWrite param,						*/
/*			SessionHandle handle,									*/
/*			HashMap<String, Object> work,							*/
/*			ArrayList<ArrayList<HashMap<String, Object>>> tclist,	*/
/*			ArrayList workSvcKeiNoList								*/
/*	) throws Throwable												*/
	private int addPrg(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> work,
			ArrayList<ArrayList<HashMap<String, Object>>> tclist,
			ArrayList workSvcKeiNoList,
			HashMap trgtData
	) throws Throwable
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
	{
		int statusCode = 0;

		// 通知書用ユーザ定義領域名設定
		String workFixedText = "tchisho_list";
		// ユーザ定義領域作成
		createUserData(param, workFixedText);

		// 利用場所
		String usePlc = "";

		// サービス契約情報
		ArrayList svcKeiList = (ArrayList)work.get(WORK_MAP_KEY_SVCKEILIST);

		// 進捗用リスト
		ArrayList<String[]> prgList = new ArrayList<String[]>();
		// 進捗用リスト作成時チェック用リスト
		ArrayList<String> prgChkSvcKeiNoList = new ArrayList<String>();

		// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
		List<Map<String, String>> prgTkjk1MapList = new ArrayList();
		// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END

		// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 START
		ArrayList eoIdList = (ArrayList)work.get(WORK_MAP_KEY_EOIDINFOLIST);
		HashMap eoInfoMap = (HashMap)eoIdList.get(0);
		// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 END
		
		if (svcKeiList != null)
		{
			// サービス契約リスト数分処理を行う
			for (int i = 0; i < svcKeiList.size(); i++)
			{
				///////////////////////////////////////////////////////////////////////////
				// サービス契約マップ 取得
				///////////////////////////////////////////////////////////////////////////
				HashMap svcKeiMap = (HashMap)svcKeiList.get(i);

				///////////////////////////////////////////////////////////////////////////
				// サービス契約番号 取得
				///////////////////////////////////////////////////////////////////////////
				String svcKeiNo = (String)workSvcKeiNoList.get(i);
				work.put(WORK_MAP_KEY_SVC_KEI_NO, svcKeiNo);

				// 利用場所を取得
				usePlc = (String)svcKeiMap.get("use_plc");

				// すでに進捗出力の対象になっているサービス契約番号は処理をスキップ
				if (prgChkSvcKeiNoList.contains(svcKeiNo))
				{
					continue;
				}

				// 「通知書発行」進捗出力フラグ
				boolean tchishoPrg = false;
				// 「IDパスワード初期化」進捗出力フラグ
				boolean idShkPrg = false;
				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 START
				// 「IDパスワード再発行」進捗出力フラグ
				boolean idReHakkoPrg = false;
				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 END

				// ****************************************************
				// 通知書発行が選択されている場合
				// ****************************************************
				if ((Boolean)svcKeiMap.get("svc_kei_sel"))
				{
					tchishoPrg = true;
				}

				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 DEL START
				// ****************************************************
				// 認証ＩＤＰＷ（再振出）・認証ＩＤＰＷ（初期化）
				// リモート操作用ＰＷ（初期化）
				// ＰＯＰ ＰＷ（再振出）・ＰＯＰ ＰＷ（初期化）
				// ＷＥＢ ＩＤＰＷ（再振出）・ＷＥＢ ＩＤＰＷ（初期化）
				// ****************************************************
//				if (
//						(Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_re_hrids")
//						|| (Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_reset")
//						|| (Boolean)svcKeiMap.get("svc_kei_rmts_pwd_reset")
//						|| (Boolean)svcKeiMap.get("svc_kei_pop_pwd_re_hrids")
//						|| (Boolean)svcKeiMap.get("svc_kei_pop_pwd_reset")
//						|| (Boolean)svcKeiMap.get("svc_kei_web_id_pwd_re_hrids")
//						|| (Boolean)svcKeiMap.get("svc_kei_web_id_pwd_reset")
//				)
//				{
//					idShkPrg = true;
//				}
				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 DEL END
				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
				// ****************************************************
				// 認証ＩＤＰＷ（初期化）
				// リモート操作用ＰＷ（初期化）
				// ＰＯＰ ＰＷ（初期化）
				// ＷＥＢ ＩＤＰＷ（初期化）
				// ****************************************************
				if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_reset")
					|| (Boolean)svcKeiMap.get("svc_kei_rmts_pwd_reset")
					|| (Boolean)svcKeiMap.get("svc_kei_pop_pwd_reset")
					|| (Boolean)svcKeiMap.get("svc_kei_web_id_pwd_reset"))
				{
					idShkPrg = true;
				}
				// ****************************************************
				// 認証ＩＤＰＷ（再振出）
				// ＰＯＰ ＰＷ（再振出）
				// ＷＥＢ ＩＤＰＷ（再振出）
				// ****************************************************
				if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_re_hrids")
					|| (Boolean)svcKeiMap.get("svc_kei_pop_pwd_re_hrids")
					|| (Boolean)svcKeiMap.get("svc_kei_web_id_pwd_re_hrids"))
				{
					idReHakkoPrg = true;
				}
				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 START
////↓↓↓2014-01-03追加　OM-2013-0005188（eoID再振出の場合、SYSID配下の全ての契約を進捗発行対象とする）↓↓↓
//				else if (!tchishoPrg && eoIdSaiflg)
//				{
//					idShkPrg = true;
//				}
////↑↑↑2014-01-03追加　OM-2013-0005188（eoID再振出の場合、SYSID配下の全ての契約を進捗発行対象とする）↑↑↑
				// ****************************************************
				// 初期ｅｏＩＤ（再振出）
				// 初期ｅｏＩＤＰＷ（再振出）
				// ファミリーコード（再振出）
				// ファミリーコードＰＷ（再振出）
				// ****************************************************
				if (
						(Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_RE_HRIDS)
						|| (Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_PWD_RE_HRIDS)
						|| (Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_RE_HRIDS)
						|| (Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_PWD_RE_HRIDS)
				)
				{
					idReHakkoPrg = true;
				}

				// ****************************************************
				// ｅｏＩＤ（初期化）
				// ｅｏＩＤＰＷ（初期化）
				// ****************************************************
				if (
						(Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_RESET)
						|| (Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_PWD_RESET)
				)
				{
					idShkPrg = true;
				}
				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 END

				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 START
//				// ****************************************************
//				// 通知書発行か、初期化処理が行われている場合
//				// ****************************************************
//				if (tchishoPrg || idShkPrg)
//				{
//					String[] svcKeiInfo;
//
//					if (tchishoPrg && idShkPrg)
//					{
//						svcKeiInfo = new String[4];
//						svcKeiInfo[0] = svcKeiNo;				// サービス契約番号
//						svcKeiInfo[1] = usePlc;					// 
//						svcKeiInfo[2] = getPrgStat(work);		// 進捗（通知書発行）
//						svcKeiInfo[3] = PRG_STAT_5302;			// 進捗（IDパスワード初期化）
//					}
//					else
//					{
//						svcKeiInfo = new String[3];
//						svcKeiInfo[0] = svcKeiNo;				// サービス契約番号
//						svcKeiInfo[1] = usePlc;					// 
//
//						if (tchishoPrg)
//						{
//							svcKeiInfo[2] = getPrgStat(work);	// 進捗（通知書発行）
//						}
//						else
//						{
//							svcKeiInfo[2] = PRG_STAT_5302;		// 進捗（IDパスワード初期化）
//						}
//					}
//
//					// 進捗用リスト追加
//					prgList.add(svcKeiInfo);
//					// 進捗用リスト作成時チェック用リスト追加
//					prgChkSvcKeiNoList.add(svcKeiNo);
//				}
				// ****************************************************
				// 通知書発行、初期化処理、再発行処理が行われている場合
				// ****************************************************
				if (tchishoPrg || idShkPrg || idReHakkoPrg)
				{
					List<String> svcKeiInfo = new ArrayList<String>();
					svcKeiInfo.add(svcKeiNo);	// サービス契約番号
					svcKeiInfo.add(usePlc);		// 利用場所

					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
					// どのＩＤ、パスワードを変更したかを進捗の特記事項に出力する。
					// ※複数選択された場合は上記を句点(、)区切りで並べる。
					Map<String, String> prgTkjk1Map = new HashMap();
					List<String> idShkTkjk1 = new ArrayList<String>();
					List<String> idRehakkoTkjk1 = new ArrayList<String>();

					// 初期eoID 再振出
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_RE_HRIDS)) {
						idRehakkoTkjk1.add(TKJK1_SHK_EOID);
					}
					// 初期eoIDパスワード 再振出
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_PWD_RE_HRIDS)) {
						idRehakkoTkjk1.add(TKJK1_SHK_EOID_PWD);
					}
					// ファミリーコード 再振出
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_RE_HRIDS)) {
						idRehakkoTkjk1.add(TKJK1_FAMILY_CD);
					}
					// ファミリーコードパスワード 再振出
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_PWD_RE_HRIDS)) {
						idRehakkoTkjk1.add(TKJK1_FAMILY_CD_PWD);
					}
					// eoID 初期化
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_RESET)) {
						idShkTkjk1.add(TKJK1_EOID);
					}
					// eoIDパスワード 初期化
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_PWD_RESET)) {
						idShkTkjk1.add(TKJK1_EOID_PWD);
					}
					// 認証IDパスワード 初期化
					if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_reset")) {
						idShkTkjk1.add(TKJK1_SVC_KEI_NINSYO_PWD);
					}
					// リモート操作用パスワード 初期化
					if ((Boolean)svcKeiMap.get("svc_kei_rmts_pwd_reset")) {
						idShkTkjk1.add(TKJK1_SVC_KEI_RMTS_PWD);
					}
					// POPパスワード 初期化
					if ((Boolean)svcKeiMap.get("svc_kei_pop_pwd_reset")) {
						idShkTkjk1.add(TKJK1_SVC_KEI_POP_PWD);
					}
					// WebIDパスワード 初期化
					if ((Boolean)svcKeiMap.get("svc_kei_web_id_pwd_reset")) {
						idShkTkjk1.add(TKJK1_SVC_KEI_WEB_ID_PWD);
					}
					// 認証IDパスワード 再振出
					if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_re_hrids")) {
						idRehakkoTkjk1.add(TKJK1_SVC_KEI_NINSYO_PWD);
					}
					// POPパスワード 再振出
					if ((Boolean)svcKeiMap.get("svc_kei_pop_pwd_re_hrids")) {
						idRehakkoTkjk1.add(TKJK1_SVC_KEI_POP_PWD);
					}
					// WebIDパスワード 再振出
					if ((Boolean)svcKeiMap.get("svc_kei_web_id_pwd_re_hrids")) {
						idRehakkoTkjk1.add(TKJK1_SVC_KEI_WEB_ID_PWD);
					}
					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
					
					if (tchishoPrg)
					{
						svcKeiInfo.add(getPrgStat(work));	// 進捗（通知書発行）
					}
					if (idShkPrg)
					{
						svcKeiInfo.add(PRG_STAT_5302);	// 進捗（IDパスワード初期化）
						// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
						prgTkjk1Map.put(PRG_STAT_5302, getPrgTkjk1Text(idShkTkjk1));
						// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
					}
					if (idReHakkoPrg)
					{
						svcKeiInfo.add(PRG_STAT_5402);	// 進捗（IDパスワード再発行）
						// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
						prgTkjk1Map.put(PRG_STAT_5402, getPrgTkjk1Text(idRehakkoTkjk1));
						// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
					}

					// 進捗用リスト追加
					prgList.add((String[])svcKeiInfo.toArray(new String[svcKeiInfo.size()]));
					// 進捗用リスト作成時チェック用リスト追加
					prgChkSvcKeiNoList.add(svcKeiNo);
					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
					prgTkjk1MapList.add(prgTkjk1Map);
					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
				}
				// OM-2014-0001014 eoID初期化時に進捗が登録されない 2014/03/11 END
			}
		}

		// 
		for (int i = 0; i < prgList.size(); i++)
		{
			String[] prgInfo = prgList.get(i);

			// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
			Map<String, String> prgTkjk1Map = prgTkjk1MapList.get(i);
			// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
			
			// 異動日時取得
			String idoDtm = JCCBPCommon.getSysDateTimeStamp();

			for (int j = 2; j < prgInfo.length; j++)
			{
				// 進捗ステータスが'9801'(ＩＤ速報書再発行受付)、または'9802'(ＩＤ速報書再発行出力済)の場合
				if (PRG_STAT_9802.equals(prgInfo[j]) || PRG_STAT_9801.equals(prgInfo[j]))
				{
					HashMap outMap = (HashMap)param.getData(workFixedText);

					// ＰＴ不具合、IndexOutOfBoundsException防止
					int tclistCnt = 0;
					do {
						ArrayList ll = tclist.get(tclistCnt);
						HashMap tmpMap = (HashMap)ll.get(0);
						String tmpUsePlc = (String)tmpMap.get("use_plc");
						if (prgInfo[1].equals(tmpUsePlc))
						{
							break;
						}
						tclistCnt ++;
					} while(tclistCnt < tclist.size());

					if (tclistCnt >= tclist.size())
					{
						tchisho_cd = "";
					}
					else
					{
						outMap.put("trgt_data_list", tclist.get(tclistCnt));
						// OM-2014-0003116 通知書再発行で進捗が登録されない 2014/09/30 藤田 MOD START
//						tchisho_cd = (String)(((HashMap)(((ArrayList)(outMap.get("trgt_data_list"))).get(0))).get("tchisho_cd"));
						// 同一利用場所にて通知書発行対象のサービス契約がある場合には紐づくサービス契約すべてに進捗を登録する
						tchisho_cd = null;
						ArrayList<HashMap<String, Object>> tmpList = tclist.get(tclistCnt);
						for (HashMap m : tmpList)
						{
							String tmpTchishoCd = (String)m.get("tchisho_cd");
							if (tmpTchishoCd != null)
							{
								tchisho_cd = tmpTchishoCd;
								break;
							}
						}
						// OM-2014-0003116 通知書再発行で進捗が登録されない 2014/09/30 藤田 MOD END
					}
				}
				// 進捗ステータスが上記以外の場合
				else
				{
					tchisho_cd = "";
					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
					if (PRG_STAT_5302.equals(prgInfo[j]) || PRG_STAT_5402.equals(prgInfo[j])) {
						// 一時的に追加
						work.put(PRG_TKJK1_KEY, prgTkjk1Map.get(prgInfo[j]));
					}
					// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
				}

				// 201301203 OM-2013-0004538 通知書発行しない場合でも進捗登録が必要であるため条件削除 DEL START 
//				// OM-2013-0003515 2013/11/14 MOD START
//				// 通知書コードが空白の場合、進捗の登録を行わないこととする
//				if (tchisho_cd != null && !"".equals(tchisho_cd)) {
				// 201301203 OM-2013-0004538 通知書発行しない場合でも進捗登録が必要であるため条件削除 DEL END 
					///////////////////////////////////////////////////////////////////////////
					// 進捗登録
					///////////////////////////////////////////////////////////////////////////
					/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*					statusCode = addPrgExec(param, handle, work, prgInfo[0], tchisho_cd, prgInfo[j], idoDtm);	*/
					statusCode = addPrgExec(param, handle, work, prgInfo[0], tchisho_cd, prgInfo[j], idoDtm, trgtData);
					/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
				// 201301203 OM-2013-0004538 通知書発行しない場合でも進捗登録が必要であるため条件削除 DEL START 
				// OM-2013-0003515 2013/11/14 MOD END
//				}
				// 201301203 OM-2013-0004538 通知書発行しない場合でも進捗登録が必要であるため条件削除 DEL END 

				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
				// 一時的に追加したものを削除
				work.remove(PRG_TKJK1_KEY);
				// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
			}
		}

		return statusCode;
	}
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD END
	
	// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
	/**
	 * 進捗特記事項を保存した配列をつなげてテキストを返します。
	 * 文字列間は句点で区切ります。
	 */
	private String getPrgTkjk1Text(List<String> tkjk1Array)
	{
		StringBuffer prgTkjk1 = new StringBuffer();
		for (int j=0; j < tkjk1Array.size(); j++) {
			if (j > 0) {
				prgTkjk1.append(PRG_TKJK1_SPLIT_CHAR);
			}
			prgTkjk1.append(tkjk1Array.get(j));
		}
		return prgTkjk1.toString();
	}
	// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END
	
	
	/**
	 * 進捗登録実処理<br>
	 * <br>
	 * @param	param		
	 * @param	handle		
	 * @param	work		
	 * @param	tchisho_cd	
	 * @param	prgStatus	
	 * @param	idoDtm		
	 * @return				
	 * @throws	Throwable
	 */
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*	private int addPrgExec(
/*			IRequestParameterReadWrite param,	*/
/*			SessionHandle handle,				*/
/*			HashMap<String, Object> work,		*/
/*			String svcKeiNo,					*/
/*			String tchisho_cd,					*/
/*			String prgStatus,					*/
/*			String idoDtm						*/
/*	) throws Throwable							*/
	private int addPrgExec(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> work,
			String svcKeiNo,
			String tchisho_cd,
			String prgStatus,
			String idoDtm,
			HashMap trgtData
	) throws Throwable
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
	{
		int statusCode = 0;

		// コード名
		String cdDivNm = "";
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加開始 */
		String shsAd = "";
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加終了 */

		// 進捗ステータスが'9801'(ＩＤ速報書再発行受付)、または'9802'(ＩＤ速報書再発行出力済)の場合
		if (PRG_STAT_9802.equals(prgStatus) || PRG_STAT_9801.equals(prgStatus))
		{
			// 201301203 OM-2013-0004538 ADD START
			if (isNull(tchisho_cd))
			{
				// 通知書発行する場合で、通知書コードがない場合、進捗登録しない
				return statusCode;
			}
			// 201301203 OM-2013-0004538 ADD END 
			HashMap<String, Object> eZM0171A010InHash     = new HashMap<String, Object>();
			HashMap<String, Object> eZM0171A010ResultHash = new HashMap<String, Object>();

			// ＫＥＹ＿コード種別コード
			eZM0171A010InHash.put("key_cd_sbt_cd", KEY_CD_SBT_CD_CD01316); // 通知書コード
			// ＫＥＹ＿コード区分
			eZM0171A010InHash.put("key_cd_div", tchisho_cd);

			// コード名称管理一意照会サービスインターフェイス呼び出し
			callEZM0171A010SC(
					param,
					handle,
					eZM0171A010InHash,
					eZM0171A010ResultHash
			);

			CAANMsg[] eZM0171A010HashList = (CAANMsg[])eZM0171A010ResultHash.get(EZM0171A010CBSMsg.EZM0171A010CBSMSG1LIST);

			// コード名を取得
			cdDivNm = (String)eZM0171A010HashList[0].getMsgData().get(EZM0171A010CBSMsg1List.CD_DIV_NM);

			/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加開始 */
			// 印刷方法
			if(PRINTWAY_0.equals((String)work.get(WORK_MAP_KEY_PRINT_WAY)))
			{
				cdDivNm = cdDivNm + "　印刷方法：社内";
			}
			else
			{
				cdDivNm = cdDivNm + "　印刷方法：社外";
			}
			// 手数料
			ArrayList svcKeiList = (ArrayList)work.get(WORK_MAP_KEY_SVCKEILIST);
			HashMap svcKeiMap;
			Boolean commisionSel = false;
			for (int i = 0; i < svcKeiList.size(); i++)
			{
				svcKeiMap = (HashMap)svcKeiList.get(i);
				if(svcKeiNo.equals((String)svcKeiMap.get("svc_kei_no")))
				{
					commisionSel = (Boolean)svcKeiMap.get("commision_sel");
				}
			}
			if(commisionSel)
			{
				cdDivNm = cdDivNm + "　手数料有無：有";
			}
			else
			{
				cdDivNm = cdDivNm + "　手数料有無：無";
			}
			// 請求先情報
			ArrayList seikyList = (ArrayList)work.get(WORK_MAP_KEY_SEIKYLIST);
			String index = (String)work.get("seiky_sel");
			String seikyKeiNo = "";
			int selSeikyu = (-1);
			if (null != index && index.matches("^[0-9]+$"))
			{
				selSeikyu = Integer.parseInt(index);
			}
			if (0 <= selSeikyu)
			{
				// 請求情報から選択行の情報を取得する
				HashMap seikyuMap = (HashMap)seikyList.get(selSeikyu);
				if (seikyuMap.containsKey("seiky_kei_no"))
				{
					seikyKeiNo = (String)seikyuMap.get("seiky_kei_no");
				}
			}
			cdDivNm = cdDivNm + "　請求先番号：" + seikyKeiNo;
			// 対象データ情報
			cdDivNm = cdDivNm + "　サービス契約情報：";
			ArrayList trgtDataList = (ArrayList)trgtData.get("tchisho_hktgi_list");
			HashMap trgtDataMap;
			Boolean splitFlg = false;
			for(int i = 0; i < trgtDataList.size(); i++)
			{
				trgtDataMap = (HashMap)trgtDataList.get(i);
				if((String)trgtDataMap.get("tchisho_no") != null && (String)trgtDataMap.get("tchisho_no") != ""){
					if(splitFlg)
					{
						cdDivNm = cdDivNm + PRG_TKJK1_SPLIT_CHAR;
					}
					cdDivNm = cdDivNm + (String)trgtDataMap.get("tchisho_no");
					splitFlg = true;
				}
			}
			// 送付先住所情報
			ArrayList eoMblsofuList = (ArrayList)work.get(WORK_MAP_KEY_EOMBLSOFULIST);
			HashMap<String, Object> sohusInfo = getSohusInfo(eoMblsofuList, work);
			
// ▼▼▼▼▼ IT1-2015-0000038 2015/03/23 MOD START ▼▼▼▼▼
			// 緊急発行の場合、送付先住所は未設定になるため、進捗特記事項にも出さない
			if(HAKKO_DIV_2.equals((String)work.get(WORK_MAP_KEY_HAKKO_DIV)))
			{
				// 発行区分が緊急発行の場合、送付先住所は進捗特記事項に出さない
				shsAd = "送付先住所：";
			}
			else
			{
				// 緊急発行以外の場合は編集する。
				shsAd = "送付先住所：" + (String)sohusInfo.get("mbl_shs_ad");
			}
//			shsAd = "送付先住所：" + (String)sohusInfo.get("mbl_shs_ad");

			/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加終了 */
// ▲▲▲▲▲ IT1-2015-0000038 2015/03/23 MOD END   ▲▲▲▲▲
		}
		// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD START
		else {
			// ＩＤパスワード初期化／再発行のとき
			String prg_tkjk_1 = (String)work.get(PRG_TKJK1_KEY);
			if (prg_tkjk_1 != null) {
				cdDivNm = prg_tkjk_1;
			}
		}
		// ANK-1951-00-00 進捗の初期化と再発行を正しく登録する 2014/04/03 藤田 ADD END

		HashMap<String, Object> eKK1091D010Hash = new HashMap<String, Object>();
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*		callEKK1091D010SC(			*/
/*				param,				*/
/*				handle,				*/
/*				eKK1091D010Hash,	*/
/*				work,				*/
/*				svcKeiNo,			*/
/*				prgStatus,			*/
/*				cdDivNm,			*/
/*				idoDtm				*/
/*		);							*/
		callEKK1091D010SC(
				param,
				handle,
				eKK1091D010Hash,
				work,
				svcKeiNo,
				prgStatus,
				cdDivNm,
				idoDtm,
				shsAd
		);
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
		return statusCode;
	}

	/**
	 * 一時金設定登録処理
	 * @param param
	 * @param handle
	 * @param work
	 * @return
	 * @throws Throwable
	 */
	private int addIcjknSette(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> work, String svc_kei_no, HashMap<String, Object> svcKeiMap)
			throws Throwable
	{
		int statusCode = 0;
		HashMap<String, Object> eKK1021C011Hash = new HashMap<String, Object>();
		HashMap<String, Object> eKK1021D010Hash = new HashMap<String, Object>();
		
		// 事務手数料判定結果取得
		callEKK1021C011SC(
					param, 
					handle, 
					work, 
					svcKeiMap,
					eKK1021C011Hash);

		CAANMsg[] eKK1021C011CBSMSG1LIST = (CAANMsg[])eKK1021C011Hash.get(EKK1021C011CBSMsg.EKK1021C011CBSMSG1LIST);
		
		if (eKK1021C011CBSMSG1LIST == null || eKK1021C011CBSMSG1LIST.length <= 0)
		{
			return -1;
		}
		
		HashMap<String, Object> eKK1021C011 = eKK1021C011CBSMSG1LIST[0].getMsgData();
		
		// 一時金設定登録
		callEKK1021D010SC(
					param, 
					handle, 
					work, 
					eKK1021D010Hash, 
					svc_kei_no, 
					eKK1021C011);

		return statusCode;
	}

	/**
	 * 申込・申込明細登録処理
	 * @param param
	 * @param handle
	 * @param work
	 * @return
	 * @throws Throwable
	 */
	private void addMskm(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> work
	) throws Throwable
	{
		// **********************************
		// 申込内容承認登録
		// **********************************
		HashMap<String, Object> eKK0011D020Hash = new HashMap<String, Object>();

		callEKK0011D020SC(
				param, 
				handle, 
				work, 
				eKK0011D020Hash
		);

		CAANMsg[] eKK0011D020CBSMSG1list = (CAANMsg[])eKK0011D020Hash.get(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST);
		HashMap<String, Object> eKK0011D020 = eKK0011D020CBSMSG1list[0].getMsgData();

		// 申込明細番号を取得
		String mskmDtlNo = (String)eKK0011D020.get(EKK0011D020CBSMsg1List.MSKM_DTL_NO);

		// ワークマップに申込明細番号を格納
		work.put(WORK_MAP_KEY_MSKM_DTL_NO, mskmDtlNo);

		// **********************************
		// 申込明細一意照会実行処理
		// **********************************
		HashMap<String, Object> eKK0021A010Hash = new HashMap<String, Object>();

		callEKK0021A010SC(
				param, 
				handle, 
				mskmDtlNo, 
				eKK0021A010Hash
		);

		CAANMsg[] eKK0021A010CBSMSG1list = (CAANMsg[])eKK0021A010Hash.get(EKK0021A010CBSMsg.EKK0021A010CBSMSG1LIST);
		HashMap<String, Object> eKK0021A010 = eKK0021A010CBSMSG1list[0].getMsgData();

		// **********************************
		// 申込明細照査・後続業務依頼
		// **********************************
		HashMap<String, Object> eKK0021C060Hash = new HashMap<String, Object>();

		callEKK0021C060SC(
				param, 
				handle, 
				eKK0021A010, 
				work, 
				eKK0021C060Hash
		);
	}

	/**
	 * eoID情報の再振出・初期化処理
	 * @param param
	 * @param handle
	 * @param work
	 * @param func_code
	 * @param custHash
	 * @return
	 * @throws Throwable
	 */
	private void eoIdShkkaSaifuri(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> work,
			String func_code,
			HashMap<String, Object> custHash
	) throws Throwable
	{
		// 結果Map
		HashMap<String, Object> eCK0111B002Hash = new HashMap<String, Object>();
		HashMap<String, Object> resultHash = new HashMap<String, Object>();
		ArrayList eoIdList = (ArrayList)work.get(WORK_MAP_KEY_EOIDINFOLIST);
		HashMap eoInfoMap = (HashMap)eoIdList.get(0);

		if (eoInfoMap != null)
		{

			HashMap<String, Object> eCK0011A010Hash = new HashMap<String, Object>();

			// ********************************************** //
			// お客様一意照会                                 //
			// ********************************************** //
			callECK0011A010SC(
					param,
					handle,
					work,
					eCK0011A010Hash
			);

			CAANMsg[] eCK0011A010CBSMSG1list = (CAANMsg[])eCK0011A010Hash.get(ECK0011A010CBSMsg.ECK0011A010CBSMSG1LIST);
			HashMap<String, Object> eCK0011A010 = eCK0011A010CBSMSG1list[0].getMsgData();

			// 更新年月日時分秒を設定（お客様）
			// OM-2013-0004891 お客様変更予約→お客様分割後にeoIDを初期化すると排他エラー 2013/12/10 START
//			setCust_Upd_dtm(eCK0011A010);
			setCust_Upd_Dtm_Haita(eCK0011A010);
			// OM-2013-0004891 お客様変更予約→お客様分割後にeoIDを初期化すると排他エラー 2013/12/10 END
			
			// ********************************************** //
			// ファミリー会員グループ一覧照会（SYSID）        //
			// ********************************************** //
			callECK0111B002SC(
					param,
					handle,
					work,
					eCK0111B002Hash
			);

			CAANMsg[] eCK0111B002CBSMSG1list = (CAANMsg[])eCK0111B002Hash.get(ECK0111B002CBSMsg.ECK0111B002CBSMSG1LIST);

			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			//                                                                    //
			// 初期ｅｏＩＤ（再振出）                                             //
			//                                                                    //
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_RE_HRIDS))
			{
				// ********************************************** //
				// 初期eoID再振出                                 //
				// ********************************************** //
				callECK0011C012SC(
						param,
						handle,
						eCK0011A010,
						resultHash,
						func_code
				);

				// 更新日時分秒設定
				setCust_Upd_dtm(resultHash);

				renkei_cust = true;

				// 整理番号CC呼出
				callSeriNoHtbCC(handle, param, work);

				eoIdSaiflg = true;
			}

			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			//                                                                    //
			// 初期ｅｏＩＤＰＷ（再振出）                                         //
			//                                                                    //
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_SHK_EOID_PWD_RE_HRIDS))
			{
				resultHash = new HashMap<String, Object>();

				// ********************************************** //
				// 初期eoIDパスワード再振出                       //
				// ********************************************** //
				callECK0011C013SC(
						param,
						handle,
						eCK0011A010,
						resultHash,
						func_code
				);

				// 更新日時分秒設定
				setCust_Upd_dtm(resultHash);

				renkei_cust = true;
			}
			
			// OM-2013-00001401 2013/09/02 START
			// ファミリーコード（再振出)またはファミリーコードＰＷ（再振出）時のみグループの一意紹介を行う
			if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_RE_HRIDS)
				|| (Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_PWD_RE_HRIDS)
			) {
				// ファミリー会員グループ情報数繰返し
				for (int i = 0; i < eCK0111B002CBSMSG1list.length; i++)
				{
					// IT2-2013-0000677 2013/08/06 START
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					//                                                                    //
					// グループ一意照会                                                   //
					//                                                                    //
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					HashMap<String, Object> eCK0111A010Hash = new HashMap<String, Object>();
					
					callECK0111A010SC(
							param,
							handle,
							eCK0111B002CBSMSG1list[i].getMsgData(),
							eCK0111A010Hash
					);
					
					CAANMsg[] eCK0111A010CBSMSG1list = (CAANMsg[])eCK0111A010Hash.get(ECK0111A010CBSMsg.ECK0111A010CBSMSG1LIST);
					HashMap<String, Object> eCK0111A010 = eCK0111A010CBSMSG1list[0].getMsgData();
	
					
					setCust_Upd_Dtm_Haita(eCK0111A010);
					// IT2-2013-0000677 2013/08/06 END
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					//                                                                    //
					// ファミリーコード（再振出）                                         //
					//                                                                    //
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_RE_HRIDS))
					{
						resultHash = new HashMap<String, Object>();
	
						// ********************************************** //
						// グループ入会コード再振出                       //
						// ********************************************** //
						callECK0111C011SC(
								param,
								handle,
								eCK0111B002CBSMSG1list[i].getMsgData(),
								resultHash,
								func_code
						);
	
						// 更新日時分秒設定
						setCust_Upd_dtm(resultHash);
					}
	
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					//                                                                    //
					// ファミリーコードＰＷ（再振出）                                     //
					//                                                                    //
					// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
					if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_FAMILY_CD_PWD_RE_HRIDS))
					{
						resultHash = new HashMap<String, Object>();
	
						// ********************************************** //
						// グループ入会コードパスワード再振出             //
						// ********************************************** //
						callECK0111C012SC(
								param,
								handle,
								eCK0111B002CBSMSG1list[i].getMsgData(),
								resultHash,
								func_code
						);
	
						// 更新日時分秒設定
						setCust_Upd_dtm(resultHash);
					}
				}
			}
			//  OM-2013-00001401 2013/09/02 END

// OM-2018-0001294 2019/02/15 ADD START
			// eoID初期化有無
			boolean eoidShokikaFlg = false;
// OM-2018-0001294 2019/02/15 ADD END
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			//                                                                    //
			// ｅｏＩＤ（初期化）                                                 //
			//                                                                    //
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_RESET))
			{
				resultHash = new HashMap<String, Object>();

				// ********************************************** //
				// eoID初期化                                     //
				// ********************************************** //
				callECK0011C020SC(
						param,
						handle,
						eCK0011A010,
						resultHash,
						func_code,
						"1"
				);

				// 更新日時分秒設定
				setCust_Upd_dtm(resultHash);

				renkei_cust = true;
// OM-2018-0001294 2019/02/15 ADD START
				eoidShokikaFlg = true;
// OM-2018-0001294 2019/02/15 ADD END
			}

			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			//                                                                    //
			// ｅｏＩＤＰＷ（初期化）                                             //
			//                                                                    //
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			if ((Boolean)eoInfoMap.get(EOIDINFOLIST_KEY_EOID_PWD_RESET))
			{
				// 2013-03-19 OT-2013-0000308 DEL START
				resultHash = new HashMap<String, Object>();

				// ********************************************** //
				// eoIDPW初期化                                   //
				// ********************************************** //
				callECK0011C020SC(
						param,
						handle,
						eCK0011A010,
						resultHash,
						func_code,
						"2"
				);

				// 更新日時分秒設定
				setCust_Upd_dtm(resultHash);

				renkei_cust = true;
				// 2013-03-19 OT-2013-0000308 DEL END
			}
// OM-2018-0001294 2019/02/15 ADD START
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			//                                                                    //
			// エイジング回復可能期間終了                                         //
			//                                                                    //
			// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
			if (eoidShokikaFlg)
			{
				String eoid = (String)eCK0011A010.get(ECK0011A010CBSMsg1List.EOID);
				
				//EOIDが「51」始まりの12桁数値の場合はエイジング終了処理を実施しない
				if(checkEoidChangeMoji(eoid))
				{
					HashMap<String, Object> eZM0111B050Hash = new HashMap<String, Object>();
					resultHash = new HashMap<String, Object>();
					
					// ********************************************** //
					// エイジング一覧照会                             //
					// ********************************************** //
					callEZM0111B050SC(
							param,
							handle,
							eCK0011A010,
							eZM0111B050Hash,
							FUNC_CD_1
					);
					
					CAANMsg[] eZM0111B050CBSMSG1list = (CAANMsg[])eZM0111B050Hash.get(EZM0111B050CBSMsg.EZM0111B050CBSMSG1LIST);
					
					HashMap<String, Object> eZM0111C010Hash = new HashMap<String, Object>();
					
					if (eZM0111B050CBSMSG1list.length != 0)
					{
						// ********************************************** //
						// エイジング対象使用終了                         //
						// ********************************************** //
						HashMap<String, Object> eZM0111B050 = eZM0111B050CBSMSG1list[0].getMsgData();
						
						callEZM0111C010SC(
								param,
								handle,
								eZM0111B050,
								eZM0111C010Hash,
								FUNC_CD_1
						);
					
						// ********************************************** //
						// 回復可能期間終了                               //
						// ********************************************** //
						callEZM0111C030SC(
								param,
								handle,
								eZM0111C010Hash,
								resultHash,
								FUNC_CD_1
						);
					}
				}
			}
// OM-2018-0001294 2019/02/15 ADD END

			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
			// 契約者電話番号を保持
			String keisha_telno = (String)eCK0011A010.get("keisha_telno");
			work.put(WORK_MAP_KEY_KEISHA_TELNO, keisha_telno);
			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END
		}
	}

	/**
	 * サービス契約情報の再振出・初期化処理<br>
	 * <br>
	 * @param	param				
	 * @param	handle				
	 * @param	work				
	 * @param	tchishoList			
	 * @param	sodDataList			
	 * @param	workSvcKeiNoList	
	 * @return						
	 * @throws	Throwable
	 */
	private void svcKeiShkkaSaifuri(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap work,
			ArrayList<ArrayList<HashMap<String, Object>>> tchishoList,
			ArrayList<HashMap<String, Object>> sodDataList,
			ArrayList workSvcKeiNoList
	) throws Throwable
	{
		// 通知対象データリスト
		ArrayList<HashMap<String, Object>> tchitargetList = new ArrayList<HashMap<String, Object>>();
		// 結果Map
		HashMap<String, Object> resultHash = new HashMap<String, Object>();

		// 利用場所（前行）
		String usePlc_bf     = "";
		// サービス契約番号（前行）
		String svc_kei_no_bf = "";
		// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し DEL START
//		// popPw（前行）
//		String popPw_bf = "";
		// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し DEL END

		// 利用場所
		String usePlc = "";
		// サービス契約番号（請求情報から取得値保持）
		String svckeinoFromSeikyu = null;

		// サービス契約情報
		ArrayList svcKeiList    = (ArrayList)work.get(WORK_MAP_KEY_SVCKEILIST);
		// 請求先情報
		ArrayList seikyList     = (ArrayList)work.get(WORK_MAP_KEY_SEIKYLIST);
		// 送付先住所情報
		ArrayList eoMblsofuList = (ArrayList)work.get(WORK_MAP_KEY_EOMBLSOFULIST);

		// 発行区分
		String hakkoDiv = (String)work.get(WORK_MAP_KEY_HAKKO_DIV);

		if (svcKeiList != null)
		{
			// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			// 「eoID再振」が実施されている場合
			// サービス契約配下のすべてのスキーマが更新されているため、
			// 更新年月日時分秒を取得しなおす
			// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			if (eoIdSaiflg)
			{
				// サービス契約リスト数分処理を行う
				for (int i = 0; i < svcKeiList.size(); i++)
				{
					// サービス契約マップ取得
					HashMap svcKeiMap = (HashMap)svcKeiList.get(i);

					// 最終更新年月日時分秒取得
					String lastUpdDtm = getSvcLastUpdDtm(param, handle, svcKeiMap, resultHash);

					// 最終更新年月日時分秒を更新
					svcKeiMap.put("upd_dtm", lastUpdDtm);
				}
			}
			
			// 通知書に対する一時金対象のサービス契約番号を保管する
			ArrayList<String> svcKeiicjknList = new ArrayList<String>();

			// サービス契約リスト数分処理を行う
			for (int i = 0; i < svcKeiList.size(); i++)
			{
				HashMap<String, Object> tchishoHash = new HashMap<String, Object>();
				HashMap<String, Object> eKK0361A010Hash = new HashMap<String, Object>();
				HashMap<String, Object> eKK0351A010Hash = new HashMap<String, Object>();

				// サービス契約マップ取得
				HashMap svcKeiMap = (HashMap)svcKeiList.get(i);

				// サービス契約番号
				String svc_kei_no      = (String)svcKeiMap.get("svc_kei_no");
				// サービスコード
				String svcCd           = (String)svcKeiMap.get("svc_cd");
				// オプションサービス契約番号（Ｅメール）
				String opSvcKeiNo_b001 = (String)svcKeiMap.get("op_svc_kei_no_b001");
				// オプションサービス契約番号（ＭＹホームページ）
				String opSvcKeiNo_b002 = (String)svcKeiMap.get("op_svc_kei_no_b002");

				// ワークマップへ格納
				work.put(WORK_MAP_KEY_SVC_KEI_NO, svc_kei_no);

				// サービスが「ネット」「電話」の場合
				if (JKKStrConst.CD00130_01.equals(svcCd) || JKKStrConst.CD00130_02.equals(svcCd))
				{
					// ２順目以降の場合
					if (!"".equals(svc_kei_no_bf))
					{
						// 前行と違うサービス契約番号の場合
						if (! svc_kei_no_bf.equals(svc_kei_no))
						{
							// 最終更新年月日時分秒をセット
							setSvc_upd_dtm_bf(svcKeiMap);
						}
					}
					// １順目の場合
					else
					{
						// 最終更新年月日時分秒をセット
						setSvc_upd_dtm_bf(svcKeiMap);
					}
				}
				else
				{
					// 最終更新年月日時分秒をセット
					setSvc_upd_dtm_bf(svcKeiMap);
				}

				// ********************************************** //
				// サービス契約一意照会                           //
				// ********************************************** //
				callEKK0081A010SC(
						param,
						handle,
						svcKeiMap,
						resultHash
				);

				CAANMsg[] eKK0081A010CBSMSG1list = (CAANMsg[])resultHash.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
				HashMap<String, Object> eKK0081A010CBSMSG1 = eKK0081A010CBSMSG1list[0].getMsgData();

// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 MOD START
				workSvcKeiNoList.add(svc_kei_no);
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 MOD END

				// 料金グループコード取得
				String prcGrpCd = (String)eKK0081A010CBSMSG1.get(EKK0081A010CBSMsg1List.PRC_GRP_CD);

				CAANMsg[] eKK0161B004CBSMSG1list  = null;
				CAANMsg[] eKK0171A010CBSMSG1list  = null;
				// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
				CAANMsg[] eKK0171A010CBSMSG1listCourseChgAf  = null;
				// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
				CAANMsg[] eKK0361A010CBSMSG1list1 = null;
				CAANMsg[] eKK0361A010CBSMSG1list2 = null;
				CAANMsg[] eKK0351A010CBSMSG1list1 = null;
				CAANMsg[] eKK0351A010CBSMSG1list2 = null;
				CAANMsg[] eKK0191A010CBSMSG1list  = null;

				// 利用場所を取得
				usePlc = (String)svcKeiMap.get("use_plc");

				// 利用場所が変更された場合
				if (!usePlc_bf.equals(usePlc))
				{
					// 通知対象データリストを初期化する
					tchitargetList = new ArrayList<HashMap<String, Object>>();
				}

				// 前行と違うサービス契約番号の場合
				if ("".equals(svc_kei_no_bf) || !(svc_kei_no_bf.equals(svc_kei_no)))
				{
					// ++++++++++++++++++++++++++++++++
					// ネット
					// ++++++++++++++++++++++++++++++++
					if (SVC_CD_01.equals(svcCd))
					{
						resultHash= new HashMap<String, Object>();
						// ********************************************** //
						// サービス契約内訳一覧照会                       //
						// ********************************************** //
						callEKK0161B004SC(
								param, 
								handle, 
								svcKeiMap, 
								resultHash
						);

						eKK0161B004CBSMSG1list = (CAANMsg[])resultHash.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);

						if (eKK0161B004CBSMSG1list != null && eKK0161B004CBSMSG1list.length > 0)
						{
							// OM-2013-0000083 認証IDPWの再振・初期化を実行すると業務エラーが発生 2013/08/18 START
//							HashMap<String, Object> eKK0161B004CBSMSG1 = eKK0161B004CBSMSG1list[0].getMsgData();
							HashMap<String, Object> eKK0161B004CBSMSG1 = null;
							CAANMsg rsltMsg = null;
							// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
							HashMap<String, Object> eKK0161B004CBSMSG1CourseChgAf = null;
							CAANMsg rsltMsgCourseChgAf = null;
							// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END

							// サービス契約ステータス
							String svcKeiStat = (String)eKK0081A010CBSMSG1.get(EKK0081A010CBSMsg1List.SVC_KEI_STAT);
							if (eKK0161B004CBSMSG1list.length == 1)
							{
								// サービス契約に紐付くサービス契約内訳が１件の場合、その内訳を返す
								rsltMsg =  eKK0161B004CBSMSG1list[0];
							}
							else if (eKK0161B004CBSMSG1list.length > 1)
							{
								// サービス契約に紐付くサービス契約内訳が２件の場合、
								// サービス契約と同じステータスの内訳を返す。
								// 同じステータスが複数ある場合は、世代の新しいほうを返す
								// ※内訳が２件以上ある場合は、サービス契約と同じステータスの内訳が必ず１件以上存在する
								CAANMsg tmpMsgEKK0161B004 = null;
								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
								CAANMsg tmpMsgEKK0161B004CourseChgAf = null;
								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
								for (CAANMsg msgEKK0161B004 : eKK0161B004CBSMSG1list)
								{
									//OM-2015-0002751 2015/10/29 MOD START
									//コース変更中にＩＤＰＷ初期化を行うと変更後の認証IDのSODが発行されない
//									if (svcKeiStat.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT)))
//									{
//										if (tmpMsgEKK0161B004 != null)
//										{
//											if(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.GENE_ADD_DTM).compareTo(tmpMsgEKK0161B004.getString(EKK0161B004CBSMsg1List.GENE_ADD_DTM)) > 0)
//											{
//												tmpMsgEKK0161B004 = msgEKK0161B004;
//											}
//										}
//										else
//										{
//											tmpMsgEKK0161B004 = msgEKK0161B004;
//										}
//									}
//									// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
//									else
//									{
//										// サービス契約内訳ステータスが締結済で、異動区分がコース変更の場合
//										if (JKKStrConst.CD00037_CNC_ZM.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT))
//// OM-2014-0000538 住所変更のコース変更考慮 2014/03/05 MOD START
////											&& JKKStrConst.CD00576_00009.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.IDO_DIV)))
//											&& (JKKStrConst.CD00576_00009.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.IDO_DIV))
//												|| JKKStrConst.CD00576_ADCHG_ADD.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.IDO_DIV))
//												|| JKKStrConst.CD00576_ADCHG_FIX.equals(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.IDO_DIV))))
//// OM-2014-0000538 住所変更のコース変更考慮2014/03/05 MOD END
//										{
//											// コース変更予約中のコース変更後の内訳として最新の世代を保持する
//											if (tmpMsgEKK0161B004CourseChgAf != null)
//											{
//												if(msgEKK0161B004.getString(EKK0161B004CBSMsg1List.GENE_ADD_DTM).compareTo(tmpMsgEKK0161B004CourseChgAf.getString(EKK0161B004CBSMsg1List.GENE_ADD_DTM)) > 0)
//												{
//													tmpMsgEKK0161B004CourseChgAf = msgEKK0161B004;
//												}
//											}
//											else
//											{
//												tmpMsgEKK0161B004CourseChgAf = msgEKK0161B004;
//											}
//										}
//									}
//									// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
									
									//コース変更中に変更前後の内訳が両方サービス提供中であるケースが想定されていないため、
									//上記判定を下記に変更します。
									
									// サービス契約ステータス
									String svcKeiUcwkStat = (String)msgEKK0161B004.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_STAT);
									
									//受付済、解約済、キャンセル済の場合はSODを発行しない
									if (
											svcKeiUcwkStat.equals(JKKStrConst.CD00037_UK_ZM)    || 
											svcKeiUcwkStat.equals(JKKStrConst.CD00037_DSL_ZM)   || 
											svcKeiUcwkStat.equals(JKKStrConst.CD00037_CANCEL_ZM)
										)
									{
										continue;
									}
									else
									{
										// ********************************************** //
										//              異動予約一覧照会                  //
										// ********************************************** //
										CAANMsg[] eKK1681B001CBSMSG1list  = null;
										callEKK1681B001SC(
												param, 
												handle, 
												msgEKK0161B004.getString(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO), 
												resultHash
										);
										
										eKK1681B001CBSMSG1list = (CAANMsg[])resultHash.get(EKK1681B001CBSMsg.EKK1681B001CBSMSG1LIST);
										
										if(eKK1681B001CBSMSG1list != null && eKK1681B001CBSMSG1list.length > 0)
										{
											//サービス解約の異動予約が取得できた場合、
											//コース変更前の内訳番号
											tmpMsgEKK0161B004 = msgEKK0161B004;
										}
										else if(eKK1681B001CBSMSG1list == null || eKK1681B001CBSMSG1list.length  == 0)
										{
											//サービス解約の異動予約が取得できない場合、
											//コース変更後の内訳番号
											tmpMsgEKK0161B004CourseChgAf = msgEKK0161B004;
										}
									}
								}
								if(tmpMsgEKK0161B004 == null && tmpMsgEKK0161B004CourseChgAf != null)
								{
									tmpMsgEKK0161B004 = tmpMsgEKK0161B004CourseChgAf;
									tmpMsgEKK0161B004CourseChgAf = null;
								}
								else
								{
									//何もしない
								}
								//コース変更中にＩＤＰＷ初期化を行うと変更後の認証IDのSODが発行されない
								//OM-2015-0002751 2015/10/29 MOD END
								
								rsltMsg = tmpMsgEKK0161B004;
								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
								if (null != tmpMsgEKK0161B004CourseChgAf)
								{
									rsltMsgCourseChgAf = tmpMsgEKK0161B004CourseChgAf;
								}
								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
							}

							eKK0161B004CBSMSG1 = rsltMsg.getMsgData();
							// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
							if (null != rsltMsgCourseChgAf)
							{
								eKK0161B004CBSMSG1CourseChgAf = rsltMsgCourseChgAf.getMsgData();
							}
							// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END

							// OM-2013-0000083 認証IDPWの再振・初期化を実行すると業務エラーが発生 2013/08/18 END

							// ++++++++++++++++++++++++++++++++
							// ネットの場合
							// ++++++++++++++++++++++++++++++++
							if (
									JKKStrConst.CD00133_02.equals(prcGrpCd)
									|| JKKStrConst.CD00133_03.equals(prcGrpCd)
									|| JKKStrConst.CD00133_04.equals(prcGrpCd)
							)
							{
								resultHash= new HashMap<String, Object>();

								// ********************************************** //
								// サービス契約内訳一意照会＜eo光ネット＞         //
								// ********************************************** //
								callEKK0171A010SC(
										param,
										handle,
										(String)eKK0161B004CBSMSG1.get("svc_kei_ucwk_no"),
										resultHash
								);

								eKK0171A010CBSMSG1list = (CAANMsg[])resultHash.get(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST);

								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
								// コース変更予約中の場合
								if (null != eKK0161B004CBSMSG1CourseChgAf)
								{
									HashMap<String, Object> resultHashCourseChgAf = new HashMap<String, Object>();
									// ********************************************** //
									// サービス契約内訳一意照会＜eo光ネット＞         //
									// ********************************************** //
									callEKK0171A010SC(
											param,
											handle,
											(String)eKK0161B004CBSMSG1CourseChgAf.get("svc_kei_ucwk_no"),
											resultHashCourseChgAf
									);

									eKK0171A010CBSMSG1listCourseChgAf = (CAANMsg[])resultHashCourseChgAf.get(EKK0171A010CBSMsg.EKK0171A010CBSMSG1LIST);
								}
								// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END

							}
						}
					}
				}

				// 退避サービス契約番号に現在のサービス契約番号を設定する
				svc_kei_no_bf = svc_kei_no;

				// オプションサービス契約番号（メール）が設定されている場合
				if (opSvcKeiNo_b001 != null && !"".equals(opSvcKeiNo_b001))
				{
					eKK0361A010Hash = new HashMap<String, Object>();
					eKK0351A010Hash = new HashMap<String, Object>();

					// ********************************************** //
					// オプションサービス契約一意照会                 //
					// ********************************************** //
					callEKK0351A010SC(
							param,
							handle,
							opSvcKeiNo_b001,
							eKK0351A010Hash
					);

					eKK0351A010CBSMSG1list1 = (CAANMsg[])eKK0351A010Hash.get(EKK0351A010CBSMsg.EKK0351A010CBSMSG1LIST);

					// ********************************************** //
					// オプションサービス契約＜ISP＞一意照会          //
					// ※Ｅメールオプション                           //
					// ********************************************** //
					callEKK0361A010SC(
							param, 
							handle, 
							opSvcKeiNo_b001, 
							eKK0361A010Hash
					);

					eKK0361A010CBSMSG1list1 = (CAANMsg[])eKK0361A010Hash.get(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST);
				}

				// オプションサービス契約番号（Myホームページ）が設定されている場合
				if (opSvcKeiNo_b002 != null && !"".equals(opSvcKeiNo_b002))
				{
					eKK0361A010Hash = new HashMap<String, Object>();
					eKK0351A010Hash= new HashMap<String, Object>();

					// ********************************************** //
					// オプションサービス契約一意照会                 //
					// ********************************************** //
					callEKK0351A010SC(
							param,
							handle,
							opSvcKeiNo_b002,
							eKK0351A010Hash
					);

					eKK0351A010CBSMSG1list2 = (CAANMsg[])eKK0351A010Hash.get(EKK0351A010CBSMsg.EKK0351A010CBSMSG1LIST);

					// ********************************************** //
					// オプションサービス契約＜ISP＞一意照会          //
					// ※Ｍｙホームページ                             //
					// ********************************************** //
					callEKK0361A010SC(
							param,
							handle,
							opSvcKeiNo_b002,
							eKK0361A010Hash
					);

					eKK0361A010CBSMSG1list2 = (CAANMsg[])eKK0361A010Hash.get(EKK0361A010CBSMsg.EKK0361A010CBSMSG1LIST);
				}

				// ++++++++++++++++++++++++++++++++
				// 電話
				// ++++++++++++++++++++++++++++++++
				if (SVC_CD_02.equals(svcCd))
				{
					resultHash= new HashMap<String, Object>();
					// ********************************************** //
					// サービス契約内訳＜eo光電話＞一意照会           //
					// ********************************************** //
					callEKK0191A010SC(
							param,
							handle,
							svcKeiMap,
							resultHash
					);

					eKK0191A010CBSMSG1list = (CAANMsg[])resultHash.get(EKK0191A010CBSMsg.EKK0191A010CBSMSG1LIST);
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// 認証ＩＤＰＷ（再振出）                                             //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_re_hrids"))
				{
					resultHash = new HashMap<String, Object>();

					// OT-2013-0000109 2013/02/14 ADD START
					// 最終更新日時分秒設定(サービス契約内訳一意照会＜eo光ネット＞)
					String last_upd_dtm = (String)eKK0171A010CBSMSG1list[0].getMsgData().get("last_upd_dtm");
					work.put("last_upd_dtm", last_upd_dtm);
					// OT-2013-0000109 2013/02/14 ADD END

					// ********************************************** //
					// ISP認証IDパスワード再振出                      //
					// ********************************************** //
					callEKK0171C014SC(
							param,
							handle,
							eKK0171A010CBSMSG1list[0].getMsgData(),
							resultHash,
							work
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// SOD用マッピング
					mappingSodHash(
							sodDataList,
							eKK0171A010CBSMSG1list[0].getMsgData(),
							resultHash,
							svc_kei_no,
							JKKHakkoSODConstCC.SAIHAKKO_DIV_SAIHURI,
							JKKHakkoSODConstCC.SHORI_DIV_NINSHO_ID
					);

					// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
					// コース変更予約中の場合
					if (null != eKK0171A010CBSMSG1listCourseChgAf)
					{
						// 新料金コース用サービス契約内訳かどうか
						resultHash.put(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG, true);
						// SOD用マッピング
						// ※ISP認証IDパスワード再振出は締結済の内訳に対しても行っているため、
						// 　サービス契約内訳世代登録年月日時分秒はサービス提供中のレコードと同じ
						mappingSodHash(
								sodDataList,
								eKK0171A010CBSMSG1listCourseChgAf[0].getMsgData(),
								resultHash,
								svc_kei_no,
								JKKHakkoSODConstCC.SAIHAKKO_DIV_SAIHURI,
								JKKHakkoSODConstCC.SHORI_DIV_NINSHO_ID
						);
					}
					// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// 認証ＩＤＰＷ（初期化）                                             //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_ninsyo_pwd_reset"))
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// ISP認証IDパスワード初期化                      //
					// ********************************************** //
					callEKK0171C013SC(
							param,
							handle,
							eKK0171A010CBSMSG1list[0].getMsgData(),
							resultHash,
							work
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// SOD用マッピング
					mappingSodHash(
							sodDataList, 
							eKK0171A010CBSMSG1list[0].getMsgData(), 
							resultHash, 
							svc_kei_no, 
							JKKHakkoSODConstCC.SAIHAKKO_DIV_SHOKIKA, 
							JKKHakkoSODConstCC.SHORI_DIV_NINSHO_ID
					);

					// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
					// コース変更予約中の場合
					if (null != eKK0171A010CBSMSG1listCourseChgAf)
					{
						// 新料金コース用サービス契約内訳かどうか
						resultHash.put(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG, true);
						// SOD用マッピング
						// ※ISP認証IDパスワード再振出は締結済の内訳に対しても行っているため、
						// 　サービス契約内訳世代登録年月日時分秒はサービス提供中のレコードと同じ
						mappingSodHash(
								sodDataList,
								eKK0171A010CBSMSG1listCourseChgAf[0].getMsgData(),
								resultHash,
								svc_kei_no,
								JKKHakkoSODConstCC.SAIHAKKO_DIV_SHOKIKA,
								JKKHakkoSODConstCC.SHORI_DIV_NINSHO_ID
						);
					}
					// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// リモート操作用ＰＷ（初期化）処理判定                               //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_rmts_pwd_reset"))
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// 電話設定リモート操作用パスワード初期化         //
					// ********************************************** //
					callEKK0191C013SC(
							param,
							handle,
							eKK0191A010CBSMSG1list[0].getMsgData(),
							resultHash,
							work
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// SOD用マッピング
					mappingSodHash(
							sodDataList,
							eKK0191A010CBSMSG1list[0].getMsgData(),
							resultHash,
							svc_kei_no,
							JKKHakkoSODConstCC.SAIHAKKO_DIV_SHOKIKA,
							JKKHakkoSODConstCC.SHORI_DIV_RMT_SOSA
					);
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// ＰＯＰ ＰＷ（再振出）                                              //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_pop_pwd_re_hrids"))
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// POPパスワード再振出                            //
					// ********************************************** //
					callEKK0361C111SC(
							param,
							handle,
							eKK0361A010CBSMSG1list1[0].getMsgData(),
							work,
							resultHash
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);
					
					// OM-2013-00001590 2013/09/05
					// 再振出される同一サービスのオプション情報を保持
					for (int j = 0; j < svcKeiList.size(); j++)
					{
						// 同梱メールを取得するため、サービス契約マップを再取得
						HashMap mailAll = (HashMap)svcKeiList.get(j);

						// メール比較用サービス契約番号
						String mail_svc_kei_no = (String)mailAll.get("svc_kei_no");
						
						// POPIDPW再振出されるサービス契約のサービス契約番号と同梱対象メールのサービス契約を比較
						if (svc_kei_no.equals(mail_svc_kei_no)) {
							// POPIDPW再振出されるサービス契約の全メールオプションのオプションサービス契約
							
							// POPIDパスワード再振時専用SOD用マッピング
							mappingPopSaifuriSodHash(
									sodDataList,
									(String)mailAll.get("op_svc_kei_no_b001"),
									resultHash,
									svc_kei_no,
									JKKHakkoSODConstCC.SAIHAKKO_DIV_SAIHURI,
									JKKHakkoSODConstCC.SHORI_DIV_POP
							);
							
						}
					}
					
//					// SOD用マッピング
//					mappingSodHash(
//							sodDataList,
//							eKK0361A010CBSMSG1list1[0].getMsgData(),
//							resultHash,
//							svc_kei_no,
//							JKKHakkoSODConstCC.SAIHAKKO_DIV_SAIHURI,
//							JKKHakkoSODConstCC.SHORI_DIV_POP
//					);
					// OM-2013-00001590 2013/09/05
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// ＷＥＢ ＩＤＰＷ（再振出）                                          //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_web_id_pwd_re_hrids"))
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// WEBIDパスワード再振出                          //
					// ********************************************** //
					callEKK0361C112SC(
							param,
							handle,
							eKK0361A010CBSMSG1list2[0].getMsgData(),
							work,
							resultHash
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// IT2-2013-0000645 CMyHPの変更オーダ発行時にオーダ設定にレコードが無くて不整合エラー 2013/07/21 START
					// URLアカウントが設定されている場合（登録オーダ発行済）のみ、SOD発行依頼をする
					String urlAccount = (String)eKK0361A010CBSMSG1list2[0].getMsgData().get(EKK0361A010CBSMsg1List.URL_ACCOUNT);
					if (!isNull(urlAccount))
					{
						// SOD用マッピング
						mappingSodHash(
								sodDataList,
								eKK0361A010CBSMSG1list2[0].getMsgData(),
								resultHash,
								svc_kei_no,
								JKKHakkoSODConstCC.SAIHAKKO_DIV_SAIHURI,
								JKKHakkoSODConstCC.SHORI_DIV_WEB_ID
						);
					}
					// IT2-2013-0000645 CMyHPの変更オーダ発行時にオーダ設定にレコードが無くて不整合エラー 2013/07/21 END
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// ＰＯＰ ＰＷ（初期化）                                              //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し MOD START
//				// チェック同等フラグ 
//				boolean checkFlag = false;
//				
//				// 同サービス契約の場合、ひとつでもチェックが付いたら紐づくすべてのPOPPWの初期化を行う。
//				if (!"".equals(popPw_bf)) {
//					if (popPw_bf.equals((String)svcKeiMap.get("svc_kei_no"))) {
//						checkFlag = true;
//					}
//				}
//				
//				if ((Boolean)svcKeiMap.get("svc_kei_pop_pwd_reset") || checkFlag == true)
				if ((Boolean)svcKeiMap.get("svc_kei_pop_pwd_reset"))
				// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し MOD END
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// オプションサービス契約＜ISP＞情報変更          //
					// ********************************************** //
					callEKK0361C050SC(
							param,
							handle,
							eKK0361A010CBSMSG1list1[0].getMsgData(),
							eKK0351A010CBSMSG1list1[0].getMsgData(),
							work,
							resultHash
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// SOD用マッピング
					mappingSodHash(
							sodDataList,
							eKK0361A010CBSMSG1list1[0].getMsgData(),
							resultHash,
							svc_kei_no,
							JKKHakkoSODConstCC.SAIHAKKO_DIV_SHOKIKA,
							JKKHakkoSODConstCC.SHORI_DIV_POP
					);
					// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し DEL START
//					// 初期化したPOPPWのサービス契約番号を記憶
//					popPw_bf = (String)svcKeiMap.get("svc_kei_no");
					// 20130817 OM-2013-0000073 前回のOT-2013-0000697対応の戻し DEL END
				}

				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				//                                                                    //
				// ＷＥＢ ＩＤＰＷ（初期化）                                          //
				//                                                                    //
				// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //
				if ((Boolean)svcKeiMap.get("svc_kei_web_id_pwd_reset"))
				{
					resultHash = new HashMap<String, Object>();

					// ********************************************** //
					// オプションサービス契約＜ISP＞情報変更          //
					// ********************************************** //
					callEKK0361C050SC(
							param,
							handle,
							eKK0361A010CBSMSG1list2[0].getMsgData(),
							eKK0351A010CBSMSG1list2[0].getMsgData(),
							work,
							resultHash
					);

					// 更新日時分秒設定
					setSvc_upd_dtm_bf(resultHash);

					// IT2-2013-0000645 CMyHPの変更オーダ発行時にオーダ設定にレコードが無くて不整合エラー 2013/07/21 START
					// URLアカウントが設定されている場合（登録オーダ発行済）のみ、SOD発行依頼をする
					String urlAccount = (String)eKK0361A010CBSMSG1list2[0].getMsgData().get(EKK0361A010CBSMsg1List.URL_ACCOUNT);
					if (!isNull(urlAccount))
					{
						// SOD用マッピング
						mappingSodHash(
								sodDataList,
								eKK0361A010CBSMSG1list2[0].getMsgData(),
								resultHash,
								svc_kei_no,
								JKKHakkoSODConstCC.SAIHAKKO_DIV_SHOKIKA,
								JKKHakkoSODConstCC.SHORI_DIV_WEB_ID
						);
					}
					// IT2-2013-0000645 CMyHPの変更オーダ発行時にオーダ設定にレコードが無くて不整合エラー 2013/07/21 END
				}

				// 発行区分が「発行無」の場合は処理を行わない
				if (!HAKKO_DIV_0.equals(hakkoDiv))
				{
					// 手数料（サービス契約情報）にチェックがある場合は手数料発生
					HashMap<String, Object> icjknInMap = new HashMap<String, Object>(); 
					if (canAddIcjkn(svcKeiMap, svcKeiList, icjknInMap))
					{
// OM-929 2013/08/27 
//						// 請求先情報から選択された情報を取得する
//						svckeinoFromSeikyu = getSeikyuInfo(seikyList, work, hakkoDiv);
//
//						// 一時金設定登録
//						addIcjknSette(param, handle, work, svckeinoFromSeikyu, icjknInMap);
						// サービス契約一時金保管リストにデータが存在する場合
						if (svcKeiicjknList.size() > 0) { 
							if(!svcKeiicjknList.contains(svc_kei_no))
							{
								// 一時金登録対象のサービス契約番号を保管
								svcKeiicjknList.add(svc_kei_no);

								// 請求先情報から選択された情報を取得する
								svckeinoFromSeikyu = getSeikyuInfo(seikyList, work, hakkoDiv);

								// 一時金設定登録
								addIcjknSette(param, handle, work, svckeinoFromSeikyu, icjknInMap);
							}
						// 存在しない場合は即ち一回目である場合、は無条件に一時金を作成
						} else 
						{
							// 初回のサービス契約番号を保管
							svcKeiicjknList.add(svc_kei_no);

							// 請求先情報から選択された情報を取得する
							svckeinoFromSeikyu = getSeikyuInfo(seikyList, work, hakkoDiv);

							// 一時金設定登録
							addIcjknSette(param, handle, work, svckeinoFromSeikyu, icjknInMap);
						}
					}
//  OM-929 2013/08/27 
				}

				// 選択されている行の場合はマッピングを行う
				if ((Boolean)svcKeiMap.get("svc_kei_sel"))
				{
					// 通知書マッピング
					mappingTchisho(
							tchishoHash,
							svcKeiMap,
							work,
							svckeinoFromSeikyu,
							getSohusInfo(eoMblsofuList, work)
					);
					tchitargetList.add(tchishoHash);
				}

				// 利用場所が変更された場合は通知書リストにデータを追加する
				if (! usePlc.equals(usePlc_bf) && tchitargetList.size() > 0)
				{
					tchishoList.add(tchitargetList);
				}
				// 利用場所（前行）
				usePlc_bf = usePlc;
			}
		}
	}

	/**
	 * 整理番号発番付替部品CC呼出
	 * @param work
	 * @throws Throwable 
	 */
	private void callSeriNoHtbCC(
			SessionHandle handle,
			IRequestParameterReadWrite param,
			HashMap<String, Object> work
	) throws Throwable
	{
		// 通知書用ユーザ定義領域名設定
		String workFixedText = "trgt_data_list";
		// ユーザ定義領域作成
		createUserData(param, workFixedText);

		HashMap outMap = null;
		outMap = (HashMap)param.getData(workFixedText);

		JKKSeiriNoHtbChgCC seiriNoHtbCC = new JKKSeiriNoHtbChgCC();

		// サービス契約番号
		outMap.put("svc_kei_no", "");
		// SYSID
		outMap.put("sysid", (String)work.get(WORK_MAP_KEY_SYSID));
		// サービス契約回線内訳番号
		outMap.put("svc_kei_kaisen_ucwk_no", "");
		
		// OM-2013-0004019 2013/11/12 START
		// 異動区分
		outMap.put("ido_div", (String)work.get(WORK_MAP_KEY_IDO_DIV));
		// OM-2013-0004019 2013/11/12 END

		seiriNoHtbCC.seiriNoHtbChg(handle, param, workFixedText);
	}
	
	/**
	 * 進捗ステータス判定を行い、ステータスを返却する
	 * @return
	 */
	private String getPrgStat(HashMap work)
	{
		// 進捗ステータス
		String prgStatus = null;
		// 印刷方法
		String printWay = (String)work.get(WORK_MAP_KEY_PRINT_WAY);

		// 印刷方法判定
		if (PRINTWAY_0.equals(printWay))
		{
			// 「社内印刷」選択時
			prgStatus = PRG_STAT_9802;
		}
		else
		{
			// 「社外印刷」選択時
			prgStatus = PRG_STAT_9801;
		}

		return prgStatus;
	}
	
	/**
	 * 選択された請求先情報から一時金設定登録に必要な情報を取得する
	 * @param seikyList
	 * @return
	 */
	private String getSeikyuInfo(ArrayList seikyList, HashMap work, String hakkoDiv)
	{
		// 選択行index取得
		String index = (String)work.get("seiky_sel");
		String svc_kei_no = null;
//↓↓↓2013-05-31変更　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↓↓↓
		int selSeikyu = (-1);												//変
		if (null != index && index.matches("^[0-9]+$"))						//追
		{																	//追
			selSeikyu = Integer.parseInt(index);							//変
		}																	//追
		
		if (0 <= selSeikyu)													//追
		{																	//追
			// 請求情報から選択行の情報を取得する
			HashMap seikyuMap = (HashMap)seikyList.get(selSeikyu);
	
			if (seikyuMap.containsKey("svc_kei_no_seikyu"))
			{
				svc_kei_no = (String)seikyuMap.get("svc_kei_no_seikyu");
			}
		}																	//追
		else																//追
		{																	//追
			svc_kei_no = (String) work.get("svc_kei_no");					//追
		}																	//追
//↑↑↑2013-05-31変更　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↑↑↑
		
		return svc_kei_no;
	}
	
	/**
	 * 送付先住所情報から選択された住所情報を取得する
	 * @param sohusList
	 * @param work
	 * @return
	 */
	private HashMap<String, Object> getSohusInfo(ArrayList sohusList, HashMap work)
	{
		String index = (String)work.get(WORK_MAP_KEY_MBL_SEL);
		
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
//		int selSohusInfo = Integer.parseInt(index);
//		HashMap sofusInfo = (HashMap)sohusList.get(selSohusInfo);
		HashMap sofusInfo = new HashMap<String, Object>();
		
		if (null != index && !"".equals(index))
		{
			int selSohusInfo = Integer.parseInt(index);
			sofusInfo = (HashMap)sohusList.get(selSohusInfo);
		}
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END
		
		return sofusInfo;
	}
	
	/**
	 * 通知書マッピング
	 * @param tchishoHash
	 * @param svcKeiMap
	 * @param work
	 */
	private void mappingTchisho(
			HashMap<String, Object> tchishoHash,
			HashMap svcKeiMap,
			HashMap work,
			String seikyus_svc_kei_no,
			HashMap<String, Object> sohusInfo
	)
	{
		tchishoHash.put("func_code", FUNC_CD_1);

		// サービス契約番号
		tchishoHash.put("svc_kei_no", svcKeiMap.get("svc_kei_no"));

		// 料金グループコード
		tchishoHash.put("prc_grp_cd", svcKeiMap.get("svc_prc_grp_cd"));

		// SYSID
		tchishoHash.put("sysid", work.get(WORK_MAP_KEY_SYSID));

		// 通知書コード
		tchishoHash.put("tchisho_cd", tchisho_cd);

		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
		// 発行区分が「緊急発行」以外の場合
		if (!HAKKO_DIV_2.equals((String)work.get(WORK_MAP_KEY_HAKKO_DIV)))
		{
			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 DEL START
			// 通知書送付先コードは常に"1"を渡すよう変更　※このコード値に対して後続の処理で特に意味をなさないため
//			// 通知書送付先コード（1:契約者住所、2:機器配送先（機器送付先住所または、機器設置先住所））
//			// 機器提供サービス契約番号が設定されていない場合は、契約者住所へ送付
//			String mbl_kktk_svc_kei_no = (String)sohusInfo.get("mbl_kktk_svc_kei_no");
//			if (null == mbl_kktk_svc_kei_no || "".equals(mbl_kktk_svc_kei_no))
//			{
//				tchishoHash.put("tchisho_sohus_cd", SOHUS_CD_1);
//			}
//			else
//			{
//				tchishoHash.put("tchisho_sohus_cd", SOHUS_CD_2);
//			}
			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 DEL END

			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
			// 通知書送付先コードは常に"1"を渡すよう変更　※このコード値に対して後続の処理で特に意味をなさないため
			tchishoHash.put("tchisho_sohus_cd", SOHUS_CD_1);
			String mbl_kktk_svc_kei_no = (String)sohusInfo.get("mbl_kktk_svc_kei_no");
			// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END
			
			// 機器提供サービス契約番号
			tchishoHash.put("kktk_svc_kei_no", mbl_kktk_svc_kei_no);
		}
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END
		
		// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add Start
		// 再発行の場合
		if (HAKKO_DIV_1.equals((String)work.get(WORK_MAP_KEY_HAKKO_DIV)))
		{
			// 社外印刷の場合
			if (PRINTWAY_1.equals((String)work.get(WORK_MAP_KEY_PRINT_WAY))) {
				// サンキューレター同梱＝「無」の場合
				if (THNX_LETTER_0.equals((String)work.get(WORK_MAP_KEY_THNX_LETTER)))
				{
					tchishoHash.put("tchisho_hakko_cd", TCHISHO_HAKKO_CD_SAIHAKKO);
				}
				// サンキューレター同梱＝「有」の場合
				else if (THNX_LETTER_1.equals((String)work.get(WORK_MAP_KEY_THNX_LETTER)))
				{
					tchishoHash.put("tchisho_hakko_cd", TCHISHO_HAKKO_CD_LETTER);
				}
			}
		}
		// 20141023 ANK-2332-00-00, ANK-2333-00-00 Add End
		

		// 請求先サービス契約番号（選択された請求先情報のサービス契約番号）
		tchishoHash.put("seikyus_svc_kei_no", seikyus_svc_kei_no);

		// 申込明細番号
		tchishoHash.put("mskm_dtl_no", work.get(WORK_MAP_KEY_MSKM_DTL_NO));

//↓↓↓2013-05-31変更　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↓↓↓
		// 利用場所（進捗登録で使用するため）
		tchishoHash.put("use_plc", (String)svcKeiMap.get("use_plc"));
//↑↑↑2013-05-31変更　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↑↑↑
		
		// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD START
		// 住所情報などの連携
		String idTchishoRenkLinked = (String)sohusInfo.get("id_tchisho_renk_linked");
		String[] idTchishoRenk = idTchishoRenkLinked.split(ID_TCHISHO_RENK_LINKED_SEPERATOR);
		String[] mapKeys = {
				"tchisho_sohus_nm",        // 通知書送付先名
				"tchisho_sohus_ad_cd",     // 通知書送付先住所コード
				"tchisho_sohus_pcd",       // 通知書送付先郵便番号
				"tchisho_sohus_state_nm",  // 通知書送付先都道府県名
				"tchisho_sohus_city_nm",   // 通知書送付先市区町村名
				"tchisho_sohus_oaztsu_nm", // 通知書送付先大字通称名
				"tchisho_sohus_azcho_nm",  // 通知書送付先字丁目名
				"tchisho_sohus_bnchigo",   // 通知書送付先番地号
				"tchisho_sohus_adrttm",    // 通知書送付先住所補記・建物名
				"tchisho_sohus_adrrm",     // 通知書送付先住所補記・部屋番号
				"tchisho_sohus_telno",     // 通知書送付先電話番号
// OM-2014-0003905 2014/12/29 ADD START
				"tchisho_ad_man_input_flg",// 通知書送付先手動フラグ
// OM-2014-0003905 2014/12/29 ADD END
		};
		
		if (!(ID_TCHISHO_RENK_LINKED_SEPERATOR + "\\0").equals(idTchishoRenkLinked))		// 連携された文字列に終端文字しか入っていない→JKKIdPwdShkkaSaifurHakkoShkDspCC側の処理を確認
		{
			for (int i=0; i < mapKeys.length; i++)
			{
				if (idTchishoRenk.length > i) {
					tchishoHash.put(mapKeys[i],         idTchishoRenk[i]);
				} else {
					tchishoHash.put(mapKeys[i],         "");
				}
			}
		}
		
		// 通知書送付先名は常に契約者名を渡す
		String custNm = (String)work.get(WORK_MAP_KEY_CUST_NM);
		tchishoHash.put("tchisho_sohus_nm", custNm);
		// 対象の住所に紐づく電話番号が未入力だった場合、契約者電話番号で埋める
		String telNo = (String)tchishoHash.get("tchisho_sohus_telno");
		if (telNo == null || "".equals(telNo))
		{
			tchishoHash.put("tchisho_sohus_telno", (String)work.get(WORK_MAP_KEY_KEISHA_TELNO));
		}
		// ANK-1946-00-00 ID通知書送付先情報について、様々な住所を選べるようにする 2014/04/03 藤田 ADD END
	}
	
	// ※publicメソッドなので念のために残すが、editMapTchishoメソッドは使用されていない
	/**
	 * 通知書CC上りマッピング
	 * 
	 * @param param
	 * @param workFixedText
	 * @param inHash
	 * @throws RequestParameterException
	 */
	public HashMap<String, Object> editMapTchisho(IRequestParameterReadWrite param, String workFixedText, HashMap<String, Object> inHash)
			throws RequestParameterException
	{

		// 対象データ
		HashMap<String, Object> workMap = new HashMap<String, Object>();

		// サービス契約番号
		workMap.put("svc_kei_no", inHash.get("svc_kei_no"));

		// 料金グループコード
		workMap.put("prc_grp_cd", inHash.get("prc_grp_cd"));

		// ＳＹＳＩＤ
		workMap.put("sysid", inHash.get("sysid"));

		// 通知書コード
		workMap.put("tchisho_cd", inHash.get("tchisho_cd"));

		// 通知書送付先コード
		workMap.put("tchisho_sohus_cd", inHash.get("tchisho_sohus_cd"));

		// 機器提供サービス契約番号
		workMap.put("kktk_svc_kei_no", inHash.get("kktk_svc_kei_no"));

		// 請求先サービス契約番号
		workMap.put("seikyus_svc_kei_no", inHash.get("seikyus_svc_kei_no"));

		return workMap;
	}
	
	//************************************************************
	//                      S/IF呼出
	//***********************START********************************
	
	/**
	 * お客様一意照会SIFを呼び出し
	 * @param param リクエストパラメータ
	 * @param handle セッションハンドル
	 * @param inHash 条件用Hash
	 * @param resultHash 結果のハッシュ
	 * @return サービスインターフェースのリターンコード
	 * @throws RequestParameterException, SCException 例外時にスローされます
	 */
	private int callECK0011A010SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0011A010への呼び出しパラメータ設定
		template = new CAANMsg(ECK0011A010CBSMsg.class.getName());
		mappingECK0011A010InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	// IT2-2013-0000677 2013/08/06 START
	/**
	 * グループ一意照会SIFを呼び出し
	 * @param param リクエストパラメータ
	 * @param handle セッションハンドル
	 * @param inHash 条件用Hash
	 * @param resultHash 結果のハッシュ
	 * @return サービスインターフェースのリターンコード
	 * @throws RequestParameterException, SCException 例外時にスローされます
	 */
	private int callECK0111A010SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0111A010への呼び出しパラメータ設定
		template = new CAANMsg(ECK0111A010CBSMsg.class.getName());
		mappingECK0111A010CBSMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);

		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	// IT2-2013-0000677 2013/08/06 END
	
	// 2013-03-19 OT-2013-0000308 DEL START
//	/**
//	 * お客様＜個人＞一意照会SIFを呼び出し
//	 * @param param リクエストパラメータ
//	 * @param handle セッションハンドル
//	 * @param inHash 条件用Hash
//	 * @param resultHash 結果のハッシュ
//	 * @return サービスインターフェースのリターンコード
//	 * @throws RequestParameterException, SCException 例外時にスローされます
//	 */
//	private int callECK0021A010SC(IRequestParameterReadWrite param, SessionHandle handle,
//			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
//	{
//		HashMap<String, Object> sIFRequest = null;
//		CAANMsg template = null;
//		ServiceComponentRequestInvoker scCall = null;
//		Map<?, ?> sIFResult = null;
//		int status = 0;
//
//		// サービスIF共通の情報を設定
//		sIFRequest = editInMsgCmn(param);
//
//		// ECK0021A010への呼び出しパラメータ設定
//		template = new CAANMsg(ECK0021A010CBSMsg.class.getName());
//		mappingECK0021A010InMsg(template, inHash);
//		editBasicCmn(param, template);
//
//		// リクエスト用クラスの設定
//		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
//		{
//			template
//		});
//
//		// SC呼び出しクラスの生成
//		scCall = new ServiceComponentRequestInvoker();
//
//		// SIFの呼び出し
//		sIFResult = scCall.run(sIFRequest, handle);
//
//		// エラーマッピング
//		editResultRP(sIFResult, param);
//		// エラーチェック処理
//		errChk(sIFResult);
//
//		// SIFの実行結果を設定
//		resultHash.putAll(getWorkCAANMsg(sIFResult));
//
//		// ステータスコードの取得
//		status = template.getInt(JCMConstants.STATUS_INT_KEY);
//
//		return status;
//	}
	// 2013-03-19 OT-2013-0000308 DEL END
	
	/**
	 * 初期eoID再振出SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param sysid
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0011C012SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap eCK0011A010,
			HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0011C012への呼び出しパラメータ設定
		template = new CAANMsg(ECK0011C012CBSMsg.class.getName());
		mappingECK0011C012InMsg(template, eCK0011A010, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** 初期eoIDパスワード再振出SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0011C013SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> eCK0011A010, HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0011C013への呼び出しパラメータ設定
		template = new CAANMsg(ECK0011C013CBSMsg.class.getName());
		mappingECK0011C013InMsg(template, eCK0011A010, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * eoID/パスワード初期化SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param sysid
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0011C020SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap eCK0011A010,
			// 2013-03-19 OT-2013-0000308 MOD START
			//HashMap<String, Object> resultHash, String funcCd) throws Throwable
			HashMap<String, Object> resultHash, String funcCd, String initSbtCd) throws Throwable
			// 2013-03-19 OT-2013-0000308 MOD END
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0011C020への呼び出しパラメータ設定
		template = new CAANMsg(ECK0011C020CBSMsg.class.getName());
		// 2013-03-19 OT-2013-0000308 MOD START
		//mappingECK0011C020InMsg(template, eCK0011A010, funcCd);
		mappingECK0011C020InMsg(template, eCK0011A010, funcCd, initSbtCd);
		// 2013-03-19 OT-2013-0000308 MOD END
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	// 2013-03-19 OT-2013-0000308 DEL START
//	/**
//	 * 	お客様＜個人＞内容変更SIF呼び出し
//	 * 
//	 * @param param
//	 * @param handle
//	 * @param paramMap
//	 * @param sysid
//	 * @param resultHash
//	 * @return
//	 * @throws RequestParameterException
//	 * @throws SCException
//	 */
//	private int callECK0021C010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap custMap,
//			HashMap<String, Object> resultHash, String funcCd, HashMap<String, Object> eCK0021A010) throws Throwable
//	{
//		HashMap<String, Object> sIFRequest = null;
//		CAANMsg template = null;
//		ServiceComponentRequestInvoker scCall = null;
//		Map<?, ?> sIFResult = null;
//		int status = 0;
//
//		// サービスIF共通の情報を設定
//		sIFRequest = editInMsgCmn(param);
//
//		// ECK0021C010への呼び出しパラメータ設定
//		template = new CAANMsg(ECK0021C010CBSMsg.class.getName());
//		mappingECK0021C010InMsg(template, custMap, funcCd, eCK0021A010);
//		editBasicCmn(param, template);
//
//		// リクエスト用クラスの設定
//		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
//		{
//			template
//		});
//
//		// SC呼び出しクラスの生成
//		scCall = new ServiceComponentRequestInvoker();
//
//		// SIFの呼び出し
//		sIFResult = scCall.run(sIFRequest, handle);
//		// エラーマッピング
//		editResultRP(sIFResult, param);
//		// エラーチェック処理
//		errChk(sIFResult);
//
//		// SIFの実行結果を設定
//		resultHash.putAll(getWorkCAANMsg(sIFResult));
//
//		// ステータスコードの取得
//		status = template.getInt(JCMConstants.STATUS_INT_KEY);
//
//		return status;
//	}
//	
//	/**
//	 * 	お客様<法人>内容変更SIF呼び出し
//	 * 
//	 * @param param
//	 * @param handle
//	 * @param paramMap
//	 * @param sysid
//	 * @param resultHash
//	 * @return
//	 * @throws RequestParameterException
//	 * @throws SCException
//	 */
//	private int callECK0031C010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap custMap,
//			HashMap<String, Object> resultHash, String funcCd) throws Throwable
//	{
//		HashMap<String, Object> sIFRequest = null;
//		CAANMsg template = null;
//		ServiceComponentRequestInvoker scCall = null;
//		Map<?, ?> sIFResult = null;
//		int status = 0;
//
//		// サービスIF共通の情報を設定
//		sIFRequest = editInMsgCmn(param);
//
//		// ECK0031C010への呼び出しパラメータ設定
//		template = new CAANMsg(ECK0031C010CBSMsg.class.getName());
//		mappingECK0031C010InMsg(template, custMap, funcCd);
//		editBasicCmn(param, template);
//
//		// リクエスト用クラスの設定
//		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
//		{
//			template
//		});
//
//		// SC呼び出しクラスの生成
//		scCall = new ServiceComponentRequestInvoker();
//
//		// SIFの呼び出し
//		sIFResult = scCall.run(sIFRequest, handle);
//		// エラーマッピング
//		editResultRP(sIFResult, param);
//		// エラーチェック処理
//		errChk(sIFResult);
//
//		// SIFの実行結果を設定
//		resultHash.putAll(getWorkCAANMsg(sIFResult));
//
//		// ステータスコードの取得
//		status = template.getInt(JCMConstants.STATUS_INT_KEY);
//
//		return status;
//	}
	// 2013-03-19 OT-2013-0000308 DEL END
	
	/**
	 * ファミリー会員グループ一覧照会（SYSID）SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param sysid
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0111B002SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap work,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0111B002への呼び出しパラメータ設定
		template = new CAANMsg(ECK0111B002CBSMsg.class.getName());
		mappingECK0111B002InMsg(template, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** グループ入会コード再振出SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0111C011SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> inHash, HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0111C011への呼び出しパラメータ設定
		template = new CAANMsg(ECK0111C011CBSMsg.class.getName());
		mappingECK0111C011InMsg(template, inHash, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** グループ入会コードパスワード再振出SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callECK0111C012SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> inHash, HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// ECK0111C012への呼び出しパラメータ設定
		template = new CAANMsg(ECK0111C012CBSMsg.class.getName());
		mappingECK0111C012InMsg(template, inHash, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 申込内容承認登録SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0011D020SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0011D020への呼び出しパラメータ設定
		template = new CAANMsg(EKK0011D020CBSMsg.class.getName());
		mappingEKK0011D020InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 申込明細一意照会SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0021A010SC(IRequestParameterReadWrite param, SessionHandle handle, String mskmDtlNo,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0021A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0021A010CBSMsg.class.getName());
		mappingEKK0021A010InMsg(template, mskmDtlNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 申込明細照査・後続業務依頼SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0021C060SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> work, HashMap<String, Object> resultHash)
			throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0021C060への呼び出しパラメータ設定
		template = new CAANMsg(EKK0021C060CBSMsg.class.getName());
		mappingEKK0021C060InMsg(template, inHash, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * サービス契約一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0081A010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap paramMap,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0081A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0081A010CBSMsg.class.getName());
		mappingEKK0081A010InMsg(template, paramMap);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * サービス契約内訳一覧照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0161B004SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap paramMap,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0161B004への呼び出しパラメータ設定
		template = new CAANMsg(EKK0161B004CBSMsg.class.getName());
		mappingEKK0161B004InMsg(template, paramMap);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * サービス契約内訳＜eo光ネット＞一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0171A010SC(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiUcwk_no,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0171A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0171A010CBSMsg.class.getName());
		mappingEKK0171A010InMsg(template, svcKeiUcwk_no);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** ISP認証IDパスワード初期化SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0171C013SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> inHash, HashMap<String, Object> resultHash, HashMap<String, Object> work) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0171C013への呼び出しパラメータ設定
		template = new CAANMsg(EKK0171C013CBSMsg.class.getName());
		mappingEKK0171C013InMsg(template, inHash, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** ISP認証IDパスワード再振出SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0171C014SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> inHash, HashMap<String, Object> resultHash, HashMap<String, Object> work) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0171C014への呼び出しパラメータ設定
		template = new CAANMsg(EKK0171C014CBSMsg.class.getName());
		mappingEKK0171C014InMsg(template, inHash, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * サービス契約内訳＜eo光電話＞一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0191A010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap paramMap,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0191A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0191A010CBSMsg.class.getName());
		mappingEKK0191A010InMsg(template, paramMap);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/** 電話設定リモート操作用パスワード初期化SIFを呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEKK0191C013SC(IRequestParameterReadWrite param, SessionHandle handle,
			 HashMap<String, Object> inHash, HashMap<String, Object> resultHash, HashMap<String, Object> work) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0191C013への呼び出しパラメータ設定
		template = new CAANMsg(EKK0191C013CBSMsg.class.getName());
		mappingEKK0191C013InMsg(template, inHash, work);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * オプションサービス契約一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0351A010SC(IRequestParameterReadWrite param, SessionHandle handle, String opSvcKeiNo,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0351A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0351A010CBSMsg.class.getName());
		mappingEKK0351A010InMsg(template, opSvcKeiNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * オプションサービス契約＜ISP＞一意照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0361A010SC(IRequestParameterReadWrite param, SessionHandle handle, String opSvcKeiNo,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0361A010への呼び出しパラメータ設定
		template = new CAANMsg(EKK0361A010CBSMsg.class.getName());
		mappingEKK0361A010InMsg(template, opSvcKeiNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * オプションサービス契約＜ISP＞情報更新SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0361C050SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> eKK0361A010Hash, HashMap<String, Object> eKK0351A010Hash,
			HashMap<String, Object> work, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0361C050への呼び出しパラメータ設定
		template = new CAANMsg(EKK0361C050CBSMsg.class.getName());
		mappingEKK0361C050InMsg(template, work, eKK0361A010Hash, eKK0351A010Hash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * POPパスワードSIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0361C111SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> eKK0361C111Hash, HashMap<String, Object> work, HashMap<String, Object> resultHash)
			throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0361C111への呼び出しパラメータ設定
		template = new CAANMsg(EKK0361C111CBSMsg.class.getName());
		mappingEKK0361C111InMsg(template, work, eKK0361C111Hash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}

	/**
	 * POPパスワードSIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK0361C112SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap<String, Object> eKK0361C112Hash,
			HashMap<String, Object> work, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0361C112への呼び出しパラメータ設定
		template = new CAANMsg(EKK0361C112CBSMsg.class.getName());
		mappingEKK0361C112InMsg(template, work, eKK0361C112Hash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 一時金設定登録SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK1021D010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap paramMap,
			HashMap<String, Object> resultHash, String svc_kei_no, HashMap<String, Object> eKK1021C011) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1021D010への呼び出しパラメータ設定
		template = new CAANMsg(EKK1021D010CBSMsg.class.getName());
		mappingEKK1021D010InMsg(template, paramMap, svc_kei_no, eKK1021C011);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 事務手数料判定結果取得SIF呼び出し
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK1021C011SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap work,
			HashMap<String, Object> svcKeiMap, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1021C011への呼び出しパラメータ設定
		template = new CAANMsg(EKK1021C011CBSMsg.class.getName());
		mappingEKK1021C011InMsg(template, work, svcKeiMap);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * 進捗登録SIF呼び出し
	 * @param	param
	 * @param	handle
	 * @param	resultHash
	 * @param	work
	 * @param	prgStat
	 * @param	cdDivNm
	 * @param	idoDtm
	 * @return
	 * @throws Throwable
	 */
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*	private int callEKK1091D010SC(					*/
/*			IRequestParameterReadWrite param,		*/
/*			SessionHandle handle,					*/
/*			HashMap<String, Object> resultHash,		*/
/*			HashMap<String, Object> work,			*/
/*			String svcKeiNo,						*/
/*			String prgStat,							*/
/*			String cdDivNm,							*/
/*			String idoDtm							*/
/*	) throws Throwable								*/
	private int callEKK1091D010SC(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String, Object> resultHash,
			HashMap<String, Object> work,
			String svcKeiNo,
			String prgStat,
			String cdDivNm,
			String idoDtm,
			String shsAd
	) throws Throwable
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1091D010への呼び出しパラメータ設定
		template = new CAANMsg(EKK1091D010CBSMsg.class.getName());
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加開始 */
/*		mappingEKK1091D010InMsg(template, work, svcKeiNo, prgStat, cdDivNm, idoDtm);	*/
		mappingEKK1091D010InMsg(template, work, svcKeiNo, prgStat, cdDivNm, idoDtm, shsAd);
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加終了 */
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]{ template });

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
//	/**
//	 * サービス契約＜eo光電話＞一意照会
//	 * 
//	 * @param param
//	 * @param handle
//	 * @param inHash
//	 * @param resultHash
//	 * @throws Throwable
//	 */
//	private int callEKK0111A010SC(IRequestParameterReadWrite param, SessionHandle handle,
//			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
//	{
//		HashMap<String, Object> sIFRequest = null;
//		CAANMsg template = null;
//		ServiceComponentRequestInvoker scCall = null;
//		Map<?, ?> sIFResult = null;
//		int status = 0;
//
//		// サービスIF共通の情報を設定
//		sIFRequest = editInMsgCmn(param);
//
//		// EKK0111A010への呼び出しパラメータ設定
//		template = new CAANMsg(EKK0111A010CBSMsg.class.getName());
//		mappingEKK0111A010InMsg(template, inHash);
//		editBasicCmn(param, template);
//
//		// リクエスト用クラスの設定
//		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
//		{
//			template
//		});
//
//		// SC呼び出しクラスの生成
//		scCall = new ServiceComponentRequestInvoker();
//
//		// SIFの呼び出し
//		sIFResult = scCall.run(sIFRequest, handle);
//		// エラーマッピング
//		editResultRP(sIFResult, param);
//		// エラーチェック処理
//		errChk(sIFResult);
//		// SIFの実行結果を設定
//		resultHash.putAll(getWorkCAANMsg(sIFResult));
//
//		// ステータスコードの取得
//		status = template.getInt(JCMConstants.STATUS_INT_KEY);
//
//		return status;
//	}
//	
//	/**
//	 * サービス契約＜eo光電話＞一意照会
//	 * 
//	 * @param param
//	 * @param handle
//	 * @param inHash
//	 * @param resultHash
//	 * @throws Throwable
//	 */
//	private int callEKK0341B002SC(IRequestParameterReadWrite param, SessionHandle handle,
//			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
//	{
//		HashMap<String, Object> sIFRequest = null;
//		CAANMsg template = null;
//		ServiceComponentRequestInvoker scCall = null;
//		Map<?, ?> sIFResult = null;
//		int status = 0;
//
//		// サービスIF共通の情報を設定
//		sIFRequest = editInMsgCmn(param);
//
//		// EKK0341B002への呼び出しパラメータ設定
//		template = new CAANMsg(EKK0341B002CBSMsg.class.getName());
//		mappingEKK0341B002InMsg(template, inHash);
//		editBasicCmn(param, template);
//
//		// リクエスト用クラスの設定
//		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
//		{
//			template
//		});
//
//		// SC呼び出しクラスの生成
//		scCall = new ServiceComponentRequestInvoker();
//
//		// SIFの呼び出し
//		sIFResult = scCall.run(sIFRequest, handle);
//		// エラーマッピング
//		editResultRP(sIFResult, param);
//		// エラーチェック処理
//		errChk(sIFResult);
//		// SIFの実行結果を設定
//		resultHash.putAll(getWorkCAANMsg(sIFResult));
//
//		// ステータスコードの取得
//		status = template.getInt(JCMConstants.STATUS_INT_KEY);
//
//		return status;
//	}
	
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD START
	/**
	 * コード名称管理一意照会
	 * 
	 * @param param
	 * @param handle
	 * @param inHash
	 * @param resultHash
	 * @throws Throwable
	 */
	private int callEZM0171A010SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0171A010への呼び出しパラメータ設定
		template = new CAANMsg(EZM0171A010CBSMsg.class.getName());
		mappingEZM0171A010InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD END

	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
	/**
	 * サービス契約一覧照会（SYSID）2
	 * 
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param inHash 設定条件
	 * @param resultHash SIF実行結果格納用
	 * @throws Throwable 例外が発生した場合
	 */
	private int callEKK0081B004SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0081B004への呼び出しパラメータ設定
		template = new CAANMsg(EKK0081B004CBSMsg.class.getName());
		mappingEKK0081B004InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}

	/**
	 * サービス対象機器提供サービス契約一覧照会
	 * 
	 * @param param モデルグループ、コントロールマップを含むパラメータオブジェクト
	 * @param handle セッションマネージャなどを持ったハンドル
	 * @param inHash 設定条件
	 * @param resultHash SIF実行結果格納用
	 * @throws Throwable 例外が発生した場合
	 */
	private int callEKK0341B022SC(IRequestParameterReadWrite param, SessionHandle handle,
			HashMap<String, Object> inHash, HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK0341B022への呼び出しパラメータ設定
		template = new CAANMsg(EKK0341B022CBSMsg.class.getName());
		mappingEKK0341B022InMsg(template, inHash);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);
		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END

	//**********************************************************
	//                      S/IF呼出
	//***********************END********************************
	
	//************************************************************
	//                  S/IF 項目マッピング
	//***********************START********************************
	/**
	 * templateに対してECK0011A010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingECK0011A010InMsg(CAANMsg template, HashMap<String, Object> inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0011A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0011A010CBSMsg.TEMPLATEID, ECK0011A010);

		// 機能コード--お客様一意照会
		template.set(ECK0011A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// ＫＥＹ＿ＳＹＳＩＤ
		template.set(ECK0011A010CBSMsg.KEY_SYSID, inHash.get("sysid"));

		// ＫＥＹ＿予約適用年月日
		template.set(ECK0011A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
	}
	
	// IT2-2013-0000677 2013/08/06 START
	/**
	 * templateに対してECK0011A010の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingECK0111A010CBSMsg(CAANMsg template, HashMap<String, Object> inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0111A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0111A010CBSMsg.TEMPLATEID, ECK0111A010);

		// 機能コード2
		template.set(ECK0111A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// KEY_GRP_CD
		template.set(ECK0111A010CBSMsg.KEY_GRP_CD, inHash.get("grp_cd"));
	}
	// IT2-2013-0000677 2013/08/06 END
	
	//  2013-03-19 OT-2013-0000308 DEL START
//	/**
//	 * templateに対してECK0021A010の条件に関する部分を設定する
//	 * @param template 条件の設定先
//	 * @param inHash 設定条件
//	 * @param requestParam アプリ固有のパラメータ
//	 */
//	private void mappingECK0021A010InMsg(CAANMsg template, HashMap<String, Object> inHash)
//	{
//		// 全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new ECK0021A010CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(ECK0021A010CBSMsg.TEMPLATEID, ECK0021A010);
//
//		// 機能コード--お客様一意照会
//		template.set(ECK0021A010CBSMsg.FUNC_CODE, FUNC_CD_2);
//
//		// ＫＥＹ＿ＳＹＳＩＤ
//		template.set(ECK0021A010CBSMsg.KEY_SYSID, inHash.get("sysid"));
//
//	}
	//  2013-03-19 OT-2013-0000308 DEL END
	
	/**
	 * templateに対してECK0011C012の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingECK0011C012InMsg(CAANMsg template, HashMap<String, Object> inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0011C012CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0011C012CBSMsg.TEMPLATEID, ECK0011C012);

		// 機能コード--初期eoID再振出
		template.set(ECK0011C012CBSMsg.FUNC_CODE, funcCd);

		// ＳＹＳＩＤ
		template.set(ECK0011C012CBSMsg.SYSID, inHash.get("sysid"));

		// 更新年月日時分秒（更新前）
		template.set(ECK0011C012CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
	}
	
	/**
	 * templateに対してECK0011C013の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingECK0011C013InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0011C013CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0011C013CBSMsg.TEMPLATEID, ECK0011C013);

		// 機能コード--初期eoIDパスワード再振出
		template.set(ECK0011C013CBSMsg.FUNC_CODE, funcCd);

		// ＳＹＳＩＤ
		template.set(ECK0011C013CBSMsg.SYSID, inHash.get("sysid"));

		// 更新年月日時分秒(更新前)
		template.set(ECK0011C013CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
	}
	
	// 2013-03-19 OT-2013-0000308 DEL START
//	/**
//	 * templateに対してECK0021C010の条件に関する部分を設定する
//	 * 
//	 * @param template
//	 * @param custMap
//	 * @param funcCd
//	 */
//	private void mappingECK0021C010InMsg(CAANMsg template, HashMap custMap, String funcCd, HashMap eCK0021A010)
//	{
//		// 全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new ECK0021C010CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(ECK0021C010CBSMsg.TEMPLATEID, ECK0021C010);
//
//		// 機能コード--お客様＜個人＞内容変更
//		template.set(ECK0021C010CBSMsg.FUNC_CODE, funcCd);
//
//		// ＳＹＳＩＤ
//		template.set(ECK0021C010CBSMsg.SYSID, custMap.get("sysid"));
//
//		// 予約適用年月日
//		template.set(ECK0021C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
//
//		// 会員ＩＳＰ決済状態コード
//		template.set(ECK0021C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, custMap.get("mmb_isp_kssai_stat_cd"));
//
//		// 削除対象外フラグ
//		template.set(ECK0021C010CBSMsg.DEL_TRGT_GAI_FLG, custMap.get("del_trgt_gai_flg"));
//
//		// 更新年月日時分秒(更新前)
//		template.set(ECK0021C010CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
//		
//		// お客様
//		template.set(ECK0021C010CBSMsg.CUST_NM , custMap.get(ECK0011A010CBSMsg1List.CUST_NM));
//		template.set(ECK0021C010CBSMsg.CUST_KANA , custMap.get(ECK0011A010CBSMsg1List.CUST_KANA));
//		template.set(ECK0021C010CBSMsg.CUST_SEX_CD , custMap.get(ECK0011A010CBSMsg1List.CUST_SEX_CD));
//		template.set(ECK0021C010CBSMsg.CUST_BIRTHD , custMap.get(ECK0011A010CBSMsg1List.CUST_BIRTHD));
//		template.set(ECK0021C010CBSMsg.NM_KISHO , custMap.get(ECK0011A010CBSMsg1List.NM_KISHO));
//		template.set(ECK0021C010CBSMsg.CUST_CFM_BIKO , custMap.get(ECK0011A010CBSMsg1List.CUST_CFM_BIKO));
//		template.set(ECK0021C010CBSMsg.KEISHA_AD_CD , custMap.get(ECK0011A010CBSMsg1List.KEISHA_AD_CD));
//		template.set(ECK0021C010CBSMsg.KEISHA_PCD , custMap.get(ECK0011A010CBSMsg1List.KEISHA_PCD));
//		template.set(ECK0021C010CBSMsg.KEISHA_STATE_NM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_STATE_NM));
//		template.set(ECK0021C010CBSMsg.KEISHA_CITY_NM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_CITY_NM));
//		template.set(ECK0021C010CBSMsg.KEISHA_OAZTSU_NM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_OAZTSU_NM));
//		template.set(ECK0021C010CBSMsg.KEISHA_AZCHO_NM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_AZCHO_NM));
//		template.set(ECK0021C010CBSMsg.KEISHA_BNCHIGO , custMap.get(ECK0011A010CBSMsg1List.KEISHA_BNCHIGO));
//		template.set(ECK0021C010CBSMsg.KEISHA_ADRTTM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_ADRTTM));
//		template.set(ECK0021C010CBSMsg.KEISHA_ADRRM , custMap.get(ECK0011A010CBSMsg1List.KEISHA_ADRRM));
//		template.set(ECK0021C010CBSMsg.KEISHA_TELNO , custMap.get(ECK0011A010CBSMsg1List.KEISHA_TELNO));
//		template.set(ECK0021C010CBSMsg.CUST_RANK_CD , custMap.get(ECK0011A010CBSMsg1List.CUST_RANK_CD));
//		template.set(ECK0021C010CBSMsg.RRK_WAY_CD , custMap.get(ECK0011A010CBSMsg1List.RRK_WAY_CD));
//		template.set(ECK0021C010CBSMsg.RRK_WAY_HOKI , custMap.get(ECK0011A010CBSMsg1List.RRK_WAY_HOKI));
//		template.set(ECK0021C010CBSMsg.CONT_CUST_NM , custMap.get(ECK0011A010CBSMsg1List.CONT_CUST_NM));
//		template.set(ECK0021C010CBSMsg.CONT_CUST_KANA , custMap.get(ECK0011A010CBSMsg1List.CONT_CUST_KANA));
//		template.set(ECK0021C010CBSMsg.CONT_CUST_SEX_CD , custMap.get(ECK0011A010CBSMsg1List.CONT_CUST_SEX_CD));
//		template.set(ECK0021C010CBSMsg.CONT_CUST_BIRTHD , custMap.get(ECK0011A010CBSMsg1List.CONT_CUST_BIRTHD));
//		template.set(ECK0021C010CBSMsg.CONT_AD_CD , custMap.get(ECK0011A010CBSMsg1List.CONT_AD_CD));
//		template.set(ECK0021C010CBSMsg.CONT_PCD , custMap.get(ECK0011A010CBSMsg1List.CONT_PCD));
//		template.set(ECK0021C010CBSMsg.CONT_STATE_NM , custMap.get(ECK0011A010CBSMsg1List.CONT_STATE_NM));
//		template.set(ECK0021C010CBSMsg.CONT_CITY_NM , custMap.get(ECK0011A010CBSMsg1List.CONT_CITY_NM));
//		template.set(ECK0021C010CBSMsg.CONT_OAZTSU_NM , custMap.get(ECK0011A010CBSMsg1List.CONT_OAZTSU_NM));
//		template.set(ECK0021C010CBSMsg.CONT_AZCHO_NM , custMap.get(ECK0011A010CBSMsg1List.CONT_AZCHO_NM));
//		template.set(ECK0021C010CBSMsg.CONT_BNCHIGO , custMap.get(ECK0011A010CBSMsg1List.CONT_BNCHIGO));
//		template.set(ECK0021C010CBSMsg.CONT_ADRTTM , custMap.get(ECK0011A010CBSMsg1List.CONT_ADRTTM));
//		template.set(ECK0021C010CBSMsg.CONT_ADRRM , custMap.get(ECK0011A010CBSMsg1List.CONT_ADRRM));
//		template.set(ECK0021C010CBSMsg.CONT_AD_BNKT_STA_PST , custMap.get(ECK0011A010CBSMsg1List.CONT_AD_BNKT_STA_PST));
//		template.set(ECK0021C010CBSMsg.NAIHAN_GAIHAN_CD , custMap.get(ECK0011A010CBSMsg1List.NAIHAN_GAIHAN_CD));
//		template.set(ECK0021C010CBSMsg.NAIHAN_COMP_SKBT_CD , custMap.get(ECK0011A010CBSMsg1List.NAIHAN_COMP_SKBT_CD));
//		template.set(ECK0021C010CBSMsg.NECESSARY_HOJO_CD , custMap.get(ECK0011A010CBSMsg1List.NECESSARY_HOJO_CD));
//		template.set(ECK0021C010CBSMsg.EONETID_MI_IKO_FLG , custMap.get(ECK0011A010CBSMsg1List.EONETID_MI_IKO_FLG));
//		template.set(ECK0021C010CBSMsg.LOGIN_NINSHO_KH , custMap.get(ECK0011A010CBSMsg1List.LOGIN_NINSHO_KH));
//		template.set(ECK0021C010CBSMsg.CUST_TKJK_CD , custMap.get(ECK0011A010CBSMsg1List.CUST_TKJK_CD));
//		template.set(ECK0021C010CBSMsg.LOGIN_NINSHO_STP_YMD , custMap.get(ECK0011A010CBSMsg1List.LOGIN_NINSHO_STP_YMD));
//		template.set(ECK0021C010CBSMsg.MMB_SBT_TOKUT_FLG , custMap.get(ECK0011A010CBSMsg1List.MMB_SBT_TOKUT_FLG));
//		template.set(ECK0021C010CBSMsg.OLD_EONETMB_NINSHO_ID , custMap.get(ECK0011A010CBSMsg1List.OLD_EONETMB_NINSHO_ID));
//		// 個人
//		template.set(ECK0021C010CBSMsg.SHOKUGYO_CD , eCK0021A010.get(ECK0021A010CBSMsg1List.SHOKUGYO_CD));
//		template.set(ECK0021C010CBSMsg.SHOKUGYO_OTHER , eCK0021A010.get(ECK0021A010CBSMsg1List.SHOKUGYO_OTHER));
//		template.set(ECK0021C010CBSMsg.OFFC_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_NM));
//		template.set(ECK0021C010CBSMsg.SCHOOL_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SCHOOL_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_GSHU_CD , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_GSHU_CD));
//		template.set(ECK0021C010CBSMsg.OFFC_BUSHO_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_BUSHO_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_AD_CD , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_AD_CD));
//		template.set(ECK0021C010CBSMsg.OFFC_PCD , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_PCD));
//		template.set(ECK0021C010CBSMsg.OFFC_STATE_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_STATE_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_CITY_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_CITY_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_OAZTSU_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_OAZTSU_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_AZCHO_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_AZCHO_NM));
//		template.set(ECK0021C010CBSMsg.OFFC_BNCHIGO , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_BNCHIGO));
//		template.set(ECK0021C010CBSMsg.OFFC_ADRTTM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_ADRTTM));
//		template.set(ECK0021C010CBSMsg.OFFC_ADRRM , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_ADRRM));
//		template.set(ECK0021C010CBSMsg.OFFC_TELNO , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_TELNO));
//		template.set(ECK0021C010CBSMsg.OFFC_NISNNO , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_NISNNO));
//		template.set(ECK0021C010CBSMsg.OFFC_WORKER_CNT_SCALE , eCK0021A010.get(ECK0021A010CBSMsg1List.OFFC_WORKER_CNT_SCALE));
//		template.set(ECK0021C010CBSMsg.CUST_SALARY , eCK0021A010.get(ECK0021A010CBSMsg1List.CUST_SALARY));
//		template.set(ECK0021C010CBSMsg.SKSHA_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_NM));
//		template.set(ECK0021C010CBSMsg.SKSHA_KANA , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_KANA));
//		template.set(ECK0021C010CBSMsg.SKSHA_BIRTHD , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_BIRTHD));
//		template.set(ECK0021C010CBSMsg.SKSHA_ZOKUGARA_CD , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_ZOKUGARA_CD));
//		template.set(ECK0021C010CBSMsg.ZOKUGARA_OTHER , eCK0021A010.get(ECK0021A010CBSMsg1List.ZOKUGARA_OTHER));
//		template.set(ECK0021C010CBSMsg.SKSHA_AD_CD , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_AD_CD));
//		template.set(ECK0021C010CBSMsg.SKSHA_PCD , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_PCD));
//		template.set(ECK0021C010CBSMsg.SKSHA_STATE_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_STATE_NM));
//		template.set(ECK0021C010CBSMsg.SKSHA_CITY_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_CITY_NM));
//		template.set(ECK0021C010CBSMsg.SKSHA_OAZTSU_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_OAZTSU_NM));
//		template.set(ECK0021C010CBSMsg.SKSHA_AZCHO_NM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_AZCHO_NM));
//		template.set(ECK0021C010CBSMsg.SKSHA_AD_BNCHIGO , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_AD_BNCHIGO));
//		template.set(ECK0021C010CBSMsg.SKSHA_ADRTTM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_ADRTTM));
//		template.set(ECK0021C010CBSMsg.SKSHA_ADRRM , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_ADRRM));
////ロット２サービスIF断面あわせ
////		template.set(ECK0021C010CBSMsg.SKSHA_AD_FIX_AF_CHGE_KH , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_AD_FIX_AF_CHGE_KH));
//		template.set(ECK0021C010CBSMsg.SKSHA_TELNO , eCK0021A010.get(ECK0021A010CBSMsg1List.SKSHA_TELNO));
//
//
//	}
//	
//	/**
//	 * templateに対してECK0031C010の条件に関する部分を設定する
//	 * 
//	 * @param template
//	 * @param custMap
//	 * @param funcCd
//	 */
//	private void mappingECK0031C010InMsg(CAANMsg template, HashMap custMap, String funcCd)
//	{
//		// 全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new ECK0031C010CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(ECK0031C010CBSMsg.TEMPLATEID, ECK0031C010);
//
//		// 機能コード--お客様＜個人＞内容変更
//		template.set(ECK0031C010CBSMsg.FUNC_CODE, funcCd);
//
//		// ＳＹＳＩＤ
//		template.set(ECK0031C010CBSMsg.SYSID, custMap.get("sysid"));
//
//		// 予約適用年月日
//		template.set(ECK0031C010CBSMsg.RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
//
//		// 会員ＩＳＰ決済状態コード
//		template.set(ECK0031C010CBSMsg.MMB_ISP_KSSAI_STAT_CD, custMap.get("mmb_isp_kssai_stat_cd"));
//
//		// 削除対象外フラグ
//		template.set(ECK0031C010CBSMsg.DEL_TRGT_GAI_FLG, custMap.get("del_trgt_gai_flg"));
//
//		// 更新年月日時分秒(更新前)
//		template.set(ECK0031C010CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
//	}
	// 2013-03-19 OT-2013-0000308 DEL END
	
	/**
	 * templateに対してECK0011C020の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	// 2013-03-19 OT-2013-0000308 MOD START
	//private void mappingECK0011C020InMsg(CAANMsg template, HashMap inHash, String funcCd)
	private void mappingECK0011C020InMsg(CAANMsg template, HashMap inHash, String funcCd, String initSbtCd)
	// 2013-03-19 OT-2013-0000308 MOD END
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0011C020CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0011C020CBSMsg.TEMPLATEID, ECK0011C020);

		// 機能コード--eoID/パスワード初期化
		template.set(ECK0011C020CBSMsg.FUNC_CODE, funcCd);

		// ＳＹＳＩＤ
		template.set(ECK0011C020CBSMsg.SYSID, inHash.get("sysid"));
		// 更新年月日時分秒(更新前)
		template.set(ECK0011C020CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
		// 2013-03-19 OT-2013-0000308 ADD START
		// 初期化種別コード
		template.set(ECK0011C020CBSMsg.SHKKA_SBT_CD, initSbtCd);
		// 2013-03-19 OT-2013-0000308 ADD END
	}
	
	/**
	 * templateに対してECK0111B002の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingECK0111B002InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0111B002CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0111B002CBSMsg.TEMPLATEID, ECK0111B002);

		// 機能コード--ファミリー会員グループ一覧照会（SYSID）
		template.set(ECK0111B002CBSMsg.FUNC_CODE, FUNC_CD_1);

		// ＳＹＳＩＤ
		template.set(ECK0111B002CBSMsg.KEY_SYSID, inHash.get("sysid"));
	}

	
	/**
	 * templateに対してECK0111C011の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingECK0111C011InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0111C011CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0111C011CBSMsg.TEMPLATEID, ECK0111C011);

		// 機能コード--グループ入会コード再振出
		template.set(ECK0111C011CBSMsg.FUNC_CODE, funcCd);

		// ＳＹＳＩＤ
		template.set(ECK0111C011CBSMsg.GRP_CD, inHash.get("grp_cd"));
		// 更新年月日時分秒(更新前)
		template.set(ECK0111C011CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
	}
	
	/**
	 * templateに対してECK0111C012の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingECK0111C012InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new ECK0111C012CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(ECK0111C012CBSMsg.TEMPLATEID, ECK0111C012);

		// 機能コード--グループ入会コードパスワード再振出
		template.set(ECK0111C012CBSMsg.FUNC_CODE, funcCd);

		// ＳＹＳＩＤ
		template.set(ECK0111C012CBSMsg.GRP_CD, inHash.get("grp_cd"));

		// 更新年月日時分秒(更新前)
		template.set(ECK0111C012CBSMsg.UPD_DTM_BF, getCust_Upd_dtm());
	}
	
	/**
	 * templateに対してEKK0011D020の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0011D020InMsg(CAANMsg template, HashMap<String, Object> inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0011D020CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0011D020CBSMsg.TEMPLATEID, EKK0011D020);

		// 機能コード--申込内容承認登録
		template.set(EKK0011D020CBSMsg.FUNC_CODE, (String)inHash.get("func_code"));

		// SYSID
		template.set(EKK0011D020CBSMsg.SYSID, (String)inHash.get("sysid"));

		// 申込種別コード（お客さまＩＤパスワード初期化・再発行申込）
		template.set(EKK0011D020CBSMsg.MSKM_SBT_CD, MSKM_SBT_CD_00032);

		// 申込受付年月日時分秒
		template.set(EKK0011D020CBSMsg.MSKM_UK_DTM, JCCBPCommon.getOpeDateTimeStamp(null));

		// 申込年月日
		template.set(EKK0011D020CBSMsg.MSKM_YMD, JCCBPCommon.getOpeDate(null));

		// コンシューマ営業用申込状態識別コード(04:承認済)
		template.set(EKK0011D020CBSMsg.CONSMBSN_MSKM_STAT_SKBT_CD, "04");

		// 申込内容承認登録明細の枠を作成
		CAANMsg[] eKK0011D020CBSMSG1LIST = null;
		CAANMsg eKK0011D020CBSMSG1 = null;
		eKK0011D020CBSMSG1 = new CAANMsg(EKK0011D020CBSMsg1List.class.getName());
		fillCAANMSGNullMapping(eKK0011D020CBSMSG1, new EKK0011D020CBSMsg1List().getContents());
		eKK0011D020CBSMSG1LIST = new CAANMsg[]
		{
			eKK0011D020CBSMSG1
		};

		template.set(EKK0011D020CBSMsg.EKK0011D020CBSMSG1LIST, eKK0011D020CBSMSG1LIST);
	}

	/**
	 * templateに対してEKK0021A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0021A010InMsg(CAANMsg template, String mskmDtlNo)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0021A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0021A010CBSMsg.TEMPLATEID, EKK0021A010);

		// 機能コード--申込明細一意照会
		template.set(EKK0021A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// ＫＥＹ＿申込明細番号
		template.set(EKK0021A010CBSMsg.KEY_MSKM_DTL_NO, mskmDtlNo);

	}

	/**
	 * templateに対してEKK0021C060の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0021C060InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> work)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0021C060CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0021C060CBSMsg.TEMPLATEID, EKK0021C060);

		// 機能コード--申込明細照査・後続業務依頼
		template.set(EKK0021C060CBSMsg.FUNC_CODE, work.get(WORK_MAP_KEY_FUNC_CODE));

		// 申込明細番号
		template.set(EKK0021C060CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));

		// 後続業務依頼年月日
		template.set(EKK0021C060CBSMsg.KZKWRK_REQYMD, JCCBPCommon.getOpeDate(null));

		// リクエストパラメータ.運用日時 → 連絡事項登録年月日時分秒
		template.set(EKK0021C060CBSMsg.RRK_JIKO_ADD_DTM, JCCBPCommon.getOpeDateTimeStamp(null));

		// 異動区分
		template.set(EKK0021C060CBSMsg.IDO_DIV, (String)work.get(WORK_MAP_KEY_IDO_DIV));

		// 更新年月日時分秒(更新前)
		template.set(EKK0021C060CBSMsg.UPD_DTM_BF, inHash.get("last_upd_dtm"));

	}

	/**
	 * templateに対してEKK0081A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0081A010InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0081A010CBSMsg.TEMPLATEID, EKK0081A010);

		// 機能コード--サービス契約一意照会
		template.set(EKK0081A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// ＫＥＹ＿サービス契約番号
		template.set(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, inHash.get("svc_kei_no"));

		// ＫＥＹ＿予約適用年月日
		template.set(EKK0081A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
	}
	
	/**
	 * templateに対してEKK0161B004の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0161B004InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0161B004CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0161B004CBSMsg.TEMPLATEID, EKK0161B004);

		// 機能コード--サービス契約内訳一覧照会
		template.set(EKK0161B004CBSMsg.FUNC_CODE, FUNC_CD_1);

		// サービス契約番号
		template.set(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, inHash.get("svc_kei_no"));
	}
	
	/**
	 * templateに対してEKK0171A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0171A010InMsg(CAANMsg template, String svcKeiUcwk_no)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0171A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0171A010CBSMsg.TEMPLATEID, EKK0171A010);

		// 機能コード--サービス契約内訳＜eo光ネット＞一意照会
		template.set(EKK0171A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// サービス契約内訳番号
		template.set(EKK0171A010CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwk_no);
	}
	
	/**
	 * templateに対してEKK0171C013の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0171C013InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> work)
	{

		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0171C013CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0171C013CBSMsg.TEMPLATEID, EKK0171C013);

		// 機能コード--ISP認証IDパスワード初期化
		template.set(EKK0171C013CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// サービス契約内訳番号
		template.set(EKK0171C013CBSMsg.SVC_KEI_UCWK_NO, inHash.get("svc_kei_ucwk_no"));
		
		// IT1-2012-0000574 2012-05-28 ADD_START
		// 申込明細番号
		template.set(EKK0171C013CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));
		// IT1-2012-0000574 2012-05-28 ADD_END
		
		// 更新年月日時分秒(更新前)
		template.set(EKK0171C013CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());
	}
	
	/**
	 * templateに対してEKK0171C014の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0171C014InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> work)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0171C014CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0171C014CBSMsg.TEMPLATEID, EKK0171C014);

		// 機能コード--ISP認証IDパスワード再振出
		template.set(EKK0171C014CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// サービス契約内訳番号
		template.set(EKK0171C014CBSMsg.SVC_KEI_UCWK_NO, inHash.get("svc_kei_ucwk_no"));

		// IT1-2012-0000574 2012-05-28 ADD_START
		// 申込明細番号
		template.set(EKK0171C014CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));
		// IT1-2012-0000574 2012-05-28 ADD_END

		// OT-2013-0000109 2013/02/14 MOD START
		// 更新年月日時分秒(更新前)
		//template.set(EKK0171C014CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());
		template.set(EKK0171C014CBSMsg.UPD_DTM_BF, work.get("last_upd_dtm"));
		// OT-2013-0000109 2013/02/14 MOD START
	}
	
	/**
	 * templateに対してEKK0191A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0191A010InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0191A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0191A010CBSMsg.TEMPLATEID, EKK0191A010);

		// 機能コード--サービス契約内訳＜eo光電話＞一意照会
		template.set(EKK0191A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// オプションサービス契約番号
		template.set(EKK0191A010CBSMsg.KEY_SVC_KEI_UCWK_NO, inHash.get("svc_kei_ucwk_no"));
	}

	/**
	 * templateに対してEKK0191C013の条件に関する部分を設定する
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 * @param requestParam アプリ固有のパラメータ
	 */
	private void mappingEKK0191C013InMsg(CAANMsg template, HashMap<String, Object> inHash, HashMap<String, Object> work)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0191C013CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0191C013CBSMsg.TEMPLATEID, EKK0191C013);

		// 機能コード--電話設定リモート操作用パスワード初期化
		template.set(EKK0191C013CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// サービス契約内訳番号
		template.set(EKK0191C013CBSMsg.SVC_KEI_UCWK_NO, inHash.get("svc_kei_ucwk_no"));
		
		// IT1-2012-0000574 2012-05-28 ADD_START
		// 申込明細番号
		template.set(EKK0191C013CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));
		// IT1-2012-0000574 2012-05-28 ADD_END
		
		// 更新年月日時分秒(更新前)
		template.set(EKK0191C013CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());
	}
	
	/**
	 * templateに対してEKK0351A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0351A010InMsg(CAANMsg template, String op_svc_kei_no)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0351A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0351A010CBSMsg.TEMPLATEID, EKK0351A010);

		// 機能コード--オプションサービス契約一意照会
		template.set(EKK0351A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// オプションサービス契約番号
		template.set(EKK0351A010CBSMsg.KEY_OP_SVC_KEI_NO, op_svc_kei_no);
		
		// ＫＥＹ＿予約適用年月日
		template.set(EKK0351A010CBSMsg.KEY_RSV_APLY_YMD, JCCBPCommon.getOpeDate(null));
	}
	
	/**
	 * templateに対してEKK0361A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0361A010InMsg(CAANMsg template, String op_svc_kei_no)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0361A010CBSMsg.TEMPLATEID, EKK0361A010);

		// 機能コード--オプションサービス契約＜ISP＞一意照会
		template.set(EKK0361A010CBSMsg.FUNC_CODE, FUNC_CD_2);

		// オプションサービス契約番号
		template.set(EKK0361A010CBSMsg.KEY_OP_SVC_KEI_NO, op_svc_kei_no);
	}

	/**
	 * templateに対してEKK0361C050の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0361C050InMsg(CAANMsg template, HashMap<String, Object> work,
			HashMap<String, Object> eKK0361A010, HashMap<String, Object> eKK0351A010)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C050CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0361C050CBSMsg.TEMPLATEID, EKK0361C050);

		// 機能コード--オプションサービス契約＜ISP＞一意照会
		template.set(EKK0361C050CBSMsg.FUNC_CODE, FUNC_CD_1);

		// オプションサービス契約番号
		template.set(EKK0361C050CBSMsg.OP_SVC_KEI_NO, eKK0361A010.get(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO));

		// 申込明細番号
		template.set(EKK0361C050CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));

		// 試用加入年月日
		template.set(EKK0361C050CBSMsg.FTRIAL_KANYU_YMD, eKK0351A010.get(EKK0351A010CBSMsg1List.FTRIAL_KANYU_YMD));

		// 試用期間終了年月日
		template.set(EKK0361C050CBSMsg.FTRIAL_PRD_ENDYMD, eKK0351A010.get(EKK0351A010CBSMsg1List.FTRIAL_PRD_ENDYMD));

		// 本加入年月日
		template.set(EKK0361C050CBSMsg.HONKANYU_YMD, eKK0351A010.get(EKK0351A010CBSMsg1List.HONKANYU_YMD));

		// 本加入移行期限年月日
		template.set(EKK0361C050CBSMsg.HONKANYU_IKO_KIGEN_YMD, eKK0351A010.get(EKK0351A010CBSMsg1List.HONKANYU_IKO_KIGEN_YMD));

		// 違約金発生コード
		template.set(EKK0361C050CBSMsg.PNLTY_HASSEI_CD, eKK0351A010.get(EKK0351A010CBSMsg1List.PNLTY_HASSEI_CD));

		// 希望メールアカウント1
		template.set(EKK0361C050CBSMsg.KIBO_ML_ACCOUNT_1, eKK0361A010.get(EKK0361A010CBSMsg1List.KIBO_ML_ACCOUNT_1));

		// 希望メールアカウント2
		template.set(EKK0361C050CBSMsg.KIBO_ML_ACCOUNT_2, eKK0361A010.get(EKK0361A010CBSMsg1List.KIBO_ML_ACCOUNT_2));

		// 希望メールアカウント3
		template.set(EKK0361C050CBSMsg.KIBO_ML_ACCOUNT_3, eKK0361A010.get(EKK0361A010CBSMsg1List.KIBO_ML_ACCOUNT_3));

		// マルチセッション用セッション数
		template.set(EKK0361C050CBSMsg.MLTISE_SESSION_CNT, eKK0361A010.get(EKK0361A010CBSMsg1List.MLTISE_SESSION_CNT));

		// 固定IPアドレス
		template.set(EKK0361C050CBSMsg.KOTEI_IP_AD, eKK0361A010.get(EKK0361A010CBSMsg1List.KOTEI_IP_AD));

		// ネットマスク
		template.set(EKK0361C050CBSMsg.NETMASK, eKK0361A010.get(EKK0361A010CBSMsg1List.NETMASK));

		// メールアドレス
		template.set(EKK0361C050CBSMsg.MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.MLAD));

		// 容量
		template.set(EKK0361C050CBSMsg.CAPA, eKK0361A010.get(EKK0361A010CBSMsg1List.CAPA));

		// URL(ドメイン)
		template.set(EKK0361C050CBSMsg.URL_DOMAIN, eKK0361A010.get(EKK0361A010CBSMsg1List.URL_DOMAIN));

		// URL(アカウント)
		template.set(EKK0361C050CBSMsg.URL_ACCOUNT, eKK0361A010.get(EKK0361A010CBSMsg1List.URL_ACCOUNT));

		// メーリングリスト名
		template.set(EKK0361C050CBSMsg.MLLIST_NM, eKK0361A010.get(EKK0361A010CBSMsg1List.MLLIST_NM));

		// メーリングリスト呼称
		template.set(EKK0361C050CBSMsg.MLLIST_KOSHO, eKK0361A010.get(EKK0361A010CBSMsg1List.MLLIST_KOSHO));

		// メーリングリスト公開要否
		template.set(EKK0361C050CBSMsg.MLLIST_KOKAI_YH, eKK0361A010.get(EKK0361A010CBSMsg1List.MLLIST_KOKAI_YH));

		// メーリングリスト最大ユーザー数
		template.set(EKK0361C050CBSMsg.MLLIST_MAX_USER_CNT, eKK0361A010.get(EKK0361A010CBSMsg1List.MLLIST_MAX_USER_CNT));

		// メーリングリスト管理者メールアドレス
		template.set(EKK0361C050CBSMsg.MLLIST_KRISHA_MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.MLLIST_KRISHA_MLAD));

		// 独自ドメイン名
		template.set(EKK0361C050CBSMsg.DOKUJI_DOMAIN_NM, eKK0361A010.get(EKK0361A010CBSMsg1List.DOKUJI_DOMAIN_NM));

		// ホスティングメールアカウント数
		template.set(EKK0361C050CBSMsg.HOSML_ACCOUNT_CNT, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_ACCOUNT_CNT));

		// ホスティングメールボックス総容量
		template.set(EKK0361C050CBSMsg.HOSML_BOX_CAPA, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_BOX_CAPA));

		// ホスティングメール管理者ID
		template.set(EKK0361C050CBSMsg.HOSML_KRISHA_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_KRISHA_ID));

		// ホスティング初期メール管理者IDパスワード
		template.set(EKK0361C050CBSMsg.HOSTING_SHKM_KRISHA_ID_PWD, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSTING_SHKM_KRISHA_ID_PWD));

		// ホスティングメール管理者POPID
		template.set(EKK0361C050CBSMsg.HOSML_KRISHA_POP_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_KRISHA_POP_ID));

		// ホスティング初期メール管理者POPIDパスワード
		template.set(EKK0361C050CBSMsg.HOS_SHKM_KRISHA_POP_ID_PWD, eKK0361A010.get(EKK0361A010CBSMsg1List.HOS_SHKM_KRISHA_POP_ID_PWD));
		// ホスティングメール管理者メールアドレス

		template.set(EKK0361C050CBSMsg.HOSML_KRISHA_MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_KRISHA_MLAD));

		// ホスティングメール管理者メールボックス容量
		template.set(EKK0361C050CBSMsg.HOSML_KRISHA_MAIL_BOX_CAPA, eKK0361A010.get(EKK0361A010CBSMsg1List.HOSML_KRISHA_MAIL_BOX_CAPA));

		// ダイヤルパッドID
		template.set(EKK0361C050CBSMsg.DPAD_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_ID));

		// ダイヤルパッドISPID
		template.set(EKK0361C050CBSMsg.DPAD_ISP_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_ISP_ID));

		// ダイヤルパッドMAPID
		template.set(EKK0361C050CBSMsg.DPAD_MAPID, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_MAPID));

		// ダイヤルパッドPIN
		template.set(EKK0361C050CBSMsg.DPAD_PIN, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_PIN));

		// ダイヤルパッドメールアドレス
		template.set(EKK0361C050CBSMsg.DPAD_MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_MLAD));

		// ダイヤルパッドID公開要否
		template.set(EKK0361C050CBSMsg.DPAD_ID_KOKAI_YH, eKK0361A010.get(EKK0361A010CBSMsg1List.DPAD_ID_KOKAI_YH));

		// VoIPユーザーID
		template.set(EKK0361C050CBSMsg.VOIP_USER_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.VOIP_USER_ID));

		// DNS設定コード
		template.set(EKK0361C050CBSMsg.DNS_SETTE_CD, eKK0361A010.get(EKK0361A010CBSMsg1List.DNS_SETTE_CD));

		// メールゲートウェイ管理者ID
		template.set(EKK0361C050CBSMsg.MAIL_GW_KRISHA_ID, eKK0361A010.get(EKK0361A010CBSMsg1List.MAIL_GW_KRISHA_ID));

		// メールゲートウェイ管理者IDパスワード
		template.set(EKK0361C050CBSMsg.MAIL_GW_KRISHA_ID_PWD, eKK0361A010.get(EKK0361A010CBSMsg1List.MAIL_GW_KRISHA_ID_PWD));

		// メールゲートウェイ管理者メールアドレス
		template.set(EKK0361C050CBSMsg.MAIL_GW_KRISHA_MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.MAIL_GW_KRISHA_MLAD));

		// メールゲートウェイ受信メールサーバーIPアドレス
		template.set(EKK0361C050CBSMsg.MAIL_GW_RCV_MSERVER_IP_AD, eKK0361A010.get(EKK0361A010CBSMsg1List.MAIL_GW_RCV_MSERVER_IP_AD));

		// メールゲートウェイ送信メールサーバーIPアドレス
		template.set(EKK0361C050CBSMsg.MAIL_GW_SEND_MSERVER_IP_AD, eKK0361A010.get(EKK0361A010CBSMsg1List.MAIL_GW_SEND_MSERVER_IP_AD));

		// メールゲートウェイアカウント数
		template.set(EKK0361C050CBSMsg.ML_GW_ACCOUNT_CNT, eKK0361A010.get(EKK0361A010CBSMsg1List.ML_GW_ACCOUNT_CNT));

		// サービス個別設定連絡先メールアドレス
		template.set(EKK0361C050CBSMsg.SVC_KBT_SET_RRKS_MLAD, eKK0361A010.get(EKK0361A010CBSMsg1List.SVC_KBT_SET_RRKS_MLAD));

		// 通話明細公開要否
		template.set(EKK0361C050CBSMsg.TUWA_DTL_KOKAI_YH, eKK0361A010.get(EKK0361A010CBSMsg1List.TUWA_DTL_KOKAI_YH));

		// IPv6アドレス(インターフェイスID)
		template.set(EKK0361C050CBSMsg.IPV6_AD_IFID, eKK0361A010.get(EKK0361A010CBSMsg1List.IPV6_AD_IFID));

		// 異動区分
		template.set(EKK0361C050CBSMsg.IDO_DIV, work.get("ido_div"));

		// 更新年月日時分秒(更新前)
		template.set(EKK0361C050CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());

		// ▼▼▼▼▼ 2012/12/21 「表示用サービス提供開始年月日」対応 ADD START ▼▼▼▼▼
		// 表示用サービス提供開始年月日
		template.set(EKK0361C050CBSMsg.DSP_SVCTK_STAYMD, eKK0351A010.get(EKK0351A010CBSMsg1List.DSP_SVCTK_STAYMD));
		// ▲▲▲▲▲ 2012/12/21 「表示用サービス提供開始年月日」対応 ADD E N D ▲▲▲▲▲
	}
	
	/**
	 * templateに対してEKK0361C111の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0361C111InMsg(CAANMsg template, HashMap<String, Object> work, HashMap<String, Object> eKK0361A010)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C111CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0361C111CBSMsg.TEMPLATEID, EKK0361C111);

		// 機能コード--POPパスワード再振出
		template.set(EKK0361C111CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// オプションサービス契約番号
		template.set(EKK0361C111CBSMsg.OP_SVC_KEI_NO, eKK0361A010.get(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO));

		// 異動区分
		template.set(EKK0361C111CBSMsg.IDO_DIV, work.get(WORK_MAP_KEY_IDO_DIV));

		// 申込明細番号
		template.set(EKK0361C111CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));

		// 更新年月日時分秒(更新前)
		template.set(EKK0361C111CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());
	}
	
	/**
	 * templateに対してEKK0361C112の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0361C112InMsg(CAANMsg template, HashMap<String, Object> work, HashMap<String, Object> eKK0361A010)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0361C112CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0361C112CBSMsg.TEMPLATEID, EKK0361C112);

		// 機能コード--POPパスワード再振出
		template.set(EKK0361C112CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// オプションサービス契約番号
		template.set(EKK0361C112CBSMsg.OP_SVC_KEI_NO, eKK0361A010.get(EKK0361A010CBSMsg1List.OP_SVC_KEI_NO));

		// 異動区分
		template.set(EKK0361C112CBSMsg.IDO_DIV, work.get(WORK_MAP_KEY_IDO_DIV));

		// 申込明細番号
		template.set(EKK0361C112CBSMsg.MSKM_DTL_NO, work.get(WORK_MAP_KEY_MSKM_DTL_NO));

		// 更新年月日時分秒(更新前)
		template.set(EKK0361C112CBSMsg.UPD_DTM_BF, getSvc_upd_dtm_bf());
	}
	
	/**
	 * templateに対してEKK1021D010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK1021D010InMsg(CAANMsg template, HashMap inHash, String svc_kei_no, HashMap<String, Object> eKK1021C011)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1021D010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK1021D010CBSMsg.TEMPLATEID, EKK1021D010);

		// 機能コード--一時金設定登録
		template.set(EKK1021D010CBSMsg.FUNC_CODE, inHash.get("func_code"));

		// 一時支払料金番号（仮）
		template.set(EKK1021D010CBSMsg.TMP_PAY_PRC_NO, eKK1021C011.get(EKK1021C011CBSMsg1List.TMP_PAY_PRC_NO));

		// 一時金設定コード
		template.set(EKK1021D010CBSMsg.ICJKN_SETTE_CD, eKK1021C011.get(EKK1021C011CBSMsg1List.ICJKN_SETTE_CD));

		// サービス契約番号
		template.set(EKK1021D010CBSMsg.SVC_KEI_NO, svc_kei_no);

		// 申込明細番号
		template.set(EKK1021D010CBSMsg.MSKM_DTL_NO, inHash.get("mskm_dtl_no"));
		
		// 20130122 ANK-1306-00-00 一時金取消対応 ADD START
		// 照査済以降の一時金作成時は、完了状態コードに未完了を設定
		template.set(EKK1021D010CBSMsg.FIN_STAT_CD, JKKSvcConst.FIN_STAT_CD_MI_FIN);
		// 20130122 ANK-1306-00-00 一時金取消対応 ADD END
	}

	/**
	 * templateに対してEKK1091D010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更開始 */
/*	private void mappingEKK1091D010InMsg(CAANMsg template, HashMap work, String svcKeiNo, String prg_stat, String cdDivNm, String idoDtm)	*/
	private void mappingEKK1091D010InMsg(CAANMsg template, HashMap work, String svcKeiNo, String prg_stat, String cdDivNm, String idoDtm, String shsAd)
	/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 変更終了 */
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1091D010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK1091D010CBSMsg.TEMPLATEID, EKK1091D010);

		// 機能コード--進捗登録
		template.set(EKK1091D010CBSMsg.FUNC_CODE, (String)work.get(WORK_MAP_KEY_FUNC_CODE));

		// 申込詳細番号
		template.set(EKK1091D010CBSMsg.MSKM_DTL_NO, (String)work.get(WORK_MAP_KEY_MSKM_DTL_NO));

		// サービス契約番号
		template.set(EKK1091D010CBSMsg.SVC_KEI_NO, svcKeiNo);

		// 異動区分
		template.set(EKK1091D010CBSMsg.IDO_DIV, (String)work.get(WORK_MAP_KEY_IDO_DIV));

		// 異動年月日時分秒
		template.set(EKK1091D010CBSMsg.IDO_DTM, idoDtm);

		// 進捗ステータス
		template.set(EKK1091D010CBSMsg.PRG_STAT, prg_stat);

		// 進捗メモ
		template.set(EKK1091D010CBSMsg.PRG_MEMO, (String)work.get("prg_memo"));

// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD START
		// 進捗特記事項1
		template.set(EKK1091D010CBSMsg.PRG_TKJK_1, cdDivNm);
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD END

		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加開始 */
		template.set(EKK1091D010CBSMsg.PRG_TKJK_2, shsAd);
		/* FJ)野々下 v13.00.00【ANK-2394-00-00】改善案件対応 追加終了 */

		// 異動理由明細の枠を作成
		CAANMsg[] eKK1091D010CBSMSG1LIST = null;
		// UI残65_異動理由の要否について 2012/05/14 ariyoshi strat
		ArrayList meisaiList = (ArrayList)work.get("ido_rsn_cd_list");
		if(meisaiList != null && meisaiList.size() > 0){
			eKK1091D010CBSMSG1LIST = new CAANMsg[meisaiList.size()];
			for(int i=0; i<meisaiList.size(); i++){
				CAANMsg  eKK1091D010CBSMSG1 = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
				fillCAANMSGNullMapping(eKK1091D010CBSMSG1, new EKK1091D010CBSMsg1List().getContents());

				// 異動理由コード
				eKK1091D010CBSMSG1.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, ((Map)meisaiList.get(i)).get("ido_rsn_cd"));
				// 異動理由メモ
				eKK1091D010CBSMSG1.set(EKK1091D010CBSMsg1List.IDO_RSN_MEMO, ((Map)meisaiList.get(i)).get("ido_rsn_memo"));

				eKK1091D010CBSMSG1LIST[i] = eKK1091D010CBSMSG1;
			}
		}else{
			CAANMsg  eKK1091D010CBSMSG1 = new CAANMsg(EKK1091D010CBSMsg1List.class.getName());
			eKK1091D010CBSMSG1.set(EKK1091D010CBSMsg1List.IDO_RSN_CD, IDO_RSN_CD_OTHER);
			eKK1091D010CBSMSG1.setNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO);
			eKK1091D010CBSMSG1LIST = new CAANMsg[]
			{
					eKK1091D010CBSMSG1
			};
		}
		// UI残65_異動理由の要否について 2012/05/14 ariyoshi end
		template.set(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST, eKK1091D010CBSMSG1LIST);
	}
	
	/**
	 * templateに対してEKK1021C011の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK1021C011InMsg(CAANMsg template, HashMap work, HashMap<String, Object> svcKeiMap)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1021C011CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK1021C011CBSMsg.TEMPLATEID, EKK1021C011);

		// 機能コード-- 事務手数料判定結果取得
		template.set(EKK1021C011CBSMsg.FUNC_CODE, work.get(WORK_MAP_KEY_FUNC_CODE));

		// 異動区分
		template.set(EKK1021C011CBSMsg.IDO_DIV, (String)work.get(WORK_MAP_KEY_IDO_DIV));

		// ID通知書手数料有無
		if ((Boolean)svcKeiMap.get("commision_sel"))
		{
			template.set(EKK1021C011CBSMsg.ID_TCHISHO_CMS_UM, COMMISION_1);
		}else{
			template.set(EKK1021C011CBSMsg.ID_TCHISHO_CMS_UM, COMMISION_0);
		}
//↓↓↓2013-05-31追加　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↓↓↓
		// 料金グループコード
		if (svcKeiMap.containsKey("svc_prc_grp_cd"))
		{
			template.set(EKK1021C011CBSMsg.MSKM_PRC_GRP_CD, (String)svcKeiMap.get("svc_prc_grp_cd"));
		}
//↑↑↑2013-05-31追加　巻３SG1-2013-0000089（eo光ネットとeo光電話で同じ一時金になっている）↑↑↑
	}
	
//	/**
//	 * サービス契約＜eo光電話＞一意照会　入力マッピング
//	 * 
//	 * @param param
//	 * @param template
//	 * @param inHash
//	 * @throws RequestParameterException
//	 */
//	private void mappingEKK0111A010InMsg(CAANMsg template, HashMap<String, Object> inHash) throws RequestParameterException
//	{
//		// まずは全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new EKK0111A010CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(EKK0111A010CBSMsg.TEMPLATEID, "EKK0111A010");
//
//		// 機能コード--サービス契約一意照会
//		template.set(EKK0111A010CBSMsg.FUNC_CODE, FUNC_CD_2);
//
//		// ＫＥＹ＿サービス契約番号
//		template.set(EKK0111A010CBSMsg.KEY_SVC_KEI_NO, inHash.get("svc_kei_no"));
//	}
//	
//	/**
//	 * templateに対してEKK0341B002の条件に関する部分を設定する
//	 * 
//	 * @param template
//	 * @param inHash
//	 */
//	private void mappingEKK0341B002InMsg(CAANMsg template, HashMap inHash)
//	{
//		// 全条件のNullマッピング
//		fillCAANMSGNullMapping(template, new EKK0341B002CBSMsg().getContents());
//
//		// テンプレートID(SIFのID)
//		template.set(EKK0341B002CBSMsg.TEMPLATEID, EKK0341B002);
//
//		// 機能コード-- 機器提供サービス契約一覧照会（サービス契約番号）
//		template.set(EKK0341B002CBSMsg.FUNC_CODE, FUNC_CD_1);
//
//		// ＫＥＹ＿サービス契約番号
//		template.set(EKK0341B002CBSMsg.KEY_SVC_KEI_NO, (String)inHash.get("svc_kei_no"));
//
//		// ＫＥＹ＿機器提供サービスコード
//		template.set(EKK0341B002CBSMsg.KEY_KKTK_SVC_CD, KKTK_SVC_CD_VA);
//	}

// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD START
	/**
	 * templateに対してEZM0171A010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEZM0171A010InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0171A010CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0171A010CBSMsg.TEMPLATEID, EZM0171A010);

		// 機能コード-- コード名称管理一意照会
		template.set(EZM0171A010CBSMsg.FUNC_CODE, FUNC_CD_1);

		//サービスＩＦ個別部設定
		// ＫＥＹ＿コード種別コード
		template.set(EZM0171A010CBSMsg.KEY_CD_SBT_CD, (String)inHash.get("key_cd_sbt_cd"));

		// ＫＥＹ＿コード区分
		template.set(EZM0171A010CBSMsg.KEY_CD_DIV, (String)inHash.get("key_cd_div"));
	}
// 2012/10/24 【ANK-1223-00-00】進捗補足事項編集対応 ADD END

	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
	/**
	 * templateに対してEKK0081B004の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK0081B004InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0081B004CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0081B004CBSMsg.TEMPLATEID, EKK0081B004);

		// 機能コード-- サービス契約一覧照会（SYSID）2
		template.set(EKK0081B004CBSMsg.FUNC_CODE, FUNC_CD_1);

		// ※表示用ではないので全件取得できるような値を設定
		// 表示件数
		template.set(EKK0081B004CBSMsg.DISPLAY_NUM, "100");

		// 表示ページ数
		template.set(EKK0081B004CBSMsg.DISPLAY_PAGE_NUM, "1");

		// 最大取得件数
		template.set(EKK0081B004CBSMsg.MAX_SEARCH_NUM, "100");

		//サービスＩＦ個別部設定
		// ＫＥＹ＿SYSID
		template.set(EKK0081B004CBSMsg.KEY_SYSID, (String)inHash.get("sysid"));
	}

	/**
	 * templateに対してEKK0341B022の条件に関する部分を設定する
	 * 
	 * @param template 条件の設定先
	 * @param inHash 設定条件
	 */
	private void mappingEKK0341B022InMsg(CAANMsg template, HashMap inHash)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK0341B022CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK0341B022CBSMsg.TEMPLATEID, EKK0341B022);

		// 機能コード-- サービス対象機器提供サービス契約一覧照会
		template.set(EKK0341B022CBSMsg.FUNC_CODE, FUNC_CD_1);

		//サービスＩＦ個別部設定
		// ＫＥＹ＿サービス契約番号
		template.set(EKK0341B022CBSMsg.KEY_SVC_KEI_NO, (String)inHash.get("svc_kei_no"));
	}
	// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END

	//**********************************************************
	//                  S/IFマッピング
	//***********************END********************************
	
	/**
	 * 業務データの取得処理です。
	 * 
	 * @param rslt SVIFの実行結果データ
	 * @return 業務データ
	 */
	private HashMap<String, Object> getWorkCAANMsg(Map<?, ?> rslt)
	{
		CAANMsg[] templates = (CAANMsg[])rslt.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg parentTemplate = templates[0];

		return parentTemplate.getMsgData();
	}

	/**
	 * Nullマッピングで埋める
	 * 
	 * @param msg 対象クラス
	 * @param contents 対応クラスのフィールド列挙
	 */
	private void fillCAANMSGNullMapping(CAANMsg msg, Object[][] contents)
	{
		// 要素ごとのループ
		for (int i = 0; i < contents.length; i++)
		{
			Object element = null;

			// キーに該当する箇所の取得
			element = contents[i][0];

			// Nullでマッピング
			msg.setNull((String)element);
		}
	}

	/**
	 * ユーザ定義文字列がユーザ情報になければデータを作成します。 <br>
	 * 
	 * @param param 業務データ取得用I/F
	 * @param workMapKey 業務データのマップキー
	 * @return true：作成した　False：存在していたため作成不要
	 * @throws RequestParameterException
	 */
	private boolean createUserData(IRequestParameterReadWrite param, String workMapKey)
			throws RequestParameterException
	{
		if (param.getData(workMapKey) == null)
		{
			param.setData(workMapKey, new HashMap<String, Object>());
			return true;
		}

		return false;
	}

	/**
	 * 条件部の共通する項目の設定
	 * 
	 * @param param リクエストパラメータ
	 * @param template  template 条件の設定先
	 * @throws RequestParameterException
	 */
	public void editBasicCmn(IRequestParameterReadOnly param, CAANMsg template) throws RequestParameterException
	{
		// オペレータID
		Object operatorId = param.getControlMapData(SCControlMapKeys.OPERATOR_ID);
		template.set(JCMConstants.OPERATOR_ID_KEY, operatorId);

		// 運用日付
		Object operateDate = param.getControlMapData(SCControlMapKeys.OPE_DATE);
		template.set(JCMConstants.OPERATE_DATE_KEY, operateDate);

		// 運用日時
		Object operateDateTime = param.getControlMapData(SCControlMapKeys.OPE_TIME);
		template.set(JCMConstants.OPERATE_DATETIME_KEY, operateDateTime);
	}

	/**
	 * サービスI/F実行用の共通部を設定します<br>
	 * <br>
	 * 
	 * @param param (I) 業務データ取得用I/F
	 * @param msg データ登録内容
	 * @return オプションサービス契約作成数
	 * @throws RequestParameterException
	 * @exception RequestParameterExceptionがスローされます。
	 */
	private HashMap<String, Object> editInMsgCmn(IRequestParameterReadOnly param) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());

		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());

		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());

		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));

		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));

		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));

		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		return paramMap;
	}
	
	// OM-2013-00001590 2013/09/05
	/**
	 * POPIDパスワード再振処理専用のSOD発行用のサービス契約情報をマッピングする
	 * @param sodDataList マッピングリスト
	 * @param inHash 
	 * @param resultHash 結果
	 * @param mpgKey マッピングキー（内訳、オプション判断用）
	 */
	private void mappingPopSaifuriSodHash(ArrayList<HashMap<String, Object>> sodDataList, String mailPopIdSod,
			HashMap<String, Object> resultHash, String svc_kei_no, String hakko_div, String shori_div)
	{
		HashMap<String, Object> sodMap = new HashMap<String, Object>();
		sodDataList.add(sodMap);
		
		if (resultHash == null || resultHash.size() == 0)
		{
			return;
		}
		sodMap.put("svc_kei_no", svc_kei_no);

		sodMap.put("svc_kei_ucwk_no", null);
		sodMap.put("ucwk_gene_add_dtm", null);

		sodMap.put("op_svc_kei_no", mailPopIdSod);
		sodMap.put("op_gene_add_dtm", resultHash.get("kk0351_gene_add_dtm"));

		sodMap.put("saihakko_div", hakko_div);
		sodMap.put("shori_div", shori_div);
	}
	// OM-2013-00001590 2013/09/05
	
	
	
	/**
	 * SOD発行用のサービス契約情報をマッピングする
	 * @param sodDataList マッピングリスト
	 * @param inHash 
	 * @param resultHash 結果
	 * @param mpgKey マッピングキー（内訳、オプション判断用）
	 */
	private void mappingSodHash(ArrayList<HashMap<String, Object>> sodDataList, HashMap<String, Object> inHash,
			HashMap<String, Object> resultHash, String svc_kei_no, String hakko_div, String shori_div)
	{
		HashMap<String, Object> sodMap = new HashMap<String, Object>();
		sodDataList.add(sodMap);

		// 結果が取得できない場合は処理を終了する
		if (resultHash == null || resultHash.size() == 0)
		{
			return;
		}

		// POPパスワード
		if (JKKHakkoSODConstCC.SHORI_DIV_POP.equals(shori_div))
		{
			sodMap.put("svc_kei_no", svc_kei_no);

			sodMap.put("svc_kei_ucwk_no", null);
			sodMap.put("ucwk_gene_add_dtm", null);

			sodMap.put("op_svc_kei_no", inHash.get("op_svc_kei_no"));
			sodMap.put("op_gene_add_dtm", resultHash.get("kk0351_gene_add_dtm"));

			sodMap.put("saihakko_div", hakko_div);
			sodMap.put("shori_div", shori_div);
		}
		// WEBIDパスワード用
		else if (JKKHakkoSODConstCC.SHORI_DIV_WEB_ID.equals(shori_div))
		{
			sodMap.put("svc_kei_no", svc_kei_no);

			sodMap.put("svc_kei_ucwk_no", null);
			sodMap.put("ucwk_gene_add_dtm", null);

			sodMap.put("op_svc_kei_no", inHash.get("op_svc_kei_no"));
			sodMap.put("op_gene_add_dtm", resultHash.get("kk0351_gene_add_dtm"));

			sodMap.put("saihakko_div", hakko_div);
			sodMap.put("shori_div", shori_div);
		}
		// 認証IDパスワード用
		else if (JKKHakkoSODConstCC.SHORI_DIV_NINSHO_ID.equals(shori_div))
		{
			sodMap.put("svc_kei_no", svc_kei_no);

			sodMap.put("svc_kei_ucwk_no", inHash.get("svc_kei_ucwk_no"));
			sodMap.put("ucwk_gene_add_dtm", resultHash.get("kk0161_gene_add_dtm"));
			// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 START
			// 新料金コース用サービス契約内訳かどうか
			sodMap.put(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG, resultHash.get(JKKHakkoSODConstCC.INFO_NEW_CRS_FLAG));
			// IT1-2013-0001620 コース変更予約中の認証ID初期化・再振出時に発行するSODが誤っている 2013/09/01 END

			sodMap.put("op_svc_kei_no", null);
			sodMap.put("op_gene_add_dtm", null);

			sodMap.put("saihakko_div", hakko_div);
			sodMap.put("shori_div", shori_div);
		}
		// リモート操作用パスワード用
		else if (JKKHakkoSODConstCC.SHORI_DIV_RMT_SOSA.equals(shori_div))
		{
			sodMap.put("svc_kei_no", svc_kei_no);

			sodMap.put("svc_kei_ucwk_no", inHash.get("svc_kei_ucwk_no"));
			sodMap.put("ucwk_gene_add_dtm", resultHash.get("kk0161_gene_add_dtm"));

			sodMap.put("op_svc_kei_no", null);
			sodMap.put("op_gene_add_dtm", null);

			sodMap.put("saihakko_div", hakko_div);
			sodMap.put("shori_div", shori_div);
		}
	}


	/**
	 * 一時金設定登録可能かどうかを判定します。
	 * 
	 * @param usePlc_bf
	 * @param usePlc
	 * @param svcKeiMap
	 * @param svcKeiList
	 * @param icjknInMap 一時金設定用マップ
	 * @return
	 * @since 2013-05-31 巻３SG1-2013-0000089
	 */
	private boolean canAddIcjkn(HashMap svcKeiMap, ArrayList svcKeiList, HashMap<String,Object> icjknInMap) 
	{
		boolean ret = false;
		
		String svc_kei_no = (String) svcKeiMap.get("svc_kei_no");			// サービス契約番号
		
		//手数料が選択されていないならＮＧ
		boolean isComm = (Boolean)svcKeiMap.get("commision_sel");			// 手数料選択
		if (!isComm)
		{
			return false;
		}
		
		String usePlc = (String)svcKeiMap.get("use_plc");					// 利用場所を取得
		
		//eoモバイルは利用場所が異なるのでＯＫ
		String prcGrpCd = (String)svcKeiMap.get("svc_prc_grp_cd");			// 料金グループコード
		if (JKKStrConst.CD00133_07.equals(prcGrpCd)			//eoモバイル（Wi-Fi）
		||	JKKStrConst.CD00133_08.equals(prcGrpCd)			//eoモバイル（eMobile）
		||	JKKStrConst.CD00133_09.equals(prcGrpCd)			//eoモバイル（UQ-WiMAX）
		||	JKKStrConst.CD00133_01.equals(prcGrpCd)			//eoモバイル（64）
		||	JKKStrConst.CD00133_16.equals(prcGrpCd))		//eoモバイル（メールアドレス）
		{
			icjknInMap.put("svc_kei_no", svc_kei_no);
			icjknInMap.put("svc_kei_noX", "");
			icjknInMap.put("commision_sel", (Boolean)svcKeiMap.get("commision_sel"));
			icjknInMap.put("svc_prc_grp_cd", prcGrpCd);
			
			return true;
		}

		HashMap tgtMap = null;
		
		//******************************************************
		//* １回目、eo光ネットを特定して判定
		//*/
		for (int i = 0; i < svcKeiList.size(); i++)
		{
			// サービス契約マップ取得
			HashMap tmpMap = (HashMap)svcKeiList.get(i);
			
			if (!usePlc.equals((String)tmpMap.get("use_plc")))		//利用場所が異なるならスルー
			{
				continue;
			}
			
			String tmpSvcCd  = (String)tmpMap.get("svc_cd");				// サービスコード
			String tmpPrcGrpCd = (String)tmpMap.get("svc_prc_grp_cd");		// 料金グループコード
			// eo光ネット？
			if (JKKSvcConst.SVC_CD_NET.equals(tmpSvcCd)
			&& (JKKSvcConst.PRC_GRP_CD_NET_HM.equals(tmpPrcGrpCd)
			||	JKKSvcConst.PRC_GRP_CD_NET_MZ.equals(tmpPrcGrpCd)
			||	JKKSvcConst.PRC_GRP_CD_NET_MT.equals(tmpPrcGrpCd)))
			{
				tgtMap = tmpMap;
				break;
			}
		}
		
		// OM-2014-0001922対応 田中 ADD START
		//******************************************************
		//* ２回目、eo光ネットだめならeo光テレビを特定して判定
		//*/
		for (int i = 0; null == tgtMap && i < svcKeiList.size(); i++)
		{
			// サービス契約マップ取得
			HashMap tmpMap = (HashMap)svcKeiList.get(i);
			
			if (!usePlc.equals((String)tmpMap.get("use_plc")))		//利用場所が異なるならスルー
			{
				continue;
			}
			
			String tmpSvcCd  = (String)tmpMap.get("svc_cd");				// サービスコード
			String tmpPrcGrpCd = (String)tmpMap.get("svc_prc_grp_cd");		// 料金グループコード
			
			// eo光テレビの判定
			if (JKKSvcConst.SVC_CD_TV.equals(tmpSvcCd)
			&& (JKKSvcConst.PRC_GRP_CD_TV_KCAT.equals(tmpPrcGrpCd)
			||	JKKSvcConst.PRC_GRP_CD_TV_KCN.equals(tmpPrcGrpCd)
			||	JKKSvcConst.PRC_GRP_CD_TV_RE_SEND.equals(tmpPrcGrpCd)))
			{
				tgtMap = tmpMap;
				break;
			}
		}
		// OM-2014-0001922対応 田中 ADD END
		
		//******************************************************
		//* ２回目、eo光ネットだめならeo光電話を特定して判定
		//*/
		for (int i = 0; null == tgtMap && i < svcKeiList.size(); i++)
		{
			// サービス契約マップ取得
			HashMap tmpMap = (HashMap)svcKeiList.get(i);
			
			if (!usePlc.equals((String)tmpMap.get("use_plc")))		//利用場所が異なるならスルー
			{
				continue;
			}
			
			String tmpSvcCd  = (String)tmpMap.get("svc_cd");				// サービスコード
			// eo光電話？
			if (JKKSvcConst.SVC_CD_TEL.equals(tmpSvcCd))
			{
				tgtMap = tmpMap;
				break;
			}
		}
		
		//一時金設定対象のeo光ネット／eo光電話を特定でき、処理対象がeo光ネットなら一時金登録ＯＫ
		if (null != tgtMap)
		{
			String tgtSvcKeiNo = (String) tgtMap.get("svc_kei_no");
			ret = (svc_kei_no.equals(tgtSvcKeiNo));
			
			icjknInMap.put("svc_kei_no", svc_kei_no);
			icjknInMap.put("svc_kei_noX", tgtSvcKeiNo);
			icjknInMap.put("commision_sel", (Boolean)svcKeiMap.get("commision_sel"));	//対象の手数料選択
			icjknInMap.put("svc_prc_grp_cd", (String)tgtMap.get("svc_prc_grp_cd"));		//eo光ネットの料金グループコード
		}
		else
		{
			//自契約で手数料を出して良い
			ret = true;
			
			icjknInMap.put("svc_kei_no", svc_kei_no);
			icjknInMap.put("svc_kei_noX", "");
			icjknInMap.put("commision_sel", (Boolean)svcKeiMap.get("commision_sel"));
			icjknInMap.put("svc_prc_grp_cd", (String)svcKeiMap.get("svc_prc_grp_cd"));
		}
		
		return ret;
	}




// IT1-2013-0000004 2012/12/31 DEL START
// SODを発行するかどうかの判断はSODCC側で行う様に変更する為、当メソッドを削除(常にSODマッピングを行う)
//	/**
//	 * SOD送信を行いかどうかのチェックを行う
//	 * @param param 
//	 * @param handle 
//	 * @param svckeiMap 
//	 * @param svckeiMap
//	 * @param resultHash 
//	 * @return
//	 * @throws Throwable 
//	 */
//	private boolean checkSodHakko(IRequestParameterReadWrite param, SessionHandle handle,
//			HashMap<String, Object> svckeiMap, HashMap<String, Object> work) throws Throwable
//	{
////		HashMap<String, Object> eKK0111A010Hash = new HashMap<String, Object>();
//		HashMap<String, Object> eKK0341B002Hash = new HashMap<String, Object>();
//		HashMap<String, Object> resultHash = new HashMap<String, Object>();
//
//		// サービス契約＜eo光電話＞一意照会S/IF呼出
//		callEKK0111A010SC(
//					param, 
//					handle, 
//					svckeiMap, 
//					resultHash);
//
////		CAANMsg[] eKK0111A010CBSMSG1list = (CAANMsg[])resultHash.get(EKK0111A010CBSMsg.EKK0111A010CBSMSG1LIST);
////		eKK0111A010Hash = eKK0111A010CBSMSG1list[0].getMsgData();
////
////		// VLAN-ID確定フラグ
////		String tmpVlanIdFixFlg = (String) eKK0111A010Hash.get(EKK0111A010CBSMsg1List.VLAN_ID_FIX_FLG);
//
//		// 機器提供サービス契約一覧照会S/IF呼出
//		callEKK0341B002SC(
//					param, 
//					handle, 
//					svckeiMap, 
//					resultHash);
//		
//		CAANMsg[] eKK0341B002CBSMSG1list = (CAANMsg[])resultHash.get(EKK0341B002CBSMsg.EKK0341B002CBSMSG1LIST);
//
//		String tmpKikiSeizoNo = null;
//
//		for (int i = 0; eKK0341B002CBSMSG1list != null &&i < eKK0341B002CBSMSG1list.length; i++)
//		{
//			// 機器製造サービスコード
//			eKK0341B002Hash = eKK0341B002CBSMSG1list[i].getMsgData();
//			String tmpKktkSvcCd = (String)eKK0341B002Hash.get(EKK0341B002CBSMsg1List.KKTK_SVC_CD);
//
//			// 機器提供サービスコードがVAの場合
//			if (KKTK_SVC_CD_VA.equals(tmpKktkSvcCd))
//			{
//				// 機器製造番号を取得する
//				tmpKikiSeizoNo = (String)eKK0341B002Hash.get(EKK0341B002CBSMsg1List.KIKI_SEIZO_NO);
//				break;
//			}
//		}
//
//		// サービス契約ステータスが 「020:照査済み」
//		if (!SVC_KEI_STAT_020.equals((String)svckeiMap.get("svc_kei_stat"))
////				|| !VLAN_ID_FIX_FLG_ZUMI.equals(tmpVlanIdFixFlg)
//				)
//		{
//			return false;
//		}
//
//		// 機器製造番号がNULLの場合
//		if (isNull(tmpKikiSeizoNo))
//		{
//			return false;
//		}
//
//		return true;
//	}
// IT1-2013-0000004 2012/12/31 DEL END

	/**
	 * オブジェクトに値が設定されているか判定する
	 * 
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	private boolean isNull(Object arg0) 
	{
		if (arg0 == null) 
		{
			return true;
		}

		return 0 == arg0.toString().length();
	}
	
	/**
	 * エラーチェック処理です。 <br>
	 * 
	 * @param msgList サービスインタフェース実行結果
	 * @return void
	 * @throws SCCallException
	 */
	private void errChk(Map<?, ?> msgList) throws SCCallException
	{
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);

		// ステータス取得
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if ((0 != returnCode.intValue()) || (0 != templateStatus))
		{
			String errMsg = ERR_MSG;
			throw new SCCallException(errMsg, String.valueOf(returnCode), templateStatus);
		}
	}
	

	/**
	 * <pre>
	 * サービスコンポーネント実行後に、IRequestParameterReadWriteに必要なデータをマッピングする
	 * 
	 * @param msgList CAANMsgクラス
	 * @param param 業務データ取得・書込用I/F
	 * @return 業務データ取得・書込用I/F
	 * @throws Throwable
	 */
	public IRequestParameterReadWrite editResultRP(Map<?, ?> msgList, IRequestParameterReadWrite param)
			throws Throwable
	{
		// SCからの戻り値からCAANMsgを取得する。
		CAANMsg[] templates = (CAANMsg[])msgList.get(JCMConstants.TEMPLATE_LIST_KEY);
		CAANMsg template = templates[0];

		// リターンコード取得
		Integer returnCode = (Integer)msgList.get(JCMConstants.RET_CD_INT_KEY);

		// テンプレートID、ステータス取得
		String templateId = template.getString(JCMConstants.TEMPLATE_ID_KEY);
		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if (returnCode.intValue() != 0)
		{
			templateStatus = 9000;
		}
		if (JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)) == null)
		{
			templateStatus = 0;
		}

		int bpStatus = 0;
		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);
		if (obj == null)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);
			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(fText);

		// ユーザデータ情報にエラー情報をマッピング
		Object[][] contents = null;
		if (EKK0011D020.equals(templateId))
		{
			contents = new EKK0011D020CBSMsg().getContents();
		}
		else if (ECK0021C010.equals(templateId))
		{
			contents = new ECK0021C010CBSMsg().getContents();
		}
		else if (ECK0031C010.equals(templateId))
		{
			contents = new ECK0031C010CBSMsg().getContents();
		}
		else if (ECK0011C012.equals(templateId))
		{
			contents = new ECK0011C012CBSMsg().getContents();
		}
		else if (ECK0011C013.equals(templateId))
		{
			contents = new ECK0011C013CBSMsg().getContents();
		}
		else if (ECK0011C020.equals(templateId))
		{
			contents = new ECK0011C020CBSMsg().getContents();
		}
		else if (ECK0111C011.equals(templateId))
		{
			contents = new ECK0111C011CBSMsg().getContents();
		}
		else if (ECK0111C012.equals(templateId))
		{
			contents = new ECK0111C012CBSMsg().getContents();
		}
		else if (EKK0171C013.equals(templateId))
		{
			contents = new EKK0171C013CBSMsg().getContents();
		}
		else if (EKK0171C014.equals(templateId))
		{
			contents = new EKK0171C014CBSMsg().getContents();
		}
		else if (EKK0191C013.equals(templateId))
		{
			contents = new EKK0191C013CBSMsg().getContents();
		}
		else if (EKK0341B002.equals(templateId))
		{
			contents = new EKK0341B002CBSMsg().getContents();
		}
		else if (EKK0361C050.equals(templateId))
		{
			contents = new EKK0361C050CBSMsg().getContents();
		}
		else if (EKK0361C111.equals(templateId))
		{
			contents = new EKK0361C111CBSMsg().getContents();
		}
		else if (EKK0361C112.equals(templateId))
		{
			contents = new EKK0361C112CBSMsg().getContents();
		}
		else if (EKK1021C011.equals(templateId))
		{
			contents = new EKK1021C011CBSMsg().getContents();
		}
		else if (EKK0021A010.equals(templateId))
		{
			contents = new EKK0021A010CBSMsg().getContents();
		}
		else if (EKK1021D010.equals(templateId))
		{
			contents = new EKK1021D010CBSMsg().getContents();
		}
		else if (ECK0011A010.equals(templateId))
		{
			contents = new ECK0011A010CBSMsg().getContents();
		}
		else if (ECK0111B002.equals(templateId))
		{
			contents = new ECK0111B002CBSMsg().getContents();
		}
		else if (EKK0081A010.equals(templateId))
		{
			contents = new EKK0081A010CBSMsg().getContents();
		}
		else if (EKK0161B004.equals(templateId))
		{
			contents = new EKK0161B004CBSMsg().getContents();
		}
		else if (EKK0171A010.equals(templateId))
		{
			contents = new EKK0171A010CBSMsg().getContents();
		}
		else if (EKK0361A010.equals(templateId))
		{
			contents = new EKK0361A010CBSMsg().getContents();
		}
		else if (EKK0191A010.equals(templateId))
		{
			contents = new EKK0191A010CBSMsg().getContents();
		}
		else if (EKK0021C060.equals(templateId))
		{
			contents = new EKK0021C060CBSMsg().getContents();
		}
		else if (EKK1091D010.equals(templateId))
		{
			contents = new EKK1091D010CBSMsg().getContents();

			ArrayList inList = (ArrayList)inMap.get("EKK1091D010CBSMsg1List");
			if (inList == null)
			{
				inList = new ArrayList();
				inMap.put("EKK1091D010CBSMsg1List", inList);
			}

			CAANMsg[] templateArray = template.getCAANMsgList(EKK1091D010CBSMsg.EKK1091D010CBSMSG1LIST);

			if (templateArray != null)
			{
				for (int i = 0; i < templateArray.length; i++)
				{
					if (i >= inList.size())
					{
						inList.add(new HashMap());
					}

					HashMap childMap = (HashMap)inList.get(i);
					CAANMsg childTemplate = templateArray[i];

					// 対象データ.異動理由明細.異動理由コード → 異動理由明細.異動理由コード のエラー情報返却
					if (!childTemplate.isNull(EKK1091D010CBSMsg1List.IDO_RSN_CD_ERR))
					{
						if (!childMap.containsKey("ido_rsn_cd_err"))
						{
							childMap.put("ido_rsn_cd_err", childTemplate
									.getString(EKK1091D010CBSMsg1List.IDO_RSN_CD_ERR));
						}
					}
					// 対象データ.異動理由明細.異動理由メモ → 異動理由明細.異動理由メモ のエラー情報返却
					if (!childTemplate.isNull(EKK1091D010CBSMsg1List.IDO_RSN_MEMO_ERR))
					{
						if (!childMap.containsKey("ido_rsn_memo_err"))
						{
							childMap.put("ido_rsn_memo_err", childTemplate
									.getString(EKK1091D010CBSMsg1List.IDO_RSN_MEMO_ERR));
						}
					}
				}
			}
		}
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 START
		else if (EKK0081B004.equals(templateId))
		{
			contents = new EKK0081B004CBSMsg().getContents();
		}
		else if (EKK0341B022.equals(templateId))
		{
			contents = new EKK0341B022CBSMsg().getContents();
		}
		// ANK-1469-00-00 ＩＤ登録証随時発行対応 2013/02/19 END
// OM-2018-0001294 2019/02/15 ADD START
		else if (EZM0111B050.equals(templateId))
		{
			contents = new EZM0111B050CBSMsg().getContents();
		}
		else if (EZM0111C010.equals(templateId))
		{
			contents = new EZM0111C010CBSMsg().getContents();
		}
		else if (EZM0111C030.equals(templateId))
		{
			contents = new EZM0111C030CBSMsg().getContents();
		}
// OM-2018-0001294 2019/02/15 ADD END
		
		for (int i = 0; contents != null && i < contents.length; i++)
		{
			String element = null;
			element = (String)contents[i][0];
			if (element.indexOf("_err") > 0)
			{
				if (!template.isNull(element))
				{
					if (!inMap.containsKey(element))
					{
						inMap.put(element, template.getString(element));
					}
				}
			}
		}

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);
		if (errList == null)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(msgList, errList));

		return param;
	}

	/**
	 * 
	 * @param	param
	 * @param	handle
	 * @param	svcKeiMap
	 * @param	resultHash
	 * @return
	 */
	private String getSvcLastUpdDtm(
			IRequestParameterReadWrite param,
			SessionHandle handle,
			HashMap<String ,Object> svcKeiMap,
			HashMap<String ,Object> resultHash
	) throws Throwable
	{
		String lastUpdDtm = "";

		// ********************************************** //
		// サービス契約一意照会                           //
		// ********************************************** //
		callEKK0081A010SC(
				param,
				handle,
				svcKeiMap,
				resultHash
		);
		CAANMsg[] eKK0081A010CBSMSG1list = (CAANMsg[])resultHash.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		HashMap<String, Object> eKK0081A010CBSMSG1 = eKK0081A010CBSMSG1list[0].getMsgData();

		lastUpdDtm = (String)eKK0081A010CBSMSG1.get("last_upd_dtm");

		return lastUpdDtm;
	}
	
	//OM-2015-0002751 2015/10/28 ADD START
	/**
	 * 異動予約一覧照会SIF呼び出し
	 * @param param
	 * @param handle
	 * @param svcKeiUcwkNo
	 * @param resultHash
	 * @return
	 * @throws Throwable
	 */
	private int callEKK1681B001SC(IRequestParameterReadWrite param, SessionHandle handle, String svcKeiUcwkNo,
			HashMap<String, Object> resultHash) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EKK1681B001への呼び出しパラメータ設定
		template = new CAANMsg(EKK1681B001CBSMsg.class.getName());
		mappingEKK1681B001InMsg(template, svcKeiUcwkNo);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * templateに対してEKK1681B001の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEKK1681B001InMsg(CAANMsg template, String svcKeiUcwkNo)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EKK1681B001CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EKK1681B001CBSMsg.TEMPLATEID, EKK1681B001);

		// 機能コード--サービス契約内訳一覧照会
		template.set(EKK1681B001CBSMsg.FUNC_CODE, FUNC_CD_1);

		// サービス契約内訳番号
		template.set(EKK1681B001CBSMsg.KEY_SVC_KEI_UCWK_NO, svcKeiUcwkNo);
		
		//異動予約状態コード
		template.set(EKK1681B001CBSMsg.KEY_IDO_RSV_STAT_CD, JKKSvcConst.IDO_RSV_STAT_00 + "," + JKKSvcConst.IDO_RSV_STAT_03 ); // 固定："00"（未反映）＋"03"（手続き中）
		
		//異動予約詳細コード
		template.set(EKK1681B001CBSMsg.KEY_IDO_RSV_DTL_CD, JKKSvcConst.IDO_RSV_DTL_CD_007); // 固定："007"（未反映）
		
	}
	
	//OM-2015-0002751 2015/10/28 ADD END
// OM-2018-0001294 2019/02/15 ADD START
	/**
	 * eoID変更チェック<br />
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param eoID eoid
	 * @return チェック結果(true:eoID変更、false:eoID変更以外)
	 */
	public static boolean checkEoidChangeMoji(String eoid)
	{
		// 51で始まる12桁の数値以外どうかをチェックする
		if (eoid != null && !eoid.matches("51[0-9]{10}"))
		{
			return true;
		}
		
		return false;
	}
	
	/**
	 * エイジング一覧照会SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param eCK0011A010
	 * @param eZM0111B050Hash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEZM0111B050SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap eCK0011A010,
			HashMap<String, Object> eZM0111B050Hash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0111B050への呼び出しパラメータ設定
		template = new CAANMsg(EZM0111B050CBSMsg.class.getName());
		mappingEZM0111B050InMsg(template, eCK0011A010, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		eZM0111B050Hash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * templateに対してEZM0111B050の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEZM0111B050InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0111B050CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0111B050CBSMsg.TEMPLATEID, EZM0111B050);

		// 機能コード--エイジング一覧照会
		template.set(EZM0111B050CBSMsg.FUNC_CODE, funcCd);
		
		// ＫＥＹ＿エイジング種別コード
		template.set(EZM0111B050CBSMsg.KEY_AGING_SBT_CD, JKKStrConst.CD00412_EOID);
		
		// ＫＥＹ＿エイジングステータス
		template.set(EZM0111B050CBSMsg.KEY_AGING_STAT, JKKStrConst.CD00063_USING);
		
		// ＫＥＹ＿エイジング対象値
		template.set(EZM0111B050CBSMsg.KEY_AGING_TG_VALUE, inHash.get(ECK0011A010CBSMsg1List.EOID));
	}
	
	/**
	 * 回復可能期間終了SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param eZM0111B050
	 * @param eZM0111C010Hash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEZM0111C010SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap eZM0111B050,
			HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0111C010への呼び出しパラメータ設定
		template = new CAANMsg(EZM0111C010CBSMsg.class.getName());
		mappingEZM0111C010InMsg(template, eZM0111B050, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * templateに対してEZM0111C010の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEZM0111C010InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0111C030CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0111C030CBSMsg.TEMPLATEID, EZM0111C010);

		// 機能コード--エイジング一覧照会
		template.set(EZM0111C030CBSMsg.FUNC_CODE, funcCd);
		
		// エイジング種別コード
		template.set(EZM0111C030CBSMsg.AGING_SBT_CD, JKKStrConst.CD00412_EOID);
		
		// エイジング対象値
		template.set(EZM0111C030CBSMsg.AGING_TG_VALUE, inHash.get(EZM0111B050CBSMsg1List.AGING_TG_VALUE));
		
		// 更新前最終年月日時分秒
		template.set(EZM0111C030CBSMsg.LAST_UPD_DTM_BF, inHash.get(EZM0111B050CBSMsg1List.UPD_DTM));
	}
	
	/**
	 * 回復可能期間終了SIF呼び出し
	 * 
	 * @param param
	 * @param handle
	 * @param paramMap
	 * @param eZM0111C010Hash
	 * @param resultHash
	 * @return
	 * @throws RequestParameterException
	 * @throws SCException
	 */
	private int callEZM0111C030SC(IRequestParameterReadWrite param, SessionHandle handle, HashMap eZM0111C010,
			HashMap<String, Object> resultHash, String funcCd) throws Throwable
	{
		HashMap<String, Object> sIFRequest = null;
		CAANMsg template = null;
		ServiceComponentRequestInvoker scCall = null;
		Map<?, ?> sIFResult = null;
		int status = 0;

		// サービスIF共通の情報を設定
		sIFRequest = editInMsgCmn(param);

		// EZM0111C030への呼び出しパラメータ設定
		template = new CAANMsg(EZM0111C030CBSMsg.class.getName());
		mappingEZM0111C030InMsg(template, eZM0111C010, funcCd);
		editBasicCmn(param, template);

		// リクエスト用クラスの設定
		sIFRequest.put(JCMConstants.TEMPLATE_LIST_KEY, new CAANMsg[]
		{
			template
		});

		// SC呼び出しクラスの生成
		scCall = new ServiceComponentRequestInvoker();

		// SIFの呼び出し
		sIFResult = scCall.run(sIFRequest, handle);
		// エラーマッピング
		editResultRP(sIFResult, param);
		// エラーチェック処理
		errChk(sIFResult);

		// SIFの実行結果を設定
		resultHash.putAll(getWorkCAANMsg(sIFResult));

		// ステータスコードの取得
		status = template.getInt(JCMConstants.STATUS_INT_KEY);

		return status;
	}
	
	/**
	 * templateに対してEZM0111C030の条件に関する部分を設定する
	 * 
	 * @param template
	 * @param inHash
	 */
	private void mappingEZM0111C030InMsg(CAANMsg template, HashMap inHash, String funcCd)
	{
		// 全条件のNullマッピング
		fillCAANMSGNullMapping(template, new EZM0111C030CBSMsg().getContents());

		// テンプレートID(SIFのID)
		template.set(EZM0111C030CBSMsg.TEMPLATEID, EZM0111C030);

		// 機能コード--エイジング一覧照会
		template.set(EZM0111C030CBSMsg.FUNC_CODE, funcCd);
		
		// エイジング種別コード
		template.set(EZM0111C030CBSMsg.AGING_SBT_CD, JKKStrConst.CD00412_EOID);
		
		// エイジング対象値
		template.set(EZM0111C030CBSMsg.AGING_TG_VALUE, inHash.get(EZM0111C010CBSMsg.AGING_TG_VALUE));
		
		// 更新前最終年月日時分秒
		template.set(EZM0111C030CBSMsg.LAST_UPD_DTM_BF, inHash.get(EZM0111C010CBSMsg.UPD_DTM));
	}
// OM-2018-0001294 2019/02/15 ADD END
}
