/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom					 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatSCUqsodDataCst
*	ソースファイル名	：JBSbatSCUqsodDataCst.java
*	作成者				：富士通　
*	作成日				：2011年09月14日
*＜機能概要＞
*　UQ-SODデータ抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/14   富士通		新規作成
*********************************************************************/
package eo.business.service;

import java.rmi.RemoteException;

import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.transport.http.HttpTransportProperties;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconCommonHeader;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconDeviceSoParam;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconDeviceSoSogwParam;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconEventDataBean;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconRequestCommonItem;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconRequestSoParam;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconResponseCommonItem;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconSubscriberSoParam;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.CusconWifiSoParam;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeRequest0101;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeResponse;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeService0101;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeService0101E;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeService0101Response;
import eo.business.service.stub.UqcOrderUketsukeBean0101ServiceStub.UqcOrderUketsukeService0101ResponseE;
import eo.common.constant.JSCStrConstant;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatSCUqsodDataCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(ＵＱオーダ送受信情報)*/
	private static final String D_TBL_NAME_SC_T_UQ_ODR_SRINF = "SC_T_UQ_ODR_SRINF";

	/** テーブル(モバイルオーダ)*/
	private static final String D_TBL_NAME_SC_T_MOBILE_ORDER = "SC_T_MOBILE_ORDER";

	/** テーブル(ＳＯＤ業務管理)*/
	private static final String D_TBL_NAME_SC_T_SOD_WORK_KANRI = "SC_T_SOD_WORK_KANRI";

	/** SQL定義キー(SC_UPDATE_001)*/
	private static final String SC_T_UQ_ODR_SRINF_SC_UPDATE_001 = "SC_UPDATE_001";

	/** SQL定義キー(SC_UPDATE_006)*/
	private static final String SC_T_MOBILE_ORDER_SC_UPDATE_006 = "SC_UPDATE_006";

	/** SQL定義キー(SC_SELECT_003)*/
	private static final String SC_T_SOD_WORK_KANRI_SC_SELECT_003 = "SC_SELECT_003";

	/** テーブルアクセスクラス(ＵＱオーダ送受信情報)*/
	private JBSbatSQLAccess db_SC_T_UQ_ODR_SRINF = null;

	/** テーブルアクセスクラス(モバイルオーダ)*/
	private JBSbatSQLAccess db_SC_T_MOBILE_ORDER = null;

	/** テーブルアクセスクラス(ＳＯＤ業務管理)*/
	private JBSbatSQLAccess db_SC_T_SOD_WORK_KANRI = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * CUI
	 */
	private static final String ORDER_TYPE_CUI = "1";
	/**
	 * 返却コード_成功
	 */
	private static final String RETURN_CODE_SUCCESS = "0";
	/**
	 * 返却コード明細_成功
	 */
	private static final String RETURN_CODE_DETAIL_SUCCESS = "ZZZZ_N000";

	/**
	 * 接続モード
	 */
	private boolean conMode = false;
	/**
	 * SSL利用有無
	 */
	private boolean useSSL = false;
	/**
	 * PROXY利用有無
	 */
	private boolean useProxy = false;
	/**
	 * 接続先ＵＲＬ
	 */
	private String uqServiceURL = null;
	/**
	 * SSL認証書トラストストア
	 */
	private String sslTrustStore = null;
	/**
	 * SSL認証書トラストストアパスワード
	 */
	private String sslTrustStorePass = null;
	/**
	 * PROXYホスト名
	 */
	private String proxyHost = null;
	/**
	 * PROXYポート番号
	 */
	private String proxyPort = null;
	/**
	 * SOD処理結果コード
	 */
	private String resultCode = null;
	/**
	 * SOD処理結果詳細コード
	 */
	private String resultDetailCode = null;
	/**
	 * バッチ運用日
	 */
	private String unyoDate = null;

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_SC_T_UQ_ODR_SRINF = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_UQ_ODR_SRINF);
		db_SC_T_MOBILE_ORDER = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_MOBILE_ORDER);
		db_SC_T_SOD_WORK_KANRI = new JBSbatSQLAccess(commonItem, D_TBL_NAME_SC_T_SOD_WORK_KANRI);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/

		// バッチ運用日を設定
		this.unyoDate = commonItem.getOpeDate();

		// SOD業務管理テーブル

		// 抽出結果取得用オブジェクト
		JBSbatCommonDBInterface sod = new JBSbatCommonDBInterface();
		String[] param = {this.unyoDate};
		executeSC_T_SOD_WORK_KANRI_SC_SELECT_003(param);
		sod = db_SC_T_SOD_WORK_KANRI.selectNext();
		if(null != sod)
		{
			conMode  =  "TRUE".equals(sod.getString("CON_MODE"))?true:false;
			useSSL =  "TRUE".equals(sod.getString("SSL_USE"))?true:false;
			useProxy =  "TRUE".equals(sod.getString("PROXY_USE"))?true:false;
			if(useSSL)
			{
				sslTrustStore = sod.getString("SSL_TRUSTSTORE");
				sslTrustStorePass = sod.getString("SSL_TRUSTSTORE_PASS");
			}
			if(useProxy)
			{
				proxyHost = sod.getString("PROXY_HOST");
				proxyPort = sod.getString("PROXY_PORT");
			}
			uqServiceURL =  sod.getString("SERVICE_URL");
		}
		else
		{
			super.logPrint.printDebugLog("SOD業務管理テーブルにレコードが存在しません。");
			throw new JBSbatBusinessException("ESCB0320CE");
		}
		
		/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		//TEST用ログ
		StringBuffer msg = new StringBuffer();
		msg.append("送受信管理番号：");
		msg.append(inMap.getString("SRINF_KANRI_NO"));
		super.logPrint.printDebugLog(msg.toString());

		// 出力共通電文を生成する
		JBSbatOutputItem outputBean = new JBSbatOutputItem();

		// 入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();

		// バッチ運用日時を設定
		String ukSysDateTime = JCCBatCommon.getSysDateTimeStamp();

		// システム日付の取得
		String sysDateTimeStamp = JCCBatCommon.getSysDateTimeStamp();

		// 更新オペレータアカウント取得
		String upAccount = commonItem.getBatchUserId();
		
		//ＵＱ送信処理
		try
		{
			execUQService(inMap, outMap);

			String rsltSysDateTime = JCCBatCommon.getSysDateTimeStamp();

			String uketsukeResult = 
				JSCStrConstant.SOD_STAT_RSLT_NORMAL.equals(outMap.getString("uketsukeResult")) ? 
					JSCStrConstant.SOD_STAT_RSLT_NORMAL:JSCStrConstant.SOD_STAT_RSLT_C_ABNORMAL; 	//受付結果
			String uketsukeResultDetail = 
				outMap.getString("uketsukeResultDetail");	//受付結果詳細
			String sodStatus = 
				JSCStrConstant.SOD_STAT_RSLT_NORMAL.equals(uketsukeResult) ? 
						JSCStrConstant.SOD_STAT_ACK_NORMAL:JSCStrConstant.SOD_STAT_ACK_ABNORMAL;
			String sodRenkStatus = 
				JSCStrConstant.SOD_STAT_RSLT_NORMAL.equals(uketsukeResult) ? 
						JSCStrConstant.SOD_RNKI_STAT_WAIT_FIN:JSCStrConstant.SOD_RNKI_STAT_WAIT_RES;

			//UQオーダ送受信情報の更新
			String[] param = {
								sodStatus,
								ukSysDateTime,
								ukSysDateTime,
								rsltSysDateTime,
								uketsukeResult,
								uketsukeResultDetail,
								sysDateTimeStamp,
								upAccount,
								inMap.getString("SRINF_KANRI_NO"),
								JSCStrConstant.SOD_STAT_SND_WAIT,
								JSCStrConstant.SOD_STAT_REAPPLY
			};
			try
			{
				executeSC_T_UQ_ODR_SRINF_SC_UPDATE_001(param);
			}
			catch(Exception e)
			{
				throw new JBSbatBusinessException("ESCB0300CE"
						, new String[]{inMap.getString("SRINF_KANRI_NO")});
			}

			 //モバイルサービスオーダの更新
			String[] param2 = {
								sodStatus,
								ukSysDateTime,
								rsltSysDateTime,
								sodRenkStatus,
								sysDateTimeStamp,
								upAccount,
								inMap.getString("SOD_RENKEI_SEQ"),
								JSCStrConstant.SOD_STAT_SND_WAIT,
								JSCStrConstant.SOD_STAT_REAPPLY
			};
			try
			{
				executeSC_T_MOBILE_ORDER_SC_UPDATE_006(param2);
			}
			catch(Exception e)
			{
				throw new JBSbatBusinessException("ESCB0310CE"
						, new String[]{inMap.getString("SOD_RENKEI_SEQ")});
			}
		}
		catch(RemoteException re)
		{
			super.logPrint.printDebugLog(re.getMessage());
			re.printStackTrace();
			throw new JBSbatBusinessException("ESCB0290CE"
					, new String[]{inMap.getString("SRINF_KANRI_NO")});
		}
		catch(Exception e)
		{
			super.logPrint.printDebugLog(e.getMessage());
			e.printStackTrace();
			throw new JBSbatBusinessException("ESCB0290CE"
					, new String[]{inMap.getString("SRINF_KANRI_NO")});
		}
			
		return outputBean; // ファイルを出力
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_SC_T_UQ_ODR_SRINF.close();
		db_SC_T_MOBILE_ORDER.close();
		db_SC_T_SOD_WORK_KANRI.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * SQLKEY(SC_UPDATE_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	ＳＯＤステータス(004 or 005)
	 *		 	ＳＯＤ処理受付日時
	 *		 	ＳＯＤ投入日時
	 *		 	ＳＯＤ処理結果取込日時
	 *		 	ＳＯＤ処理結果コード
	 *		 	ＳＯＤ処理結果詳細コード
	 *		 	更新日時
	 *		 	更新オペレータ
	 *		 	送受信管理番号
	 *		 	ＳＯＤステータス(001)
	 *		 	ＳＯＤステータス(007)
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_UQ_ODR_SRINF_SC_UPDATE_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());

		// DBアクセスを実行します
		db_SC_T_UQ_ODR_SRINF.executeBySqlDefine(paramList, SC_T_UQ_ODR_SRINF_SC_UPDATE_001);
	}

	/**
	 * SQLKEY(SC_UPDATE_006)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	モバイルオーダステータス(004 or 005)
	 *		 	SOD処理受付日時
	 *		 	SOD処理結果取込日時
	 *		 	SOD業務連携ステータス(003)
	 *		 	更新日時
	 *		 	更新オペレータ
	 *		 	モバイルオーダ番号
	 *		 	モバイルオーダステータス(001)
	 *		 	モバイルオーダステータス(007)
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_MOBILE_ORDER_SC_UPDATE_006(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		
		// DBアクセスを実行します
		db_SC_T_MOBILE_ORDER.executeBySqlDefine(paramList, SC_T_MOBILE_ORDER_SC_UPDATE_006);
	}

	/**
	 * SQLKEY(SC_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeSC_T_SOD_WORK_KANRI_SC_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_SC_T_SOD_WORK_KANRI.selectBySqlDefine(paramList, SC_T_SOD_WORK_KANRI_SC_SELECT_003);
	}
	
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/

	/**
	 * UQサービス実行
	 * @param inMap
	 * @param outMap
	 * @exception Exception, RemoteException
	 */
	private void execUQService(JBSbatServiceInterfaceMap inMap, JBSbatServiceInterfaceMap outMap) throws Exception, RemoteException
	{
		//Request
		UqcOrderUketsukeService0101E requestE = new UqcOrderUketsukeService0101E();
		UqcOrderUketsukeService0101 request = new UqcOrderUketsukeService0101();
		UqcOrderUketsukeRequest0101 req = new UqcOrderUketsukeRequest0101();
		CusconCommonHeader reqCommonHeader = new CusconCommonHeader();
		CusconRequestCommonItem reqCommonItem = new CusconRequestCommonItem();
		CusconEventDataBean eventDataBean = new CusconEventDataBean();
		CusconRequestSoParam reqSoParam = new CusconRequestSoParam();
		CusconSubscriberSoParam subscriberSoParam = new CusconSubscriberSoParam();
		CusconDeviceSoParam deviceSoParam = new CusconDeviceSoParam();
		CusconDeviceSoSogwParam deviceSoSogwParam = new CusconDeviceSoSogwParam();

		//Response
		UqcOrderUketsukeService0101ResponseE responseE = new UqcOrderUketsukeService0101ResponseE();
		UqcOrderUketsukeService0101Response response = new UqcOrderUketsukeService0101Response();
		UqcOrderUketsukeResponse res = new UqcOrderUketsukeResponse();
		CusconResponseCommonItem resCommonItem = new CusconResponseCommonItem();

		boolean bCui = ORDER_TYPE_CUI.equals(inMap.getString("MOBILE_YOKYU_SBT_CD").subSequence(0, 1)) ? true : false;
		
		if(conMode)
		{
			//接続モード=TRUE：外部接続を行う。
			
			//SSL認証書を設定
			if(useSSL)
			{
				System.setProperty("javax.net.ssl.trustStore", sslTrustStore);
				System.setProperty("javax.net.ssl.trustStorePassword", sslTrustStorePass);
			}
			
			//プロキシサーバの設定
			HttpTransportProperties.ProxyProperties proxyProp = new HttpTransportProperties.ProxyProperties();
			if(useProxy)
			{
				proxyProp.setProxyName(proxyHost);
				proxyProp.setProxyPort(Integer.parseInt(proxyPort));
			}
			
			//スタブ生成
			UqcOrderUketsukeBean0101ServiceStub stub = new UqcOrderUketsukeBean0101ServiceStub();
			Options options = new Options();
			if(useProxy)
			{
				options.setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY, proxyProp); 
			}

			options.setTo(new EndpointReference(uqServiceURL));
			options.setTimeOutInMilliSeconds(120000);
			stub._getServiceClient().setOptions(options);
			
			//送信データ作成
			
			//カスコン共通ヘッダ
			reqCommonHeader.setServiceId(inMap.getString("CD1"));				//サービスID
			reqCommonHeader.setJigyoushaCode(inMap.getString("CD2"));			//事業者コード
			reqCommonHeader.setChannelCode(inMap.getString("CD3"));				//チャネルコード
			reqCommonHeader.setCusconUserId(inMap.getString("CD4"));			//カスコンユーザID
			reqCommonHeader.setCusconPassword(inMap.getString("CD5"));			//カスコンパスワード
			reqCommonHeader.setRequestId(inMap.getString("SRINF_KANRI_NO"));	//リクエスト
			reqCommonHeader.setFreeArea("");
	
			//カスコンリクエスト共通
			reqCommonItem.setRenewOpeId("");									//更新オペレータID
	
			if(bCui)
			{
				//CUIの場合
	
				//加入者SO情報
				subscriberSoParam.setAccountingHoushiki("1");				//課金方式
				subscriberSoParam.setAccountingClass("0");					//課金クラス
				subscriberSoParam.setMultiAccess("1");						//同時接続数
				subscriberSoParam.setQosServiceClass("1");					//QoSサービス
				subscriberSoParam.setTrafficCtrlClass1("0");				//トラフィックコントロールクラス１
				subscriberSoParam.setTrafficCtrlClass2("0");				//トラフィックコントロールクラス２
				subscriberSoParam.setServiceAreaClass(fillChar("0", 130));	//サービスエリアの定義
				subscriberSoParam.setBsId(fillChar("0", 48));				//基地局用のID（48Bits）
				subscriberSoParam.setAddrPolicy("3");						//アドレスポリシー
			
				//SO投入共通情報
				reqSoParam.setOrderSyubetsu(inMap.getString("MOBILE_YOKYU_SBT_CD"));				//オーダ要求種別
				reqSoParam.setDomainName(inMap.getString("CD6"));									//ドメイン
				reqSoParam.setCui("F" + inMap.getString("CD2") + inMap.getString("SVC_KEI_NO"));	//CUI
				reqSoParam.setMacAddr("");															//MACアドレス
				reqSoParam.setCusconSubscriberSoParam(subscriberSoParam);							//加入者SO情報
	
				//カスコンイベントデータ
				eventDataBean.setCusconRequestSoParam(reqSoParam);
				
				req.setCusconCommonHeader(reqCommonHeader);		//カスコン共通ヘッダ
				req.setCusconRequestCommonItem(reqCommonItem);	//カスコンリクエスト共通
				req.setCusconEventDataBean(eventDataBean);		//カスコンイベントデータ
			
			}
			else
			{
				//デバイスの場合
	
				//投入管理システム情報
				deviceSoSogwParam.setAccountPriority("3");		//アカウントプライオリティ
				deviceSoSogwParam.setFramedIpAddress("");		//指定固定アドレス（AAA用）
				deviceSoSogwParam.setFramedIpv6InterfaceId("");	//アドレスの定義（インタフェース）
				deviceSoSogwParam.setFramedIpv6Pool("");		//アドレスの定義（プールネーム）
				deviceSoSogwParam.setFramedIpv6Prefix("");		//アドレスの定義（プレフィックス）
				
				//デバイス共通情報
				deviceSoParam.setNinshouId(inMap.getString("UQ_NINSHO_ID"));		//認証ID
				deviceSoParam.setNinshouPwd(inMap.getString("UQ_NINSHO_ID_PWD"));	//パスワード
				deviceSoParam.setDeviceShubetsu(inMap.getString("UQ_ROM_SBT_CD"));	//デバイス種別
				deviceSoParam.setRomShubetsu(inMap.getString("UQ_ROM_SBT_CD"));		//ROM種別
				deviceSoParam.setCusconDeviceSoSogwParam(deviceSoSogwParam);		//投入管理システム情報
	
				//SO投入共通情報
				reqSoParam.setOrderSyubetsu(inMap.getString("MOBILE_YOKYU_SBT_CD"));				//オーダ種別
				reqSoParam.setCui("F" + inMap.getString("CD2") + inMap.getString("SVC_KEI_NO"));	//CUI
				reqSoParam.setDomainName(inMap.getString("CD6"));									//ドメイン
				reqSoParam.setMacAddr(inMap.getString("UQ_MACAD"));									//MACアドレス
				reqSoParam.setCusconDeviceSoParam(deviceSoParam);									//デバイス共通情報
				eventDataBean.setCusconRequestSoParam(reqSoParam);									//SO投入共通情報
			
				req.setCusconCommonHeader(reqCommonHeader);		//カスコン共通ヘッダ
				req.setCusconRequestCommonItem(reqCommonItem);	//カスコンリクエスト共通
				req.setCusconEventDataBean(eventDataBean);		//カスコンイベントデータ
	
			}
	
			request.setUqcOrderUketsukeRequest0101(req);
			requestE.setUqcOrderUketsukeService0101(request);
	
			//Webサービス実行
			responseE = stub.uqcOrderUketsukeService0101(requestE);
			
			//受信
			response = responseE.getUqcOrderUketsukeService0101Response();
			res = response.getUqcOrderUketsukeResponse();
			
			resCommonItem = res.getCusconResponseCommonItem();
			
			resultCode = resCommonItem.getUketukeResult();
			resultDetailCode = resCommonItem.getUketukeResultDetail();
		}
		else
		{

			//接続モード=FALSE：ダミーの戻り値を設定する。
			resultCode = RETURN_CODE_SUCCESS;
			resultDetailCode = RETURN_CODE_DETAIL_SUCCESS;
		}

		outMap.setString("uketsukeResult", resultCode);
		outMap.setString("uketsukeResultDetail", resultDetailCode);
	}
	
	/**
	 * 文字埋め
	 * @param chr
	 * @param cnt
	 * @return 編集後文字列
	 */
	private String fillChar(String chr, int cnt)
	{
		
		StringBuffer sb = new StringBuffer(cnt);
		for(int i = 0; i < cnt; i++)
		{
			sb.append(chr);
		}
		return sb.toString();
	}

}
