/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：KKA440SFLogic
 *   ソースファイル名：KKA440SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年09月27日
 *＜機能概要＞
 *   KDDI向け契約者情報参照(API)のビューロジックです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v4.00.00    2012/09/27   FJ）赤穂    新規作成
 *   v4.00.01    2013/02/16   FJ）強矢    【ST1-2013-0000362】対応
 *   v4.00.02    2013/02/17   FJ）強矢    【ST1-2013-0000355】対応
 *   v4.00.03    2013/02/22   FJ）強矢    【ST1-2013-0000401】対応
*	v39.00.00    2018/10/26   FJ) 吉田    【ANK-3478-00-00】eo光設備卸（サービス開始対応）
 **********************************************************************/
package eo.web.webview.KKA440SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;

import java.util.HashMap;

import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31CMessageResult.X31CMessageMoreInfo;

import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKApiCommon;
import eo.web.webview.mapping.KKSV0637_KKSV0637OPDBMapper;

/**
 * KKA440のビューロジックです。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKA440SFLogic extends JCCWebBusinessLogic
{
	
	/**
	 * 業務処理名
	 */
	private static final String BUSINESS_LOGIC_NM = "KDDI向け契約者情報参照";
	
	/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
	/**
	 * 要求電文項目
	 */
	private static final String[] KEY_REQ_PARAM_NM = {"KIYKSHA_MI",			// 契約者氏名（漢字）
														"KIYKSHA_MI_KN",		// 契約者氏名（カナ）
														"DNW_BNGU",				// ｅｏ光電話番号
														"MUSKM_BNGU",			// 申込書番号
														"RNRKSK_BNGU",			// 連絡先電話番号
														"SINNGP",				// 生年月日
														"TNMT_STBSHO_JUSHO"};	// 利用場所住所
	/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
	
	/**
	 * 応答電文パラメータ名
	 */
	private static final String[] KEY_RES_PARAM_NM = {"KNSK_UKTK_BNGU",	// [0] 検索依頼番号
														"KNRYO_CD",			// [1] 完了コード
														"SHOSI_CD",			// [2] 詳細コード
														"NETKNSU",			// [3] ネット存在件数
														"PRMT1",			// [4] 申込書番号
														"PRMT2",			// [5] 契約者氏名（漢字）
														"PRMT3",			// [6] 契約者氏名（カナ）
														"PRMT4",			// [7] 生年月日
														"PRMT5",			// [8] 利用場所郵便番号
														"PRMT6",			// [9] 利用場所住所
														"PRMT7",			// [10] 契約者電話番号
														"PRMT8",			// [11] ａｕスマートバリューコード
														"PRMT9",			// [12] ネットのスマートバリュー申込可否
														"PRMT10",			// [13] ネット申込不可理由
														"PRMT11",			// [14] ネットお客様の案内
														"PRMT12",			// [15] ネットの契約状態
														"PRMT13",			// [16] 解約済ｅｏ光電話のスマバリ申込可否
														"PRMT14",			// [17] 解約済ｅｏ光電話申込不可理由
														"PRMT15",			// [18] 解約済ｅｏ光電話のお客様への案内
														"PRMT16",			// [19] 解約済ｅｏ光電話の契約状態
														"PRMT17",			// [20] 解約済ｅｏ光電話番号
														"PRMT18",			// [21] ｅｏ光電話１のスマバリ申込可否
														"PRMT19",			// [22] ｅｏ光電話１申込不可理由
														"PRMT20",			// [23] ｅｏ光電話１のお客様の案内
														"PRMT21",			// [24] ｅｏ光電話１の契約状態
														"PRMT22",			// [25] ｅｏ光電話１の電話番号
														"PRMT23",			// [26] ｅｏ光電話２の電話番号
														"PRMT24",			// [27] ｅｏ光電話３の電話番号
														"PRMT25",			// [28] ｅｏ光電話４の電話番号
														"PRMT26",			// [29] ＴＶの契約状態
														"PRMT27",			// [30] パラメータ２７
														"PRMT28",			// [31] パラメータ２８
														"PRMT29",			// [32] 卸先事業者名
														"PRMT30",			// [33] パラメータ３０
														"PRMT31",			// [34] パラメータ３１
														"PRMT32",			// [35] パラメータ３２
														"PRMT33",			// [36] パラメータ３３
														"PRMT34",			// [37] パラメータ３４
														"PRMT35",			// [38] パラメータ３５
														"PRMT36",			// [39] パラメータ３６
														"PRMT37",			// [40] パラメータ３７
														"PRMT38",			// [41] パラメータ３８
														"PRMT39",			// [42] パラメータ３９
														"PRMT40",			// [43] パラメータ４０
														"PRMT41",			// [44] パラメータ４１
														"PRMT42",			// [45] パラメータ４２
														"PRMT43",			// [46] パラメータ４３
														"PRMT44",			// [47] パラメータ４４
														"PRMT45",			// [48] パラメータ４５
														"PRMT46",			// [49] パラメータ４６
														"PRMT47",			// [50] パラメータ４７
														"PRMT48",			// [51] パラメータ４８
														"PRMT49",			// [52] パラメータ４９
														"PRMT50",			// [53] パラメータ５０
														"PRMT51",			// [54] パラメータ５１
														"PRMT52",			// [55] パラメータ５２
														"PRMT53",			// [56] パラメータ５３
														"PRMT54",			// [57] パラメータ５４
														"PRMT55",			// [58] パラメータ５５
														"PRMT56",			// [59] パラメータ５６
														"PRMT57",			// [60] パラメータ５７
														"PRMT58",			// [61] パラメータ５８
														"PRMT59",			// [62] パラメータ５９
														"PRMT60",			// [63] パラメータ６０
														"PRMT61",			// [64] パラメータ６１
														"PRMT62",			// [65] パラメータ６２
														"PRMT63",			// [66] パラメータ６３
														"PRMT64",			// [67] パラメータ６４
														"PRMT65",			// [68] パラメータ６５
														"PRMT66",			// [69] パラメータ６６
														"PRMT67",			// [70] パラメータ６７
														"PRMT68",			// [71] パラメータ６８
														"PRMT69",			// [72] パラメータ６９
														"PRMT70",			// [73] パラメータ７０
														"PRMT71",			// [74] パラメータ７１
														"PRMT72",			// [75] パラメータ７２
														"PRMT73",			// [76] パラメータ７３
														"PRMT74",			// [77] パラメータ７４
														"PRMT75",			// [78] パラメータ７５
														"PRMT76",			// [79] パラメータ７６
														"PRMT77",			// [80] パラメータ７７
														"PRMT78",			// [81] パラメータ７８
														"PRMT79",			// [82] パラメータ７９
														"PRMT80",			// [83] パラメータ８０
														"PRMT81",			// [84] パラメータ８１
														"PRMT82",			// [85] パラメータ８２
														"PRMT83",			// [86] パラメータ８３
														"PRMT84",			// [87] パラメータ８４
														"PRMT85",			// [88] パラメータ８５
														"PRMT86",			// [89] パラメータ８６
														"PRMT87",			// [90] パラメータ８７
														"PRMT88",			// [91] パラメータ８８
														"PRMT89",			// [92] パラメータ８９
														"PRMT90",			// [93] パラメータ９０
														"PRMT91",			// [94] パラメータ９１
														"PRMT92",			// [95] パラメータ９２
														"PRMT93",			// [96] パラメータ９３
														"PRMT94",			// [97] パラメータ９４
														"PRMT95",			// [98] パラメータ９５
														"PRMT96",			// [99] パラメータ９６
														"PRMT97",			// [100] パラメータ９７
														"PRMT98",			// [101] パラメータ９８
														"PRMT99",			// [102] パラメータ９９
														"PRMT100" };		// [103] パラメータ１００
	
	/** 結果コード(007001) */
	private static final String RESULT_CD_007001 = "007001";
	/** 結果コード(009003) */
	private static final String RESULT_CD_009003 = "009003";
	/** 結果コード(009008) */
	private static final String RESULT_CD_009008 = "009008";
	/** 結果コード(009009) */
	private static final String RESULT_CD_009009 = "009009";
	/** 結果コード(009010) */
	private static final String RESULT_CD_009010 = "009010";
	/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
//	/** 結果コード(819006) */
//	private static final String RESULT_CD_819006 = "819006";
	/** 結果コード(000000) */
	private static final String RESULT_CD_000000 = "000000";
	/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
	
	/**
	 * KDDI向け契約者情報参照の処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception エラーが発生した場合
	 */
	public boolean init() throws Exception
	{
		// サービス結果格納用サービスフォームBean
		X31SDataBeanAccess bean = null;
		StringBuffer rspMsg = new StringBuffer();
		
		try
		{
			// サービス結果格納用サービスフォームBean取得
			bean = getServiceFormBean();
			
			X31SDataBeanAccess commonBean = super.getCommonInfoBean();
			
			// ■ 業務規制チェック
			if (!JKKApiCommon.checkRequestRestriction(commonBean))
			{
				// 規制中の場合
				DEBUG_LOG.debug("■業務規制エラー");
				
				// "M" "007001"（業務規制エラー）
				Exception ex = new Exception("メンテナンス中です。");
				
				// 例外発生したソースコードの行番号を取得し５桁となるようにゼロ埋め
				String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
				
				HashMap<String, Object> errMap = new HashMap<String, Object>();
				errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_007001));
				errMap.put("WDA_COM_RESULT", RESULT_CD_007001);
				errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
				errMap.put("WDA_COM_DETAIL2", line_num);
				errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
				errMap.put("WDA_COM_DETAIL4", "");
				errMap.put("WDA_COM_DETAIL5", "");
				errMap.put("WDA_COM_DETAIL6", "顧客サーバ");
				
				// 処理応答電文（共通セクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getCommonSector(errMap));
				
				// 返却値の設定
				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
				return true;
			}
			
			// 処理要求電文より、パラメータを取得する。
			HashMap<String, Object> reqMap = super.getRequestParams();
			
			/* ++++++++++ v4.00.03 修正開始 ++++++++++ */
			for (int i = 0; i < KEY_REQ_PARAM_NM.length; i++)
			{
				reqMap.put(KEY_REQ_PARAM_NM[i], JKKApiCommon.charConverter((String)reqMap.get(KEY_REQ_PARAM_NM[i])));
			}
			/* ++++++++++ v4.00.03 修正終了 ++++++++++ */
			
			/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
			JKKApiCommon.setNulltoBlank(reqMap, KEY_REQ_PARAM_NM);
			/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
			
			String kiyksha_mi        = (String)reqMap.get("KIYKSHA_MI");		// 契約者氏名（漢字）
			String kiyksha_mi_kn     = (String)reqMap.get("KIYKSHA_MI_KN");		// 契約者氏名（カナ）
			String huzn_kiyk_chek    = (String)reqMap.get("HUZN_KIYK_CHEK");	// 法人契約チェック
			String dnw_bngu          = (String)reqMap.get("DNW_BNGU");			// ｅｏ光電話番号
			String muskm_bngu        = (String)reqMap.get("MUSKM_BNGU");		// 申込書番号
			String rnrksk_bngu       = (String)reqMap.get("RNRKSK_BNGU");		// 連絡先電話番号
			String sinngp            = (String)reqMap.get("SINNGP");			// 生年月日
			String tnmt_stbsho_jusho = (String)reqMap.get("TNMT_STBSHO_JUSHO");	// 利用場所住所
			
			// 関連必須チェック(契約者氏名)
			if (JKKApiCommon.isNull(kiyksha_mi) && JKKApiCommon.isNull(kiyksha_mi_kn))
			{
				// "E" "009008"（必須項目が未設定の場合）
				Exception ex = new Exception("必須項目が設定されていません。");
				
				// 例外発生したソースコードの行番号を取得し5桁となるようにゼロ埋め
				String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
				
				HashMap<String, Object> errMap = new HashMap<String, Object>();
				errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009008));
				errMap.put("WDA_COM_RESULT", RESULT_CD_009008);
				errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
				errMap.put("WDA_COM_DETAIL2", line_num);
				errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
				errMap.put("WDA_COM_DETAIL4", "KIYKSHA_MI, KIYKSHA_MI_KN");
				errMap.put("WDA_COM_DETAIL5", "");
				errMap.put("WDA_COM_DETAIL6", "");
				
				HashMap<String, Object> simpleMap = initSimpleSectorMap();
				simpleMap.put(KEY_RES_PARAM_NM[1], "1010");
				simpleMap.put(KEY_RES_PARAM_NM[2], "10010");
				simpleMap.put(KEY_RES_PARAM_NM[3], "0");
				
				// 処理応答電文（共通セクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getCommonSector(errMap));
				// 処理応答電文（シンプルセクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
				// 返却値の設定
				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
				return true;
			}
			
			// 項目値チェック(法人契約チェック)
			if (!"0".equals(huzn_kiyk_chek) && !"1".equals(huzn_kiyk_chek))
			{
				// "E" "009008"（法人契約チェック項目値が不正の場合）
				Exception ex = new Exception("法人契約チェック項目値が不正です。");
				
				// 例外発生したソースコードの行番号を取得し5桁となるようにゼロ埋め
				String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
				
				HashMap<String, Object> errMap = new HashMap<String, Object>();
				errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009008));
				errMap.put("WDA_COM_RESULT", RESULT_CD_009008);
				errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
				errMap.put("WDA_COM_DETAIL2", line_num);
				errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
				errMap.put("WDA_COM_DETAIL4", "HUZN_KIYK_CHEK");
				errMap.put("WDA_COM_DETAIL5", "");
				errMap.put("WDA_COM_DETAIL6", "");
				
				HashMap<String, Object> simpleMap = initSimpleSectorMap();
				simpleMap.put(KEY_RES_PARAM_NM[1], "1030");
				simpleMap.put(KEY_RES_PARAM_NM[2], "10030");
				simpleMap.put(KEY_RES_PARAM_NM[3], "0");
				
				// 処理応答電文（共通セクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getCommonSector(errMap));
				// 処理応答電文（シンプルセクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
				// 返却値の設定
				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
				return true;
			}
			
			// 関連必須チェック(ｅｏ光電話番号、申込書番号、連絡先電話番号、生年月日)
			if (JKKApiCommon.isNull(dnw_bngu) && 
				JKKApiCommon.isNull(muskm_bngu) && 
				JKKApiCommon.isNull(rnrksk_bngu) && 
				JKKApiCommon.isNull(sinngp))
			{
				// "E" "009008"（必須項目が未設定の場合）
				Exception ex = new Exception("必須項目が設定されていません。");
				
				// 例外発生したソースコードの行番号を取得し5桁となるようにゼロ埋め
				String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
				
				HashMap<String, Object> errMap = new HashMap<String, Object>();
				errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009008));
				errMap.put("WDA_COM_RESULT", RESULT_CD_009008);
				errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
				errMap.put("WDA_COM_DETAIL2", line_num);
				errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
				errMap.put("WDA_COM_DETAIL4", "DNW_BNGU, MUSKM_BNGU, RNRKSK_BNGU, SINNGP");
				errMap.put("WDA_COM_DETAIL5", "");
				errMap.put("WDA_COM_DETAIL6", "");
				
				HashMap<String, Object> simpleMap = initSimpleSectorMap();
				simpleMap.put(KEY_RES_PARAM_NM[1], "1020");
				simpleMap.put(KEY_RES_PARAM_NM[2], "10020");
				simpleMap.put(KEY_RES_PARAM_NM[3], "0");
				
				// 処理応答電文（共通セクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getCommonSector(errMap));
				// 処理応答電文（シンプルセクタ）の形式に変換
				rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
				// 返却値の設定
				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(kiyksha_mi, "KIYKSHA_MI", 45))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(kiyksha_mi_kn, "KIYKSHA_MI_KN", 120))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(dnw_bngu, "DNW_BNGU", 11))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(muskm_bngu, "MUSKM_BNGU", 10))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(rnrksk_bngu, "RNRKSK_BNGU", 11))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(sinngp, "SINNGP", 8))
			{
				return true;
			}
			
			// 最大桁数チェック
			if(!isMaxLength(tnmt_stbsho_jusho, "TNMT_STBSHO_JUSHO", 100))
			{
				return true;
			}
			
			// 数字チェック
			if ((!isNumber(dnw_bngu, "DNW_BNGU")) ||
				(!isNumber(rnrksk_bngu, "RNRKSK_BNGU")) ||
				(!isNumber(sinngp, "SINNGP")))
			{
				return true;
			}
			
			// オンライン運用日付取得
			String opeDate = JCCWebCommon.getOpeDate(this, null);
			
			// サービス呼び出し準備
			HashMap<String, Object> paramMap = new HashMap<String, Object>();
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0637");
			
			HashMap<String, HashMap<String, Object>> inputMap = new HashMap<String, HashMap<String, Object>>();
			HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();
			
			KKSV0637_KKSV0637OPDBMapper mapper = new KKSV0637_KKSV0637OPDBMapper();
			mapper.setKKSV063701CC(reqMap, inputMap, opeDate);
			
			// サービス呼出
			try
			{
				invokeService(paramMap, inputMap, outputMap);
			}
			catch(JCCWebServiceException jwse)
			{
				// ■ サービスエラー情報のログ出力
				JKKApiCommon.printDebugLog(jwse);
				
				X31CMessageResult messageResult = jwse.getMessageList();
				
				if(messageResult != null)
				{
					X31CMessageMoreInfo[] msgMoreInfoList = messageResult.getMessageMoreInfoList();
					
					if(msgMoreInfoList != null && msgMoreInfoList.length > 0)
					{
						
						/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
//						HashMap<String, Object> errMap = new HashMap<String, Object>();
//						errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_819006));
//						errMap.put("WDA_COM_RESULT", RESULT_CD_819006);
//						errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
//						errMap.put("WDA_COM_DETAIL2", "");
//						errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
//						errMap.put("WDA_COM_DETAIL4", "");
//						errMap.put("WDA_COM_DETAIL5", "");
//						errMap.put("WDA_COM_DETAIL6", "顧客検索結果該当なし");
						/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
						
						HashMap<String, Object> simpleMap = initSimpleSectorMap();
						/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
//						simpleMap.put(KEY_RES_PARAM_NM[1], "9030");
						simpleMap.put(KEY_RES_PARAM_NM[1], "0");
						simpleMap.put(KEY_RES_PARAM_NM[2], "0");
						simpleMap.put(KEY_RES_PARAM_NM[3], "0");
						/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
						
						// 処理応答電文（共通セクタ）の形式に変換
						/* ++++++++++ v4.00.01 修正開始 ++++++++++ */
//						rspMsg.append(JKKApiCommon.getCommonSector(errMap));
						rspMsg.append(JKKApiCommon.getCommonSector(RESULT_CD_000000));
						/* ++++++++++ v4.00.01 修正終了 ++++++++++ */
						
						// 処理応答電文（シンプルセクタ）の形式に変換
						rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
						// 返却値の設定
						bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
						return true;
						
					}
					else
					{
						throw jwse;
					}
				}
				else
				{
					throw jwse;
				}
				
			}
			
			// サービス結果の転記
			HashMap<String, Object> comMap = new HashMap<String, Object>();
			HashMap<String, Object> simpleMap = initSimpleSectorMap();
			
			mapper.getKKSV063701CCResultCd(comMap, outputMap);
			String result_cd = (String)comMap.get("WDA_COM_RESULT");
			
			DEBUG_LOG.debug("■返却コード：" + result_cd);
			
			// サービスの処理結果が正常（返却コード"000000"）の場合
			if ("000000".equals(result_cd))
			{
				// 処理応答電文（共通セクタ）
				rspMsg.append(JKKApiCommon.getCommonSector(result_cd));
				
				// 処理応答電文（シンプルセクタ）
				mapper.getKKSV063701CC(simpleMap, outputMap);
				rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
				
				/* ++++++++++ v4.00.02 修正開始 ++++++++++ */
				// 返却値の設定
//				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
				
				// Shift-JIS に変換
				String covertRspMsg = JKKApiCommon.charConverter(rspMsg.toString(), "Shift-JIS");
				
				// 返却値の設定
				bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, covertRspMsg);
				/* ++++++++++ v4.00.02 修正終了 ++++++++++ */
				return true;
			}
			
			// 返却コード不正
			throw new Exception("処理結果コードが取得できませんでした。");
		}
		catch (Exception e)
		{
			DEBUG_LOG.debug("■致命的なエラー発生");
			
			// ■例外トレースのログ出力
			JKKApiCommon.printDebugLog(e);
			
			// 処理で致命的なエラー（返却コード"009003"）が発生した場合
			// 例外発生したソースコードの行番号を取得し5桁となるようにゼロ埋め
			String line_num = JPCEditString.fillZero(String.valueOf(e.getStackTrace()[0].getLineNumber()), 5, false);
			
			HashMap<String, Object> errMap = new HashMap<String, Object>();
			errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009003));
			errMap.put("WDA_COM_RESULT", RESULT_CD_009003);
			errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
			errMap.put("WDA_COM_DETAIL2", line_num);
			errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
			errMap.put("WDA_COM_DETAIL4", "");
			errMap.put("WDA_COM_DETAIL5", "");
			errMap.put("WDA_COM_DETAIL6", e.toString());
			
			HashMap<String, Object> simpleMap = initSimpleSectorMap();
			simpleMap.put(KEY_RES_PARAM_NM[1], "9100");
			
			// 処理応答電文（共通セクタ）の形式に変換
			rspMsg.append(JKKApiCommon.getCommonSector(errMap));
			// 処理応答電文（シンプルセクタ）の形式に変換
			rspMsg.append(JKKApiCommon.getSimpleSector(simpleMap));
			// 返却値の設定
			bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, rspMsg.toString());
			return true;
		}
	}
	
	/**
	 * 応答電文(シンプルセクタ)用マップの初期化処理
	 * @return HashMap
	 */
	private HashMap<String, Object> initSimpleSectorMap()
	{
		
		HashMap<String, Object> map = new HashMap<String, Object>();
		
		for(int i = 0; i < KEY_RES_PARAM_NM.length; i++)
		{
			
			map.put(KEY_RES_PARAM_NM[i], "");
			
		}
		
		return map;
	}
	
	/**
	* 最大桁数チェックを実行する。
	* 
	* @param value
	* @param itemNm
	* @param length
	* @return true:正常 false:エラー
	*/
	private boolean isMaxLength(String value, String itemNm, int length)
	{
		// サービス結果格納用サービスフォームBean取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// ■ 最大桁数チェック
		if (length < value.length())
		{
			DEBUG_LOG.debug("■最大桁数を超えています。");
			
			// "E" "009010"（最大桁数チェックエラー）
			Exception ex = new Exception("最大桁数を超えています。");
			
			// 例外発生したソースコードの行番号を取得し５桁となるようにゼロ埋め
			String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
			
			HashMap<String, Object> errMap = new HashMap<String, Object>();
			errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009010));
			errMap.put("WDA_COM_RESULT", RESULT_CD_009010);
			errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
			errMap.put("WDA_COM_DETAIL2", line_num);
			errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
			errMap.put("WDA_COM_DETAIL4", itemNm);
			errMap.put("WDA_COM_DETAIL5", "");
			errMap.put("WDA_COM_DETAIL6", value);
			
			// 処理応答電文（共通セクタ）の形式に変換
			String strRsp = JKKApiCommon.getCommonSector(errMap);
			
			// 返却値の設定
			bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, strRsp);
			
			return false;
		}
		
		return true;
	}
	
	/**
	* 数字チェックを実行する。
	* 
	* @param value
	* @param itemNm
	* @return true:正常 false:エラー
	*/
	private boolean isNumber(String value, String itemNm)
	{
		// サービス結果格納用サービスフォームBean取得
		X31SDataBeanAccess bean = getServiceFormBean();
		
		if(JKKApiCommon.isNull(value))
		{
			return true;
		}
		
		// ■ 数字チェック
		if (!JKKApiCommon.isNumber(value))
		{
			DEBUG_LOG.debug("■数字ではありません。");
			
			// "E" "009009"（数字チェックエラー）
			Exception ex = new Exception("数字ではありません。");
			
			// 例外発生したソースコードの行番号を取得し５桁となるようにゼロ埋め
			String line_num = JPCEditString.fillZero(String.valueOf(ex.getStackTrace()[0].getLineNumber()), 5, false);
			
			HashMap<String, Object> errMap = new HashMap<String, Object>();
			errMap.put("WDA_COM_RTYPE", JKKApiCommon.getRtype(RESULT_CD_009009));
			errMap.put("WDA_COM_RESULT", RESULT_CD_009009);
			errMap.put("WDA_COM_DETAIL1", this.getClass().getName());
			errMap.put("WDA_COM_DETAIL2", line_num);
			errMap.put("WDA_COM_DETAIL3", BUSINESS_LOGIC_NM);
			errMap.put("WDA_COM_DETAIL4", itemNm);
			errMap.put("WDA_COM_DETAIL5", "");
			errMap.put("WDA_COM_DETAIL6", value);
			
			// 処理応答電文（共通セクタ）の形式に変換
			String strRsp = JKKApiCommon.getCommonSector(errMap);
			
			// 返却値の設定
			bean.sendMessageString(KKA440SFConst.RSP_MSG, X31CWebConst.DATABEAN_SET_VALUE, strRsp);
			
			return false;
		}
		
		return true;
	}
	
}
