/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKMapInfSaiChshtAreaReq
*	ソースファイル名	：JBSbatKKMapInfSaiChshtAreaReq.java
*	作成者				：富士通　
*	作成日				：2012年10月25日
*＜機能概要＞
*　地図情報差分抽出ーエリアリクエスト部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00		2012/10/25	FJ)藤原		【ST4-2012-0000012】新規作成
*	v4.00		2012/11/20	FJ)藤原		【ST4-2012-0000012】エリアリクエスト現在工程コードから現在工程名・コードを設定するよう追加
*	v5.00		2013/10/03	FJ)坂東		【OM-2013-0002682】緯度・経度を入力ファイルより取得するよう修正
*********************************************************************/
package eo.business.service;

//import java.util.HashMap;

import eo.business.common.JBSbatBusinessService;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
//import eo.framework.item.JBSbatCommonDBInterface;
//import eo.framework.db.JBSbatSQLAccess;
//import eo.framework.util.JBSbatCheckUtil;

import eo.business.util.table.JBSbatFU_T_AREA_REQ;
import eo.business.util.table.JBSbatCK_T_PROSCST;
import eo.business.util.file.JBSbatKKIFM278;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKMapInfSaiChshtAreaReq extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 問合せ客番号付加文字列 */	
	private static final String HUKA_CHR = "T";
// 2012/11/20 v4 add start
	/** エリアリクエスト現在工程名称キー */
	private static final String AREA_REQ_NOW_STEP_NM = "AREA_REQ_NOW_STEP_NM";
// 2012/11/20 v4 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
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		//入出力インターフェースオブジェクトを生成
		JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
		
		// ############################### 抽出した値を取得する
		// 問合せ客番号
		String proscst_no = inMap.getString(JBSbatCK_T_PROSCST.PROSCST_NO);
		// エリアリクエスト番号
		String area_req_no = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_NO);
		// X座標
		String xzahyo = inMap.getString(JBSbatFU_T_AREA_REQ.XZAHYO);
		// Y座標
		String yzahyo = inMap.getString(JBSbatFU_T_AREA_REQ.YZAHYO);
// 2012/11/20 v4 add start
		// エリアリクエスト現在工程コード
		String area_req_now_step_cd = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_NOW_STEP_CD);
		// エリアリクエスト現在工程名称
		String area_req_now_step_nm = inMap.getString(AREA_REQ_NOW_STEP_NM);
// 2012/11/20 v4 add end
		// 問合せ客名
		String proscst_nm = inMap.getString(JBSbatCK_T_PROSCST.PROSCST_NM);
		// 問合せ客カナ名
		String proscst_kana = inMap.getString(JBSbatCK_T_PROSCST.PROSCST_KANA);
		// 問合せ客電話番号
		String proscst_telno = inMap.getString(JBSbatCK_T_PROSCST.PROSCST_TELNO);
		// 問合せ客メールアドレス
		String proscst_mlad = inMap.getString(JBSbatCK_T_PROSCST.PROSCST_MLAD);
		// エリアリクエスト住所コード
		String area_req_ad_cd = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_AD_CD);
		// エリアリクエスト郵便番号
		String area_req_pcd = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_PCD);
		// エリアリクエスト都道府県名
		String area_req_state_nm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_STATE_NM);
		// エリアリクエスト市区町村名
		String area_req_city_nm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_CITY_NM);
		// エリアリクエスト大字通称名
		String area_req_oaztsu_nm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_OAZTSU_NM);
		// エリアリクエスト字丁目
		String area_req_azcho_nm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_AZCHO_NM);
		// エリアリクエスト住所番地号
		String area_req_ad_bnchigo = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_AD_BNCHIGO);
		// エリアリクエスト住所補記・建物名
		String area_req_adrttm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_ADRTTM);
		// エリアリクエスト住所補記・部屋番号
		String area_req_adrrm = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_ADRRM);
		// エリアリクエストのエリアリクエスト受付年月日
		String area_req_uke_ymd = inMap.getString(JBSbatFU_T_AREA_REQ.AREA_REQ_UK_YMD);
		
		// ############################### 値の編集を行う
		// 問合せ客番号の先頭に文字列を付加
		proscst_no = HUKA_CHR + proscst_no;
		// X座標がnullまたは空文字の場合、0に置き換える
		xzahyo = getCkanNullto0(xzahyo);
		// Y座標がnullまたは空文字の場合、0に置き換える
		yzahyo = getCkanNullto0(yzahyo);
		
		// 2013/10/03 OM-2013-0002682 Mod Start
		// 経度と緯度を入力ファイルから取得するよう修正
		// 経度
//		String lgtd = "0";
		String lgtd = getCkanNullto0(inMap.getString(JBSbatFU_T_AREA_REQ.LGTD));
		// 緯度
//		String lttd = "0";
		String lttd = getCkanNullto0(inMap.getString(JBSbatFU_T_AREA_REQ.LTTD));
		// 2013/10/03 OM-2013-0002682 Mod End
		
		// ############################### ファイルに出力する
		// SYSID
		outmap.setString(JBSbatKKIFM278.SYSID, proscst_no);
		// お客さまID
		outmap.setString(JBSbatKKIFM278.SVC_KEI_NO, area_req_no);
// 2012/11/20 v4 add start
		// エリアリクエスト現在工程コード
		outmap.setString(JBSbatKKIFM278.PRC_CD, area_req_now_step_cd);
		// エリアリクエスト現在工程名
		outmap.setString(JBSbatKKIFM278.PRC_NM, area_req_now_step_nm);
// 2012/11/20 v4 add end
		// X座標
		outmap.setString(JBSbatKKIFM278.XZAHYO, xzahyo);
		// Y座標
		outmap.setString(JBSbatKKIFM278.YZAHYO, yzahyo);
		// 経度
		outmap.setString(JBSbatKKIFM278.LGTD, lgtd);
		// 緯度
		outmap.setString(JBSbatKKIFM278.LTTD, lttd);
		// お客様名
		outmap.setString(JBSbatKKIFM278.CUST_NM, proscst_nm);
		// お客様名カナ
		outmap.setString(JBSbatKKIFM278.CUST_KANA, proscst_kana);
		// 連絡先自宅電話番号
		outmap.setString(JBSbatKKIFM278.HM_TELNO, proscst_telno);
		// メールアドレス
		outmap.setString(JBSbatKKIFM278.MLAD, proscst_mlad);
		// 契約者住所コード
		outmap.setString(JBSbatKKIFM278.KEISHA_AD_CD, area_req_ad_cd);
		// 契約者郵便番号
		outmap.setString(JBSbatKKIFM278.KEISHA_PCD, area_req_pcd);
		// 契約者都道府県名
		outmap.setString(JBSbatKKIFM278.KEISHA_STATE_NM, area_req_state_nm);
		// 契約者市区町村名
		outmap.setString(JBSbatKKIFM278.KEISHA_CITY_NM, area_req_city_nm);
		// 契約者大字通称名
		outmap.setString(JBSbatKKIFM278.KEISHA_OAZTSU_NM, area_req_oaztsu_nm);
		// 契約者字丁目名
		outmap.setString(JBSbatKKIFM278.KEISHA_AZCHO_NM, area_req_azcho_nm);
		// 契約者番地号
		outmap.setString(JBSbatKKIFM278.KEISHA_BNCHIGO, area_req_ad_bnchigo);
		// 契約者住所補記・建物名
		outmap.setString(JBSbatKKIFM278.KEISHA_ADRTTM, area_req_adrttm);
		// 契約者住所補記・部屋番号
		outmap.setString(JBSbatKKIFM278.KEISHA_ADRRM, area_req_adrrm);
		// 申込受付年月日
		outmap.setString(JBSbatKKIFM278.MSKM_UK_YMD, area_req_uke_ymd);
		
		// 出力フラグを設定
		outmap.setOutFlg(true);
		// 出力共通電文に入出力インターフェースを設定する
		outputBean.addOutMapList(outmap);
		
		// 出力共通電文を返却
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * Nullまたは""の文字列を"0"に置換<br>
	 * <br>
	 * 入力文字列がNullまたは""である場合に"0"で返却します。<br>
	 * <br>
	 * @param target 入力文字列
	 * @return 条件を満たした場合"0"、それ以外の場合は入力文字列
	 */
	private String getCkanNullto0(String target)
	{
		String ret_value = "0";
		if(null == target || "".equals(target))
		{
			return ret_value;
		}
		return target;
	}
}
