/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKUEbisKkshkaInfCst
*	ソースファイル名	：JBSbatKUEbisKkshkaInfCst.java
*	作成者				：富士通　
*	作成日				：2015年12月21日
*＜機能概要＞
*　ｅＢＩＳ機器出荷情報抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v23.00.00	2016/01/08  FJ)遠藤		【ANK-2612-00-00】10Gコース導入対応
*	v62.00.00	2022/11/01	FJ)アラ		【ANK-4285-00-00】【eo】ローゼット化対応フォロー案件２
*	v61.00.00	2023/07/18	FJ)永江		【ANK-4431-00-00】【ｅｏ定期】 ONU計画交換対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatKUIFE072;
import eo.business.util.file.JBSbatKUIFE080;
import eo.business.util.table.JBSbatDK_T_HAISO;
import eo.business.util.table.JBSbatDK_T_HAISO_TG_BPIN;
import eo.business.util.table.JBSbatKU_T_KOJIAK;
import eo.common.constant.JKUStrConst;
import eo.common.util.JKUCommonUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKUEbisKkshkaInfCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	// 配送区分．直送
	private static final String HAISO_DIV_THOKUSO = "00";
	
	// ANK-4431-00-00 ADD START
	// 配送区分．手渡し
	private static final String HAISO_DIV_TEWATASHI = "01";
	// ANK-4431-00-00 ADD END

	// 通常出荷
	private static final String TUJYO_SHUKKA = "0";

	// 在庫出荷
	private static final String ZAIKO_SHUKKA = "1";
	// ANK-4431-00-00 ADD START
	
	// 機器出荷種別_通常
	private static final String KIKI_TUJYO = "1";
	
	// 機器出荷種別_収容替え
	private static final String KIKI_SYUYO = "2";
	
	// 機器出荷種別_ONU交換工事
	private static final String KIKI_ONUCHG = "3";
	
	// 機器出荷種別_故障交換
	private static final String KIKI_KOSYO = "4";
	
	// ANK-4431-00-00 ADD END

	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの 主処理を記述してください。▼▼▼▼▼▼*/
// ANK-4285-00-00 MOD START		
//		// 出力共通電文を生成する。
//		JBSbatOutputItem outputBean = new JBSbatOutputItem();
//		
//		// 出力ファイルを編集
//		inMap.setString(JBSbatKUIFE072.MACAD, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KIKI_SEIZO_NO));
//		
//		// 出力フラグを設定
//		inMap.setOutFlg(true);
//		
//		// 出力共通電文に入出力インターフェースを設定する。
//		outputBean.addOutMapList(inMap);
		
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		// 入出力インターフェースオブジェクトを生成 (eBISのワークマップ)
		JBSbatServiceInterfaceMap outmapEbis = new JBSbatServiceInterfaceMap();
		// 入出力インターフェースオブジェクトを生成 (OPMSのワークマップ)
		JBSbatServiceInterfaceMap outmapOpms = new JBSbatServiceInterfaceMap();
		
		/******************************************************/
		/** 【eBIS】設定 *******************************/
		/******************************************************/
		
		// 出力ファイルを編集
		//宅内機器型式コード
		outmapEbis.setString(JBSbatKUIFE072.TAKNKIKI_MODEL_CD, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.TAKNKIKI_MODEL_CD));
		//ＭＡＣアドレス
		outmapEbis.setString(JBSbatKUIFE072.MACAD, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KIKI_SEIZO_NO));
		//工事案件番号
		outmapEbis.setString(JBSbatKUIFE072.KOJIAK_NO, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KOJIAK_NO));
		// ANK-4431-00-00 ADD START
		//機器出荷種別
		String haiso_kbn_ebis = inMap.getString(JBSbatDK_T_HAISO.HAISO_DIV);	
		String kojiak_sbt_cd = inMap.getString(JBSbatKU_T_KOJIAK.KOJIAK_SBT_CD);
		
		if(HAISO_DIV_THOKUSO.equals(haiso_kbn_ebis) || HAISO_DIV_TEWATASHI.equals(haiso_kbn_ebis))
		{
			if(JKUStrConst.CD00577_PLAN_CHG_SHUYO.equals(kojiak_sbt_cd))
			{
				outmapEbis.setString(JBSbatKUIFE072.KIKI_SYUKKA_SBT, KIKI_SYUYO );
			}
			else if(JKUStrConst.CD00577_ONU_KOKAN_KOJI.equals(kojiak_sbt_cd))
			{
				outmapEbis.setString(JBSbatKUIFE072.KIKI_SYUKKA_SBT, KIKI_ONUCHG );
			}
			else
			{
				outmapEbis.setString(JBSbatKUIFE072.KIKI_SYUKKA_SBT, KIKI_TUJYO );
			}
		}
		else
		{
			outmapEbis.setString(JBSbatKUIFE072.KIKI_SYUKKA_SBT, KIKI_KOSYO );
		}
		// ANK-4431-00-00 ADD END
		// 出力フラグを設定
		outmapEbis.setOutFlg(true);
		
		/******************************************************/
		/** 【OPMS】設定 *******************************/
		/******************************************************/
		// 出力ファイルを編集
		//宅内機器型式コード
		outmapOpms.setString(JBSbatKUIFE080.TAKNKIKI_MODEL_CD, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.TAKNKIKI_MODEL_CD));
		//ＭＡＣアドレス 
		outmapOpms.setString(JBSbatKUIFE080.MACAD, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KIKI_SEIZO_NO));
		//工事案件番号 
		outmapOpms.setString(JBSbatKUIFE080.KOJIAK_NO, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.KOJIAK_NO));
		//伝票番号
		outmapOpms.setString(JBSbatKUIFE080.DENPYO_NO, inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.DENPYO_NO));
		//在庫出荷フラグ
		String haiso_kbn = inMap.getString(JBSbatDK_T_HAISO.HAISO_DIV);	
		String denpyo_no = inMap.getString(JBSbatDK_T_HAISO_TG_BPIN.DENPYO_NO);
		
		if ( JKUCommonUtil.isNull(denpyo_no) && JKUCommonUtil.isNull(haiso_kbn) ){
				outmapOpms.setString(JBSbatKUIFE080.HAISO_DIV, ZAIKO_SHUKKA );
		}
		else if(HAISO_DIV_THOKUSO.equals(haiso_kbn) ||JKUCommonUtil.isNull(haiso_kbn)) {
			outmapOpms.setString(JBSbatKUIFE080.HAISO_DIV, TUJYO_SHUKKA );
		}
		else {
			outmapOpms.setString(JBSbatKUIFE080.HAISO_DIV, ZAIKO_SHUKKA );
		}
		
		// 出力フラグを設定
		outmapOpms.setOutFlg(true);
		
		// 出力共通電文に入出力インターフェースを設定する。
		outputBean.addOutMapList(outmapEbis);
		outputBean.addOutMapList_2(outmapOpms);	

		return  outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
