/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：物流管理システム
*   ソースファイル名：JDKCommon48CC.java
*   作成者          ：富士通
*   日付            ：2011年07月20日
*＜機能概要＞
*   未返却回収登録CCクラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/07/20   FJ          新規作成
*   v10.00.00	2014/09/26   FJ)山下     ANK-2119-00-00（返品SODのリアル化対応）
*   v10.00.01	2014/10/20   FJ)山下     IT1-2014-0000341（返品SODのリアル化対応）
*   v10.00.02	2014/10/23   FJ)山下     IT1-2014-0000341（返品SODのリアル化対応）
*   v10.00.03	2014/10/27   FJ)山下     IT1-2014-0000348（返品SODのリアル化対応）
*   v10.00.04	2014/11/12   FJ)山下     IT1-2014-0000368（返品SODのリアル化対応）
*   v10.00.05	2014/11/16   FJ)山下     IT1-2014-0000369（返品SODのリアル化対応）
*   v11.00.00	2014/12/11   FJ)山下     OM-2014-0003844（機器製造番号対応）
*   v23.00.00	2016/02/08   FJ)黒田    【OM-2016-0000175】機器提供サービス契約の最新のオーダ設定の抽出条件に機器製造番号を追加
*   v61.00.00	2023/02/13	GDC)v.auditor	【ANK-4315-00-00】eoホームゲートウェイ導入対応 Step2
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.DKSV0050_DKSV0050OP_DKSV005005CC;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EDKA0010006BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0081A010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0081B034BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0161B004BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0341B001BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK0341B034BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK1081C011BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK1081D010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK1551D010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EKK2811B010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0050_DKSV0050OP_EZM0411A010BSMapper;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0081_DKSV0081OP_EKK0161B004BSMapper;
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.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;

import eo.common.constant.JDKStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.util.JDKCommonUtil;
import eo.ejb.cbs.cbsmsg.EDKA0010006CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EDKA0010008CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0081B034CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0081B034CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0161B004CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B001CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B001CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK0341B034CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK0341B034CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK1081C011CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1081D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK1551D010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811B010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK2811B010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EZM0411A010CBSMsg1List;


/**
 * 未返却回収登録宅内連携CCクラスです。
 * @author 富士通
 */
public class JDKCommon48CC extends AbstractCommonComponent
{
	/** CC名 */
	private static final String DKSV005005CC = "DKSV005005CC";
	
	private static final DKSV0050_DKSV0050OP_EDKA0010006BSMapper MAPPER = new DKSV0050_DKSV0050OP_EDKA0010006BSMapper();

	// ANK-2119-00-00 ADD START
	/** 宅内機器型式一意照会マッパー */
	private static final DKSV0050_DKSV0050OP_EZM0411A010BSMapper EZM0411A010BSMapper = new DKSV0050_DKSV0050OP_EZM0411A010BSMapper();
	/** サービス契約一意照会マッパー */
	private static final DKSV0050_DKSV0050OP_EKK0081A010BSMapper EKK0081A010BSMapper = new DKSV0050_DKSV0050OP_EKK0081A010BSMapper();
	// IT1-2014-0000341 MOD START
	/** 機器提供サービス契約サービス契約番号一覧照会マッパー */
	private static final DKSV0050_DKSV0050OP_EKK0081B034BSMapper EKK0081B034BSMapper = new DKSV0050_DKSV0050OP_EKK0081B034BSMapper();
	//** 回線利用中サービス契約一覧照会マッパー */
	//private static final DKSV0050_DKSV0050OP_EKK0081B007BSMapper EKK0081B007BSMapper = new DKSV0050_DKSV0050OP_EKK0081B007BSMapper();
	//** サービス契約内訳一覧照会マッパー */
	// IT1-2014-0000368 MOD START
	//private static final DKSV0050_DKSV0050OP_EKK0161B004BSMapper EKK0161B004BSMapper = new DKSV0050_DKSV0050OP_EKK0161B004BSMapper();
	private static final DKSV0050_DKSV0050OP_EKK0161B004BSMapper EKK0161B004BSMapper = new DKSV0050_DKSV0050OP_EKK0161B004BSMapper();
	// IT1-2014-0000368 MOD END
	//** サービス契約回線内訳一覧照会マッパー */
	//private static final DKSV0050_DKSV0050OP_EKK0251B001BSMapper EKK0251B001BSMapper = new DKSV0050_DKSV0050OP_EKK0251B001BSMapper();
	// IT1-2014-0000341 MOD END
	/** 機器提供サービス契約一意照会マッパー */
	private static final DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper EKK0341A010_02BSMapper = new DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper();
	/** 機器オプションサービス契約一覧照会マッパー */
	private static final DKSV0050_DKSV0050OP_EKK2811B010BSMapper EKK2811B010BSMapper = new DKSV0050_DKSV0050OP_EKK2811B010BSMapper();
	/** 機器提供サービス契約一覧照会（返品SOD発行）マッパー */
	private static final DKSV0050_DKSV0050OP_EKK0341B034BSMapper EKK0341B034BSMapper = new DKSV0050_DKSV0050OP_EKK0341B034BSMapper();
	/** 同一処理番号採番マッパー */
	private static final DKSV0050_DKSV0050OP_EKK1081C011BSMapper EKK1081C011BSMapper = new DKSV0050_DKSV0050OP_EKK1081C011BSMapper();
	/** オーダ発行条件登録マッパー */
	private static final DKSV0050_DKSV0050OP_EKK1081D010BSMapper EKK1081D010BSMapper = new DKSV0050_DKSV0050OP_EKK1081D010BSMapper();
	/** オーダ情報作成ワーク登録マッパー */
	private static final DKSV0050_DKSV0050OP_EKK1551D010BSMapper EKK1551D010BSMapper = new DKSV0050_DKSV0050OP_EKK1551D010BSMapper();
	// IT1-2014-0000368 ADD START
	/** 機器提供サービス契約一覧照会（機器製造番号）マッパー */
	private static final DKSV0050_DKSV0050OP_EKK0341B001BSMapper EKK0341B001BSMapper = new DKSV0050_DKSV0050OP_EKK0341B001BSMapper();
	// IT1-2014-0000368 ADD END
	/** SOD作業領域名 */
	private static final String SOD_WORKAREA_KEY = "SODWORK";
	// ANK-2119-00-00 ADD END
	
	/**
	 * 未返却登録宅内連携処理を行います。
	 * @param handle セッションハンドル
	 * @param param パラメータ
	 * @param fixedText 定型文字
	 * @return パラメータ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite updateStock(SessionHandle handle, IRequestParameterReadWrite param, String fixedText) throws Exception
	{
		ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
		Map dksv00505cc = (HashMap)param.getData(DKSV005005CC);

		List<Map> list = (List<Map>)((Map)param.getMappingWorkArea().get("work")).get("works");

		boolean isCompletedBtryhozn = JDKStrConst.BTRYHOZN_COMPLETE.equals(list.get(0).get("btryhozn_stat"));
		boolean isDaitaiki = JDKStrConst.SUBSTITUTE.equals(dksv00505cc.get("hmpin_kbn"));
		
		list.get(0).put("taknkiki_model_cd", dksv00505cc.get("taknkiki_model_cd"));
		list.get(0).put("kiki_seizo_no", dksv00505cc.get("kiki_seizo_no"));
		if (!JDKCommonUtil.isNull(dksv00505cc.get("kiki_seizo_no")))
		{
			// 宅内機器一覧照会(5)(EDKA0010008)を実行し、情報を得る
			List<Map> takunaiBasements = JDKBPCommon.getLastUpdateDtm(list, "taknkiki_model_cd", "kiki_seizo_no", handle, param);
			list.get(0).put(EDKA0010006CBSMsg1List.KEY_KIHON_UPD_DTTM, takunaiBasements.get(0).get(EDKA0010008CBSMsg1List.KHN_MOD_DTTM));
		}
		list.get(0).put("soko_cd", ((HashMap)param.getData("DKSV005001SC")).get("soko_cd"));

		// 物流保全が完了、もしくは機器が代替機の場合は返品棚に入る
		String shelfCd = isCompletedBtryhozn || isDaitaiki ? JDKStrConst.HENPIN_TANA : JDKStrConst.SHURI_TANA;
		list.get(0).put("shelf_cd", shelfCd);
		// 修理棚に入れる場合は商品状態コードは - （返品棚以外）
		// 返品棚に入れる場合は入力値
		list.get(0).put(EDKA0010006CBSMsg1List.GDS_STAT_CD
						, JDKStrConst.SHURI_TANA.equals(shelfCd) ? JDKStrConst.GDS_STAT_HMPINDNA_OTHER
																 :((HashMap)param.getData("DKSV005001SC")).get("gds_stat_cd") );

		list.get(0).put(EDKA0010006CBSMsg1List.KNRI_PLC_SKBT_CD, dksv00505cc.get(DKSV0050_DKSV0050OP_DKSV005005CC.TTM_DIV));

		HashMap inMap = MAPPER.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "宅内機器修理交換情報更新処理の実行");
		Map result = scCall.run(inMap, handle);
		MAPPER.editResultRP(result, param);

		// ANK-2119-00-00 START
		this.addHmpinSodHakko(handle, param, scCall);
		// ANK-2119-00-00 END
		
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("宅内機器修理交換情報更新処理失敗", "0", 
										Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		JDKBPCommon.throwScExceptionIfHasError("宅内機器修理交換情報更新処理リターンコード不正", param);

		return param;
	}

	// ANK-2119-00-00 ADD START	
	/**
	 * 返品SOD発行処理
	 * @param handle
	 * @param param
	 * @param scCall
	 * @throws Throwable 
	 */
	@SuppressWarnings("unchecked")
	private void addHmpinSodHakko(SessionHandle handle, IRequestParameterReadWrite param, ServiceComponentRequestInvoker scCall) throws Exception
	{
		// 作業領域を取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			workMap = new HashMap();
			param.setMappingWorkArea(workMap);
		}
		
		// SOD作業領域が無い場合
		if (!workMap.containsKey(SOD_WORKAREA_KEY))
		{
			// 作業領域にSOD作業領域を設定
			Map sodWorkMap = new HashMap();
			workMap.put(SOD_WORKAREA_KEY, sodWorkMap);
		}
		
		HashMap sodWorkMap = this.getSodWorkMap(param);
		
		// IT1-2014-0000368 ADD START
		// 機器提供サービス契約一覧照会(機器製造番号)
		HashMap ekk0341B001InMap = new HashMap();
		
		// SOD作業領域に、画面で選択された機器の機器製造番号を設定
		String kikiSeizoNo = null;
		
		if (((HashMap)param.getData("DKSV005005CC")).containsKey("kiki_seizo_no"))
		{
			kikiSeizoNo = (String) ((HashMap)param.getData("DKSV005005CC")).get("kiki_seizo_no");
		}
		
		// OM-2014-0003844 ADD START
		// 機器製造番号が取得できない場合
		if (null == kikiSeizoNo || 0 == kikiSeizoNo.length())
		{
			// 返品SOD発行処理は行わない。
			return;
		}
		// OM-2014-0003844 ADD END
		
		ekk0341B001InMap.put(EKK0341B001CBSMsg.KEY_KIKI_SEIZO_NO, kikiSeizoNo);
		sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0341B001BSMapper.TEMPLATEID, ekk0341B001InMap);
		
		HashMap ekk0341B001ParamMap = EKK0341B001BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "機器提供サービス契約一覧照会(機器製造番号)処理の実行");
		Map ekk0341B001ResultMap = scCall.run(ekk0341B001ParamMap, handle);
		param = EKK0341B001BSMapper.editResultRP(ekk0341B001ResultMap, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("機器提供サービス契約一覧照会(機器製造番号)失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		// 機器提供サービス契約一覧照会(機器製造番号)下り
		HashMap ekk0341B001OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0341B001BSMapper.TEMPLATEID);
		// 明細取得
		List ekk0341B001CbsMsg1List = (List) ekk0341B001OutMap.get(EKK0341B001CBSMsg.EKK0341B001CBSMSG1LIST);
		
		// 画面で選択された機器の機器提供サービス契約番号
		String keyKktkSvcKeiNo = (String) ((HashMap)param.getData("DKSV005005CC")).get("kktk_svc_kei_no");
		// 世代年月日時分秒
		String keyGeneAddDtm = null;
		
		Iterator ekk0341B001Ite = ekk0341B001CbsMsg1List.iterator();
		while (ekk0341B001Ite.hasNext())
		{
			HashMap ekk0341B001CbsMsgSub = (HashMap) ekk0341B001Ite.next();
			
			String subKey = (String) ekk0341B001CbsMsgSub.get(EKK0341B001CBSMsg1List.KKTK_SVC_KEI_NO);
			
			if (keyKktkSvcKeiNo.equals(subKey))
			{
				keyGeneAddDtm = (String) ekk0341B001CbsMsgSub.get(EKK0341B001CBSMsg1List.GENE_ADD_DTM);
				break;
			}
		}
		// IT1-2014-0000368 ADD END
		
		// 機器提供サービス契約一意照会
		HashMap ekk0341A010_02InMap = new HashMap();
		ekk0341A010_02InMap.put(EKK0341A010CBSMsg.KEY_KKTK_SVC_KEI_NO, 
				(String) ((HashMap)param.getData("DKSV005005CC")).get("kktk_svc_kei_no"));
		
		// IT1-2014-0000368 ADD START
		ekk0341A010_02InMap.put(EKK0341A010CBSMsg.KEY_GENE_ADD_DTM, keyGeneAddDtm);
		// IT1-2014-0000368 ADD END
		
		sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper.TEMPLATEID, ekk0341A010_02InMap);
		
		HashMap ekk0341A010_02ParamMap = EKK0341A010_02BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "機器提供サービス契約一意照会処理の実行");
		Map ekk0341A010_02ResultMap = scCall.run(ekk0341A010_02ParamMap, handle);
		param = EKK0341A010_02BSMapper.editResultRP(ekk0341A010_02ResultMap, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("機器提供サービス契約一意照会失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		// 機器提供サービス契約一意照会下り
		HashMap ekk0341A010_02OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper.TEMPLATEID);
		// 明細取得
		List ekk0341A010CbsMsg1List = (List) ekk0341A010_02OutMap.get(EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST);
		
		// 機器提供サービス契約一意照会でレコードが取得できなかった場合
		if (ekk0341A010CbsMsg1List.size() == 0)
		{
			// 返品SOD発行処理は行わない
			return;
		}
			
		// カレント退避用MAP
		Map ekk0341A010CbsMsg = (HashMap) ekk0341A010CbsMsg1List.get(0);
		
		// IT1-2014-0000348 ADD START
		Map dksv00505cc = (HashMap)param.getData(DKSV005005CC);
		// IT1-2014-0000348 ADD END
		
		// 宅内機器型式一意照会 上り
		HashMap ezm0411A010InMap = new HashMap();
		// SOD作業領域に、選択された機器の宅内機器型式コードを設定
		// IT1-2014-0000348 MOD START
		// ezm0411A010InMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, 
		// 		(String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD));
		if (dksv00505cc != null && dksv00505cc.containsKey("taknkiki_model_cd"))
		{
			ezm0411A010InMap.put(EZM0411A010CBSMsg.KEY_TAKNKIKI_MODEL_CD, 
					(String) dksv00505cc.get("taknkiki_model_cd"));
		}
		// IT1-2014-0000348 MOD END
		
		sodWorkMap.put(DKSV0050_DKSV0050OP_EZM0411A010BSMapper.TEMPLATEID, ezm0411A010InMap);
		
		// 宅内機器型式一意照会
		HashMap<String, Object> ezm0411A010ParamMap = EZM0411A010BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "宅内機器型式一意照会処理の実行");
		Map ezm0411A010ResultMap = scCall.run(ezm0411A010ParamMap, handle);
		param = EZM0411A010BSMapper.editResultRP(ezm0411A010ResultMap, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("宅内機器型式一意照会処理失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		// 宅内機器型式一意照会 下り
		HashMap ezm0411A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EZM0411A010BSMapper.TEMPLATEID);
		// 明細取得
		ArrayList ezm0411A010CbsMsg1List = (ArrayList) ezm0411A010OutMap.get(EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST);
		
		// 宅内機器型式一意照会でレコードが取得できなかった場合
		if (ezm0411A010CbsMsg1List.size() == 0)
		{
			// 返品SOD発行処理は行わない。
			return;
		}
		
		HashMap ezm0411A010CbsMsg = (HashMap) ezm0411A010CbsMsg1List.get(0);
		
		// 宅内機器種別コードを取得
		String tkniKikiSbtCd = (String) ezm0411A010CbsMsg.get(EZM0411A010CBSMsg1List.TAKNKIKI_SBT_CD);
		
		// 宅内機器種別コードが、返品SOD発行対象でない場合
		if (!this.checkTkniKikiSbtCd(tkniKikiSbtCd))
		{
			// 返品SOD発行処理は行わない。
			return;
		}
			
		// 機器提供サービス契約一覧（返品SOD発行）上り
		HashMap ekk0341B034InMap = new HashMap();
		
		// SOD作業領域に、画面で選択された機器の機器提供サービス契約番号を設定
		ekk0341B034InMap.put(EKK0341B034CBSMsg.KEY_KKTK_SVC_KEI_NO, 
				(String) ((HashMap)param.getData("DKSV005005CC")).get("kktk_svc_kei_no"));
// OM-2016-0000175 ADD START
		// SOD作業領域に、画面で選択された機器の機器製造番号を設定
		ekk0341B034InMap.put(EKK0341B034CBSMsg.KEY_KK_SEIZO_NO, 
				(String) ((HashMap)param.getData("DKSV005005CC")).get("kiki_seizo_no"));
// OM-2016-0000175 ADD END
		
		sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0341B034BSMapper.TEMPLATEID, ekk0341B034InMap);
		
		// 機器提供サービス契約一覧照会（返品SOD発行）
		HashMap ekk0341B034ParamMap = EKK0341B034BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "機器提供サービス契約一覧照会（返品SOD発行）処理の実行");
		Map ekk0341B034ResultMap = scCall.run(ekk0341B034ParamMap, handle);
		param = EKK0341B034BSMapper.editResultRP(ekk0341B034ResultMap, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("機器提供サービス契約一覧照会（返品SOD発行）失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		// 機器提供サービス契約一覧（返品SOD発行）下り
		HashMap ekk0341B034OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0341B034BSMapper.TEMPLATEID);
		// 明細取得
		List ekk0341B034CbsMsg1List = (List) ekk0341B034OutMap.get(EKK0341B034CBSMsg.EKK0341B034CBSMSG1LIST);
		
		// 機器提供サービス契約一覧照会（返品SOD発行）でレコードが取得できなかった場合
		if (ekk0341B034CbsMsg1List.size() == 0)
		{
			// 返品SOD発行処理は行わない。
			return;
		}
			
		// 返品SOD発行対象フラグ
		boolean isSod = false;
			
		// 機器提供サービス契約一覧照会（返品SOD発行）で取得した分だけ繰り返す
		Iterator kk0341B034Ite = ekk0341B034CbsMsg1List.iterator();
		while (kk0341B034Ite.hasNext())
		{
			Map kk0341B034Map = (Map) kk0341B034Ite.next();
			String kktkSvcKeiNo = (String) kk0341B034Map.get(EKK0341B034CBSMsg1List.KKTK_SVC_KEI_NO);
			String kikiChgNo = (String) kk0341B034Map.get(EKK0341B034CBSMsg1List.KIKI_CHG_NO);
				
			// 以下の何れかに該当すれば、返品SOD発行処理対象とする。
			// 機器変更番号が変更されている（機器の交換が行われ、返品承認が行われている）
			if (ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO).equals(kktkSvcKeiNo) &&
					!ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KIKI_CHG_NO).equals(kikiChgNo))
			{
				isSod = true;
				break;
			}
				
			// 機器提供サービス契約が解約されている（機器が解約され、返品承認が行われている）
			else if (ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO).equals(kktkSvcKeiNo) &&
					ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KIKI_CHG_NO).equals(kikiChgNo) &&
					(ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT).equals("910") || ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT).equals("920")))
			{
				isSod = true;
				break;
			}
		}
			
		// 返品SOD発行対象の場合
		if (isSod)
		{
			// IT1-2014-0000341 MOD START
			// サービス契約番号
			String svcKeiNo = null;
			
			// ANK-4315-00-00 MOD START
			// 多機能ルータ、もしくはHGWの場合、機器提供サービス契約のサービス契約回線内訳番号からサービス契約を取得する。
			//if ("R0".equals(tkniKikiSbtCd))
			if ("R0".equals(tkniKikiSbtCd) || "S0".equals(tkniKikiSbtCd))
			// ANK-4315-00-00 MOD END
			{
				// IT1-2014-0000341 DEL START
				//EKK0081B007_回線利用中サービス契約一覧照会
				//HashMap ekk0081B007InMap = new HashMap();
				//ekk0081B007InMap.put(EKK0081B007CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
				//
				//sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0081B007BSMapper.TEMPLATE_ID, ekk0081B007InMap);
				//
				//HashMap<String, Object> ekk0081B007ParamMap = EKK0081B007BSMapper.editInMsg(param);
				//JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "回線利用中サービス契約一覧照会処理の実行");
				//Map ekk0081B007ResultMap = scCall.run(ekk0081B007ParamMap, handle);
				//param = EKK0081B007BSMapper.editResultRP(ekk0081B007ResultMap, param);
				//if (JDKBPCommon.hasError(param))
				//{
				//	throw new SCCallException("回線利用中サービス契約一覧照会処理失敗", "0", 
				//			Integer.parseInt(param.getControlMapData("returnCode").toString()));
				//}
				//
				//回線利用中サービス契約一覧照会下り
				//HashMap ekk0081B007OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0081B007BSMapper.TEMPLATE_ID);
				//明細取得
				//ArrayList ekk0081B007CbsMsg1List = (ArrayList) ekk0081B007OutMap.get(EKK0081B007CBSMsg.EKK0081B007CBSMSG1LIST);
				//
				//回線利用中サービス契約一覧照会でレコードが取得できなかった場合
				//if (ekk0081B007CbsMsg1List.size() == 0)
				//{
				//	// 返品SOD発行処理は行わない。
				//	return;
				//}
				//
				//HashMap ekk0081B007CbsMsg = (HashMap) ekk0081B007CbsMsg1List.get(0);
				//
				//svcKeiNo = (String) ekk0081B007CbsMsg.get(EKK0081B010CBSMsg1List.SVC_KEI_NO);
				// IT1-2014-0000341 DEL END
				
				// IT1-2014-0000341 ADD START
				// EKK0081B034_機器提供サービス契約サービス契約番号一覧照会
				HashMap ekk0081B034InMap = new HashMap();
				ekk0081B034InMap.put(EKK0081B034CBSMsg.KEY_SVC_KEI_KAISEN_UCWK_NO, ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
				
				sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0081B034BSMapper.TEMPLATE_ID, ekk0081B034InMap);
				
				HashMap<String, Object> ekk0081B034ParamMap = EKK0081B034BSMapper.editInMsg(param);
				JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "機器提供サービス契約サービス契約番号一覧照会処理の実行");
				Map ekk0081B034ResultMap = scCall.run(ekk0081B034ParamMap, handle);
				param = EKK0081B034BSMapper.editResultRP(ekk0081B034ResultMap, param);
				if (JDKBPCommon.hasError(param))
				{
					throw new SCCallException("機器提供サービス契約サービス契約番号一覧照会処理失敗", "0", 
							Integer.parseInt(param.getControlMapData("returnCode").toString()));
				}
				
				// 機器提供サービス契約サービス契約番号一覧照会下り
				HashMap ekk0081B034OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0081B034BSMapper.TEMPLATE_ID);
				// 明細取得
				ArrayList ekk0081B034CbsMsg1List = (ArrayList) ekk0081B034OutMap.get(EKK0081B034CBSMsg.EKK0081B034CBSMSG1LIST);
				
				// 機器提供サービス契約サービス契約番号一覧照会でレコードが取得できなかった場合
				if (ekk0081B034CbsMsg1List.size() == 0)
				{
					// 返品SOD発行処理は行わない。
					return;
				}
				
				HashMap ekk0081B034CbsMsg = null;
				Iterator<HashMap> ite = ekk0081B034CbsMsg1List.iterator();
				while (ite.hasNext())
				{
					
					HashMap cbsMsg = ite.next();
					
					// ネット優先
					if (JKKStrConst.CD00130_01.equals(cbsMsg.get(EKK0081B034CBSMsg1List.SVC_CD)))
					{
						ekk0081B034CbsMsg = cbsMsg;
						break;
					}
					
					if (null == ekk0081B034CbsMsg || JKKStrConst.CD00130_02.equals(cbsMsg.get(EKK0081B034CBSMsg1List.SVC_CD)))
					{
						ekk0081B034CbsMsg = cbsMsg;
					}
				}
				
				svcKeiNo = (String) ekk0081B034CbsMsg.get(EKK0081B034CBSMsg1List.SVC_KEI_NO);
				// IT1-2014-0000341 ADD END
			}
			// 多機能ルータ以外の場合、機器提供サービス契約のサービス契約番号を取得する。
			else
			{
				svcKeiNo = (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.SVC_KEI_NO);
			}
			
			HashMap ekk0081A010InMap = new HashMap();
			ekk0081A010InMap.put(EKK0081A010CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
			// IT1-2014-0000341 MOD END
			
			sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0081A010BSMapper.TEMPLATE_ID, ekk0081A010InMap);
			
			// サービス契約一意照会
			HashMap<String, Object> ekk0081A010ParamMap = EKK0081A010BSMapper.editInMsg(param);
			JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "サービス契約一意照会処理の実行");
			Map ekk0081A010ResultMap = scCall.run(ekk0081A010ParamMap, handle);
			param = EKK0081A010BSMapper.editResultRP(ekk0081A010ResultMap, param);
			if (JDKBPCommon.hasError(param))
			{
				throw new SCCallException("サービス契約一意照会処理失敗", "0", 
						Integer.parseInt(param.getControlMapData("returnCode").toString()));
			}
			
			// サービス契約一意照会 下り
			HashMap ekk0081A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0081A010BSMapper.TEMPLATE_ID);
			// 明細取得
			ArrayList ekk0081A010CbsMsg1List = (ArrayList) ekk0081A010OutMap.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
			
			// サービス契約一意照会でレコードが取得できなかった場合
			if (ekk0081A010CbsMsg1List.size() == 0)
			{
				// 返品SOD発行処理は行わない。
				return;
			}
			
			// IT1-2014-0000341 DEL START
			// サービス契約内訳一覧照会
			//HashMap ekk0161B004InMap = new HashMap();
			//
			// SOD作業領域に、画面で選択された機器のサービス契約番号を設定
			//ekk0161B004InMap.put(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.SVC_KEI_NO));
			//sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID, ekk0161B004InMap);
			//
			// サービス契約内訳一覧照会
			//HashMap ekk0161B004ParamMap = EKK0161B004BSMapper.editInMsg(param);
			//JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "サービス契約内訳一覧照会処理の実行");
			//Map ekk0161B004ResultMap = scCall.run(ekk0161B004ParamMap, handle);
			//param = EKK0161B004BSMapper.editResultRP(ekk0161B004ResultMap, param);
			//if (JDKBPCommon.hasError(param))
			//{
			//	throw new SCCallException("サービス契約内訳一覧照会失敗", "0", 
			//			Integer.parseInt(param.getControlMapData("returnCode").toString()));
			//}
			// IT1-2014-0000341 DEL END
			
			// 同一処理番号を取得
			HashMap ekk1081C011InMap = new HashMap();
			
			sodWorkMap.put(DKSV0050_DKSV0050OP_EKK1081C011BSMapper.TEMPLATEID, ekk1081C011InMap);
			
			HashMap ekk1081C011ParamMap = EKK1081C011BSMapper.editInMsg(param);
			JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "同一処理番号取得処理の実行");
			Map ekk1081C011ResultMap = scCall.run(ekk1081C011ParamMap, handle);
			param = EKK1081C011BSMapper.editResultRP(ekk1081C011ResultMap, param);
			if (JDKBPCommon.hasError(param))
			{
				throw new SCCallException("同一処理番号取得処理失敗", "0", 
						Integer.parseInt(param.getControlMapData("returnCode").toString()));
			}
			
			String sameTrnNo =  (String) ((HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK1081C011BSMapper.TEMPLATEID)).get(EKK1081C011CBSMsg.SAME_TRN_NO);
			
			// 返品ＳＯＤ対象抽出の宅内機器種別コードが "50"（光電話ＶＡ）の場合
			if ("50".equals(tkniKikiSbtCd))
			{
				// オーダ発行条件に対してＶＡ解約の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "2", "20", "03", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対してＶＡ解約の情報を登録する
				this.insertOdrInfSksiWk("215", handle, param, scCall);
				// オーダ発行条件に対してＶＡ消去の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "2", "20", "08", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対してＶＡ消去の情報を登録する
				this.insertOdrInfSksiWk("216", handle, param, scCall);
			}
			// 返品ＳＯＤ対象抽出の宅内機器種別コードが "F0"（ＢＢＲ）の場合
			else if ("F0".equals(tkniKikiSbtCd))
			{
				// オーダ発行条件に対してルータ解約の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "1", "0A", "03", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対してルータ解約の情報を登録する
				this.insertOdrInfSksiWk("149", handle, param, scCall);
				// オーダ発行条件に対してルータ消去の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "1", "0A", "08", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対してルータ消去の情報を登録する
				this.insertOdrInfSksiWk("150", handle, param, scCall);
			}
			// 返品ＳＯＤ対象抽出の宅内機器種別コードが "J0"（ＵＱ）の場合
			else if ("J0".equals(tkniKikiSbtCd))
			{
				// IT1-2014-0000368 ADD START
				// サービス契約内訳一覧照会
				HashMap ekk0161B004InMap = new HashMap();
				
				// SOD作業領域に、画面で選択された機器のサービス契約番号を設定
				ekk0161B004InMap.put(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
				sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID, ekk0161B004InMap);
				//
				// サービス契約内訳一覧照会
				HashMap ekk0161B004ParamMap = EKK0161B004BSMapper.editInMsg(param);
				JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "サービス契約内訳一覧照会処理の実行");
				Map ekk0161B004ResultMap = scCall.run(ekk0161B004ParamMap, handle);
				param = EKK0161B004BSMapper.editResultRP(ekk0161B004ResultMap, param);
				if (JDKBPCommon.hasError(param))
				{
					throw new SCCallException("サービス契約内訳一覧照会失敗", "0", 
							Integer.parseInt(param.getControlMapData("returnCode").toString()));
				}
				// IT1-2014-0000368 ADD END
				
				// オーダ発行条件に対してUQ解約の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "3", "02", "03", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対してUQ解約の情報を登録する
				this.insertOdrInfSksiWk("309", handle, param, scCall);
			}
			// ANK-4315-00-00 MOD START
			//else if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd))
			else if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd) || JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd))
			// ANK-4315-00-00 MOD END
			{
				// IT1-2014-0000368 ADD START
				// サービス契約内訳一覧照会
				HashMap ekk0161B004InMap = new HashMap();
				
				// SOD作業領域に、画面で選択された機器のサービス契約番号を設定
				ekk0161B004InMap.put(EKK0161B004CBSMsg.KEY_SVC_KEI_NO, svcKeiNo);
				sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID, ekk0161B004InMap);
				//
				// サービス契約内訳一覧照会
				HashMap ekk0161B004ParamMap = EKK0161B004BSMapper.editInMsg(param);
				JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "サービス契約内訳一覧照会処理の実行");
				Map ekk0161B004ResultMap = scCall.run(ekk0161B004ParamMap, handle);
				param = EKK0161B004BSMapper.editResultRP(ekk0161B004ResultMap, param);
				if (JDKBPCommon.hasError(param))
				{
					throw new SCCallException("サービス契約内訳一覧照会失敗", "0", 
							Integer.parseInt(param.getControlMapData("returnCode").toString()));
				}
				// IT1-2014-0000368 ADD END
				
				// IT1-2014-0000341 DEL START
				// サービス契約回線内訳一覧照会
				//HashMap ekk0251B001InMap = new HashMap();
				//
				// SOD作業領域に、画面で選択された機器のサービス契約番号を設定
				//ekk0251B001InMap.put(EKK0251B001CBSMsg.KEY_SVC_KEI_NO, (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.SVC_KEI_NO));
				//sodWorkMap.put(DKSV0050_DKSV0050OP_EKK0251B001BSMapper.TEMPLATEID, ekk0251B001InMap);
				//
				// サービス契約内訳一覧照会
				//HashMap ekk0251B001ParamMap = EKK0251B001BSMapper.editInMsg(param);
				//JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "サービス契約回線内訳一覧照会処理の実行");
				//Map ekk0251B001ResultMap = scCall.run(ekk0251B001ParamMap, handle);
				//param = EKK0251B001BSMapper.editResultRP(ekk0251B001ResultMap, param);
				//if (JDKBPCommon.hasError(param))
				//{
				//	throw new SCCallException("サービス契約回線内訳一覧照会失敗", "0", 
				//			Integer.parseInt(param.getControlMapData("returnCode").toString()));
				//}
				// IT1-2014-0000341 DEL END
				
				// 機器オプションサービス契約一覧照会
				HashMap ekk2811B010InMap = new HashMap();
				
				// SOD作業領域に、画面で選択された機器の機器提供サービス契約番号を設定
				ekk2811B010InMap.put(EKK2811B010CBSMsg.KEY_KKTK_SVC_KEI_NO, (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
				sodWorkMap.put(DKSV0050_DKSV0050OP_EKK2811B010BSMapper.TEMPLATEID, ekk2811B010InMap);
				
				HashMap ekk2811B010ParamMap = EKK2811B010BSMapper.editInMsg(param);
				JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "機器オプションサービス契約一覧照会処理の実行");
				Map ekk2811B010ResultMap = scCall.run(ekk2811B010ParamMap, handle);
				param = EKK2811B010BSMapper.editResultRP(ekk2811B010ResultMap, param);
				if (JDKBPCommon.hasError(param))
				{
					throw new SCCallException("機器オプションサービス契約一覧照会失敗", "0", 
							Integer.parseInt(param.getControlMapData("returnCode").toString()));
				}
				
				// オーダ発行条件に対して多機能ルータ解約の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "2", "26", "03", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対して多機能ルータ解約の情報を登録する
				this.insertOdrInfSksiWk("423", handle, param, scCall);
				// オーダ発行条件に対して多機能ルータ消去の情報を登録する
				this.insertOdrHakkoJoken(ekk0341A010CbsMsg, "2", "26", "08", sameTrnNo, handle, param, scCall);
				// オーダ情報作成ワークに対して多機能ルータ消去の情報を登録する
				this.insertOdrInfSksiWk("424", handle, param, scCall);
			}
		}
		
		this.deleteSodWorkMap(param);
	}
	
	
	
	/**
	 * SOD作業領域を取得する。
	 * @param param
	 * @return SOD作業領域
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private HashMap getSodWorkMap(IRequestParameterReadWrite param) throws RequestParameterException
	{
		// 作業領域を取得
		Map workMap = (Map)param.getMappingWorkArea();
		if (workMap == null) {
			return null;
		}
		
		// SOD作業領域を取得
		HashMap sodWorkMap = (HashMap) workMap.get(SOD_WORKAREA_KEY);
		if (sodWorkMap == null)
		{
			return null;
		}
		
		return sodWorkMap;
	}
	
	@SuppressWarnings("unchecked")
	private void deleteSodWorkMap(IRequestParameterReadWrite param) throws RequestParameterException
	{
		// 作業領域を取得
		Map workMap = (Map) param.getMappingWorkArea();
		if (workMap == null) {
			return;
		}
		
		// SOD作業領域が無い場合
		if (!workMap.containsKey(SOD_WORKAREA_KEY))
		{
			return;
		}
		
		HashMap sodWorkMap = this.getSodWorkMap(param);
		
		// 機器毎の処理終了時にSOD作業領域を削除
		workMap.remove(sodWorkMap);
	}
	
	/**
	 * オーダ発行条件登録情報SETメソッド<br>
	 * @throws RequestParameterException 
	 */
	@SuppressWarnings("unchecked")
	private void setValueOdrHakkoJoken(Map<String, String> kikiInfoMap, String orderSbtCd, String svcOrderCd, String yokyuSbtCd, String sameTrnNo, IRequestParameterReadWrite param) throws RequestParameterException
	{
		
		// SOD作業領域を取得
		HashMap<String, Object> sodWorkMap = (HashMap<String, Object>) this.getSodWorkMap(param);
		
		HashMap<String, String> inMap = new HashMap<String, String>();
		
		// 1.オーダ発行条件番号は自動採番
		
		// 2.サービス契約番号 ← 画面で選択された機器のサービス契約番号
		// IT1-2014-0000341 MOD START
		//inMap.put(EKK1081D010CBSMsg.SVC_KEI_NO, kikiInfoMap.get(EKK0341A010CBSMsg1List.SVC_KEI_NO));
		// サービス契約一意照会 下り
		HashMap ekk0081A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0081A010BSMapper.TEMPLATE_ID);
		// 明細取得
		ArrayList ekk0081A010CbsMsg1List = (ArrayList) ekk0081A010OutMap.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		
		// サービス契約一意照会でレコードが取得できた場合
		if (ekk0081A010CbsMsg1List.size() > 0)
		{
			HashMap ekk0081A010CbsMsg = (HashMap) ekk0081A010CbsMsg1List.get(0);
			inMap.put(EKK1081D010CBSMsg.SVC_KEI_NO, (String) ekk0081A010CbsMsg.get(EKK0081A010CBSMsg1List.SVC_KEI_NO));
		}
		// IT1-2014-0000341 MOD END
		
		// IT1-2014-0000341 DEL START
		// 3.サービス契約内訳番号 ← 2.サービス契約番号に紐付くサービス契約内訳番号
		// サービス契約内訳番号一覧照会の結果を取得
		//HashMap ekk0161B004Map = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID);
		// サービス契約内訳番号一覧明細を取得
		//ArrayList ekk0161B004CbsMsg1List = (ArrayList) ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
		//
		// サービス契約内訳番号一覧照会でレコードが取得できた場合
		//if (ekk0161B004CbsMsg1List.size() > 0)
		//{
		//	HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004CbsMsg1List.get(0);
		//	
		//	inMap.put(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
		//}
		// IT1-2014-0000341 DEL END
		
		//  4.機器提供サービス契約番号 ← 画面で選択された機器の機器提供サービス契約番号
		inMap.put(EKK1081D010CBSMsg.KKTK_SVC_KEI_NO, kikiInfoMap.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		
		//  8.オーダ種別コード（電話）
		inMap.put(EKK1081D010CBSMsg.ORDER_SBT_CD, orderSbtCd);
		//  9.サービスオーダコード（OLS)
		inMap.put(EKK1081D010CBSMsg.SVC_ORDER_CD, svcOrderCd);
		// 10.要求種別コード（解約)
		inMap.put(EKK1081D010CBSMsg.YOKYU_SBT_CD, yokyuSbtCd);
		// 11.オーダ発行条件コード（即時発行)
		inMap.put(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_CD, "01");
		// 12.同一処理番号
		inMap.put(EKK1081D010CBSMsg.SAME_TRN_NO, sameTrnNo);
		
		// IT1-2014-0000348 ADD START
		Map dksv00505cc = (HashMap)param.getData(DKSV005005CC);
		
		if (dksv00505cc != null)
		{
			// 13.宅内機器型式コード
			// IT1-2014-0000348 MOD START
			// inMap.put(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, kikiInfoMap.get(EKK0341A010CBSMsg1List.TAKNKIKI_MODEL_CD));
			if (dksv00505cc.containsKey("taknkiki_model_cd"))
			{
				inMap.put(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, (String) dksv00505cc.get("taknkiki_model_cd"));
			}
			// IT1-2014-0000348 MOD END
			
			// 14.機器製造番号
			// IT1-2014-0000348 MOD START
			// inMap.put(EKK1081D010CBSMsg.KIKI_SEIZO_NO, kikiInfoMap.get(EKK0341A010CBSMsg1List.KIKI_SEIZO_NO));
			if (dksv00505cc.containsKey("kiki_seizo_no"))
			{
				inMap.put(EKK1081D010CBSMsg.KIKI_SEIZO_NO, (String) dksv00505cc.get("kiki_seizo_no"));
			}
			// IT1-2014-0000348 MOD END
		}
		// IT1-2014-0000348 ADD END
		
		// 17.サービス契約回線内訳番号 多機能ルータの場合のみ設定する
		// 宅内機器型式一意照会 下り
		HashMap ezm0411A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EZM0411A010BSMapper.TEMPLATEID);
		// 明細取得
		ArrayList ezm0411A010CbsMsg1List = (ArrayList) ezm0411A010OutMap.get(EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST);
		
		HashMap ezm0411A010CbsMsg = (HashMap) ezm0411A010CbsMsg1List.get(0);
		
		// 宅内機器種別コードを取得
		String tkniKikiSbtCd = (String) ezm0411A010CbsMsg.get(EZM0411A010CBSMsg1List.TAKNKIKI_SBT_CD);
		
		// ANK-4315-00-00 MOD START
		// 多機能ルータの場合
		//if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd))
		if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd) || JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd))
		// ANK-4315-00-00 MOD END
		{
			// IT1-2014-0000368 ADD START
			// IT1-2014-0000369 DEL START
			// 3.サービス契約内訳番号 ← 2.サービス契約番号に紐付くサービス契約内訳番号
			// サービス契約内訳番号一覧照会の結果を取得
			//HashMap ekk0161B004Map = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID);
			// サービス契約内訳番号一覧明細を取得
			//ArrayList ekk0161B004CbsMsg1List = (ArrayList) ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
			//
			// サービス契約内訳番号一覧照会でレコードが取得できた場合
			//if (ekk0161B004CbsMsg1List.size() > 0)
			//{
			//	HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004CbsMsg1List.get(0);
			//	
			//	inMap.put(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
			//}
			// IT1-2014-0000369 DEL END
			// IT1-2014-0000368 ADD END 
			
			// IT1-2014-0000341 MOD START
			// サービス契約回線内訳一覧照会 下り
			//HashMap ekk0251B001OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0251B001BSMapper.TEMPLATEID);
			// 明細取得
			//ArrayList ekk0251B001CbsMsg1List = (ArrayList) ekk0251B001OutMap.get(EKK0251B001CBSMsg.EKK0251B001CBSMSG1LIST);
			//
			// サービス契約回線内訳一覧照会で取得できた場合
			//if (ekk0251B001CbsMsg1List.size() > 0)
			//{
			//	HashMap ekk0251B001CbsMsg = (HashMap) ekk0251B001CbsMsg1List.get(0);
			//	
			//	inMap.put(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String) ekk0251B001CbsMsg.get(EKK0251B001CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
			//}
			inMap.put(EKK1081D010CBSMsg.SVC_KEI_KAISEN_UCWK_NO, (String) kikiInfoMap.get(EKK0341A010CBSMsg1List.SVC_KEI_KAISEN_UCWK_NO));
			// IT1-2014-0000341 MOD END
		}
		
		// IT1-2014-0000368 ADD START
		// UQの場合
		if ("J0".equals(tkniKikiSbtCd))
		{
			// 3.サービス契約内訳番号 ← 2.サービス契約番号に紐付くサービス契約内訳番号
			// サービス契約内訳番号一覧照会の結果を取得
			HashMap ekk0161B004Map = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID);
			// サービス契約内訳番号一覧明細を取得
			ArrayList ekk0161B004CbsMsg1List = (ArrayList) ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
			//
			// サービス契約内訳番号一覧照会でレコードが取得できた場合
			if (ekk0161B004CbsMsg1List.size() > 0)
			{
				// IT1-2014-0000369 MOD START
				//HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004CbsMsg1List.get(0);
				//
				//inMap.put(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
				Iterator ekk0161B004Ite = ekk0161B004CbsMsg1List.iterator();
				
				while (ekk0161B004Ite.hasNext())
				{
					HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004Ite.next();
					
					// 料金コースコードを取得
					String pcrsCd = (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.PCRS_CD);
					
					// 取得した料金コースコードがA46(UQ　WiMAX 認証ID)の場合
					if (JKKStrConst.CD00134_MOB_WIMAX.equals(pcrsCd))
					{
						// サービス契約内訳番号を設定
						inMap.put(EKK1081D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
						break;
					}
				}
				// IT1-2014-0000369 MOD END
			}
			
			// IT1-2014-0000369 ADD START
			// 13.宅内機器型式コード
			inMap.put(EKK1081D010CBSMsg.TAKNKIKI_MODEL_CD, null);
			
			// 14.機器製造番号
			inMap.put(EKK1081D010CBSMsg.KIKI_SEIZO_NO, null);
		}
		// IT1-2014-0000368 ADD END
		
		// inMapを設定
		sodWorkMap.put(DKSV0050_DKSV0050OP_EKK1081D010BSMapper.TEMPLATEID, inMap);
	}
	
	/**
	 * オーダ情報作成ワーク登録情報SETメソッド
	 * @param odrNaiyoCd オーダ内容コード
	 * @param param IRequestParameterReadWriteオブジェクト
	 * @throws RequestParameterException
	 */
	@SuppressWarnings("unchecked")
	private void setValueOdrInfSksiWk(String odrNaiyoCd, IRequestParameterReadWrite param) throws RequestParameterException
	{
		// SOD作業領域を取得
		HashMap<String, Object> sodWorkMap = (HashMap<String, Object>) this.getSodWorkMap(param);
		
		// オーダ発行条件登録後の情報を取得
		HashMap<String, String> ekk1081D010Map = (HashMap<String, String>) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK1081D010BSMapper.TEMPLATEID);
		
		HashMap<String, String> inMap = new HashMap<String, String>();
		
		// 2.オーダ発行条件番号（オーダ発行条件登録時に採番されたオーダ発行条件番号）
		inMap.put(EKK1551D010CBSMsg.ODR_HAKKO_JOKEN_NO, ekk1081D010Map.get(EKK1081D010CBSMsg.ODR_HAKKO_JOKEN_NO));
		
		// 3.オーダ内容コード
		inMap.put(EKK1551D010CBSMsg.ODR_NAIYO_CD, odrNaiyoCd);
		
		// 4.サービス契約番号
		// 5.サービス契約世代登録年月日時分秒
		// サービス契約一意照会 下り
		HashMap ekk0081A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0081A010BSMapper.TEMPLATE_ID);
		// 明細取得
		ArrayList ekk0081A010CbsMsg1List = (ArrayList) ekk0081A010OutMap.get(EKK0081A010CBSMsg.EKK0081A010CBSMSG1LIST);
		
		// サービス契約一意照会でレコードが取得できた場合
		if (ekk0081A010CbsMsg1List.size() > 0)
		{
			HashMap ekk0081A010CbsMsg = (HashMap) ekk0081A010CbsMsg1List.get(0);
			
			// サービス契約番号
			inMap.put(EKK1551D010CBSMsg.SVC_KEI_NO, (String) ekk0081A010CbsMsg.get(EKK0081A010CBSMsg1List.SVC_KEI_NO));
			// サービス契約世代登録年月日時分秒
			inMap.put(EKK1551D010CBSMsg.SVKEI_GADTM, (String) ekk0081A010CbsMsg.get(EKK0081A010CBSMsg1List.GENE_ADD_DTM));
		}
		
		// IT1-2014-0000341 DEL START
		// 6.サービス契約内訳番号
		// 7. サービス契約内訳世代登録年月日時分秒
		// サービス契約内訳番号一覧照会の結果を取得
		//HashMap ekk0161B004Map = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0161B004BSMapper.TEMPLATEID);
		// サービス契約内訳番号一覧明細を取得
		//ArrayList ekk0161B004CbsMsg1List = (ArrayList) ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
		//
		// サービス契約内訳番号一覧照会でレコードが取得できた場合
		//if (ekk0161B004CbsMsg1List.size() > 0)
		//{
		//	HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004CbsMsg1List.get(0);
		//	
		//	inMap.put(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
		//	inMap.put(EKK1551D010CBSMsg.SVKEIUW_GADTM, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.GENE_ADD_DTM));
		//}
		// IT1-2014-0000341 DEL END
		
		// 機器提供サービス契約一意照会下り
		HashMap ekk0341A010_02OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK0341A010_02BSMapper.TEMPLATEID);
		// 明細取得
		List ekk0341A010CbsMsg1List = (List) ekk0341A010_02OutMap.get(EKK0341A010CBSMsg.EKK0341A010CBSMSG1LIST);
		
		HashMap ekk0341A010CbsMsg = (HashMap) ekk0341A010CbsMsg1List.get(0);
		
		// 8.機器提供サービス契約番号
		inMap.put(EKK1551D010CBSMsg.KKTK_SVC_KEI_NO, (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_NO));
		// 9.機器提供サービス契約世代登録年月日時分秒
		inMap.put(EKK1551D010CBSMsg.KKTSVKEI_GADTM, (String) ekk0341A010CbsMsg.get(EKK0341A010CBSMsg1List.GENE_ADD_DTM));
		
		// 多機能ルータの場合のみ設定する
		// 宅内機器型式一意照会 下り
		HashMap ezm0411A010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EZM0411A010BSMapper.TEMPLATEID);
		// 明細取得
		ArrayList ezm0411A010CbsMsg1List = (ArrayList) ezm0411A010OutMap.get(EZM0411A010CBSMsg.EZM0411A010CBSMSG1LIST);
		
		HashMap ezm0411A010CbsMsg = (HashMap) ezm0411A010CbsMsg1List.get(0);
		
		// 宅内機器種別コードを取得
		String tkniKikiSbtCd = (String) ezm0411A010CbsMsg.get(EZM0411A010CBSMsg1List.TAKNKIKI_SBT_CD);
		
		// ANK-4315-00-00 MOD START
		// 多機能ルータ、もしくはHGWの場合
		//if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd))
		if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd) || JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd))
		// ANK-4315-00-00 MOD END
		{
			// 機器オプションサービス契約一覧照会下り
			HashMap ekk2811B010OutMap = (HashMap) sodWorkMap.get(DKSV0050_DKSV0050OP_EKK2811B010BSMapper.TEMPLATEID);
			// 明細取得
			List ekk2811B010CbsMsg1List = (List) ekk2811B010OutMap.get(EKK2811B010CBSMsg.EKK2811B010CBSMSG1LIST);
			
			Iterator ite = ekk2811B010CbsMsg1List.iterator();
			while (ite.hasNext())
			{
				HashMap ekk2811B010CbsMsg = (HashMap) ite.next();
				
				String kkopSvcCd = (String) ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_CD);
				
				// 機器オプションサービスコードがG01(ルータ機能)
				if (JKKStrConst.CD00134_KKOP_YUSEN.equals(kkopSvcCd))
				{
					inMap.put(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_1, 
							(String) ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_KEI_NO));
					
					inMap.put(EKK1551D010CBSMsg.KKOSVKEI_GADTM_1, 
							(String) ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.GENE_ADD_DTM));
				}
				// 機器オプションサービスコードがG02(VA機能)
				else if (JKKStrConst.CD00134_KKOP_MUSEN.equals(kkopSvcCd))
				{
					inMap.put(EKK1551D010CBSMsg.KKOP_SVC_KEI_NO_2, 
							(String) ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.KKOP_SVC_KEI_NO));
					
					inMap.put(EKK1551D010CBSMsg.KKOSVKEI_GADTM_2, 
							(String) ekk2811B010CbsMsg.get(EKK2811B010CBSMsg1List.GENE_ADD_DTM));
				}
			}
		}
		
		// IT1-2014-0000368 ADD START
		// UQの場合
		if ("J0".equals(tkniKikiSbtCd))
		{
			// 6.サービス契約内訳番号
			// 7. サービス契約内訳世代登録年月日時分秒
			// サービス契約内訳番号一覧照会の結果を取得
			HashMap ekk0161B004Map = (HashMap) sodWorkMap.get(DKSV0081_DKSV0081OP_EKK0161B004BSMapper.TEMPLATEID);
			// サービス契約内訳番号一覧明細を取得
			ArrayList ekk0161B004CbsMsg1List = (ArrayList) ekk0161B004Map.get(EKK0161B004CBSMsg.EKK0161B004CBSMSG1LIST);
			//
			// サービス契約内訳番号一覧照会でレコードが取得できた場合
			if (ekk0161B004CbsMsg1List.size() > 0)
			{
				// IT1-2014-0000369 MOD START
				//HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004CbsMsg1List.get(0);
				//
				//inMap.put(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
				//inMap.put(EKK1551D010CBSMsg.SVKEIUW_GADTM, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.GENE_ADD_DTM));
				
				Iterator ekk0161B004Ite = ekk0161B004CbsMsg1List.iterator();
				
				while (ekk0161B004Ite.hasNext())
				{
					HashMap ekk0161B004CbsMsg = (HashMap) ekk0161B004Ite.next();
					
					// 料金コースコードを取得
					String pcrsCd = (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.PCRS_CD);
					
					// 取得した料金コースコードがA46(UQ　WiMAX 認証ID)の場合
					if (JKKStrConst.CD00134_MOB_WIMAX.equals(pcrsCd))
					{
						// サービス契約内訳番号を設定
						inMap.put(EKK1551D010CBSMsg.SVC_KEI_UCWK_NO, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.SVC_KEI_UCWK_NO));
						inMap.put(EKK1551D010CBSMsg.SVKEIUW_GADTM, (String) ekk0161B004CbsMsg.get(EKK0161B004CBSMsg1List.GENE_ADD_DTM));
						break;
					}
				}
				// IT1-2014-0000369 MOD END
			}
		}
		// IT1-2014-0000368 ADD END
		
		// inMapを設定
		sodWorkMap.put(DKSV0050_DKSV0050OP_EKK1551D010BSMapper.TEMPLATEID, inMap);
	}
	
	/**
	 * オーダ発行条件登録処理
	 * 
	 * @param kikiInfoMap 返品機器情報
	 * @param orderSbtCd オーダ種別コード
	 * @param svcOrderCd サービスオーダコード
	 * @param yokyuSbtCd 要求種別コード
	 * @param handle
	 * @param param
	 * @param scCall
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void insertOdrHakkoJoken(Map kikiInfoMap, String orderSbtCd, String svcOrderCd, String yokyuSbtCd, String sameTrnNo,
			SessionHandle handle, IRequestParameterReadWrite param, ServiceComponentRequestInvoker scCall) throws Exception
	{
		
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(DKSV005005CC);
		
		// 機能コード2の場合
		if ("2".equals(inMap.get(EKK1081D010CBSMsg.FUNC_CODE)))
		{
			// 登録処理を行わない
			return;
		}
		
		this.setValueOdrHakkoJoken(kikiInfoMap, orderSbtCd, svcOrderCd, yokyuSbtCd, sameTrnNo, param);
		HashMap ekk1081D010Map = EKK1081D010BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "オーダ発行条件登録処理の実行");
		Map ekk1081D010Result = scCall.run(ekk1081D010Map, handle);
		param = EKK1081D010BSMapper.editResultRP(ekk1081D010Result, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("オーダ発行条件登録処理失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
	}
	
	/**
	 * オーダ情報作成ワーク登録処理
	 * 
	 * @param odrNaiyoCd オーダ内容コード
	 * @param handle
	 * @param param
	 * @param scCall
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	private void insertOdrInfSksiWk(String odrNaiyoCd, 
			SessionHandle handle, IRequestParameterReadWrite param, ServiceComponentRequestInvoker scCall) throws Exception
	{
		
		/* ユーザデータ情報 */
		HashMap inMap = (HashMap)param.getData(DKSV005005CC);
		
		// 機能コード2の場合
		if ("2".equals(inMap.get(EKK1081D010CBSMsg.FUNC_CODE)))
		{
			// 登録処理を行わない
			return;
		}
		
		this.setValueOdrInfSksiWk(odrNaiyoCd, param);
		HashMap ekk1551D010Map = EKK1551D010BSMapper.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "オーダ情報作成ワーク登録処理の実行");
		Map ekk1551D010Result = scCall.run(ekk1551D010Map, handle);
		param = EKK1551D010BSMapper.editResultRP(ekk1551D010Result, param);
		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("オーダ情報作成ワーク登録処理失敗", "0", 
					Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
	}
	
	/**
	 * 返品SOD発行対象かどうかを判定する。
	 * @param tkniKikiSbtCd 宅内機器種別コード
	 * @return 判定結果
	 */
	private boolean checkTkniKikiSbtCd(String tkniKikiSbtCd)
	{
		// 返品ＳＯＤ対象抽出の宅内機器種別コードが "50"（光電話ＶＡ）の場合
		if ("50".equals(tkniKikiSbtCd))
		{
			return true;
		}
		// 返品ＳＯＤ対象抽出の宅内機器種別コードが "F0"（ＢＢＲ）の場合
		else if ("F0".equals(tkniKikiSbtCd))
		{
			return true;
		}
		// 返品ＳＯＤ対象抽出の宅内機器種別コードが "J0"（ＵＱ）の場合
		else if ("J0".equals(tkniKikiSbtCd))
		{
			return true;
		}
		// 返品ＳＯＤ対象抽出の宅内機器種別コードが "R0"（多機能ルータ）の場合
		else if (JKKStrConst.TAKNKIKI_SBT_CD_TAKINORT.equals(tkniKikiSbtCd))
		{
			return true;
		}
		// ANK-4315-00-00 ADD START
		// 返品ＳＯＤ対象抽出の宅内機器種別コードが "S0"（HGW）の場合
		else if (JKKStrConst.TAKNKIKI_SBT_CD_HGW.equals(tkniKikiSbtCd))
		{
			return true;
		}
		// ANK-4315-00-00 ADD END
		else
		{
			return false;
		}
	}
	// ANK-2119-00-00 ADD END
}
