/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：物流管理システム
*   ソースファイル名：JDKCommon67CC.java
*   作成者          ：富士通
*   日付            ：2021年02月10日
*＜機能概要＞
*   修理完了宅内更新CCクラスです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v52.00.00   2021/02/10   FJ)平野     【ANK-3903-00-00】故障交換登録業務改善対応     
*
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.HashMap;
import java.util.Map;

import com.fujitsu.futurity.bp.custom.constant.DKSV0060_DKSV0060OP_DKSV006018CC;
import com.fujitsu.futurity.bp.custom.mapping.DKSV0060_DKSV0060OP_EDKA0010006BSMapper2;
import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
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;


/**
 * 修理完了宅内更新CCクラスです。
 * @author 富士通
 */
public class JDKCommon67CC extends AbstractCommonComponent
{
	/** CC名 */
	private static final String DKSV006018CC = "DKSV006018CC";
	
	private static final DKSV0060_DKSV0060OP_EDKA0010006BSMapper2 MAPPER = new DKSV0060_DKSV0060OP_EDKA0010006BSMapper2();

	
	/**
	 * 修理完了宅内連携処理を行います。
	 * @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 dksv006018cc = (HashMap)param.getData(DKSV006018CC);
		
		if (JDKStrConst.KOKAN.equals(dksv006018cc.get(DKSV0060_DKSV0060OP_DKSV006018CC.BTRYHOZN_CD)))
		{
			JSYejbLog.println(JSYejbLog.DEBUG, JDKCommon67CC.class, "物流保全が交換なので、宅内連携を実施しません。");
			return param;
		}

		HashMap inMap = MAPPER.editInMsg(param);
		JSYejbLog.println(JSYejbLog.DEBUG, this.getClass(), "宅内機器修理交換情報更新処理の実行");
		Map result = scCall.run(inMap, handle);
		MAPPER.editResultRP(result, param);

		if (JDKBPCommon.hasError(param))
		{
			throw new SCCallException("宅内機器修理交換情報更新処理失敗", "0", 
										Integer.parseInt(param.getControlMapData("returnCode").toString()));
		}
		
		JDKBPCommon.throwScExceptionIfHasError("宅内機器修理交換情報更新処理リターンコード不正", param);

		return param;
	}

}
