/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKUEoKnrnInfoMnkhtCst
*	ソースファイル名	：JBSbatKUEoKnrnInfoMnkhtCst.java
*	作成者				：富士通　
*	作成日				：2012年01月11日
*＜機能概要＞
*　ｅｏ関連情報（面開発）抽出部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/11   富士通		新規作成
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JKUBatCommon;
import eo.business.util.file.JBSbatKUIFE054;
import eo.business.util.table.JBSbatKK_T_MENKAIHAT_ANKEN;
import eo.business.util.table.JBSbatKK_T_MNKHT_TNTSHA;
import eo.common.constant.JKUStrConst;
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;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKUEoKnrnInfoMnkhtCst extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(面開発担当者)*/
	private static final String D_TBL_NAME_KK_T_MNKHT_TNTSHA = "KK_T_MNKHT_TNTSHA";

	/** SQL定義キー(KU_SELECT_001)*/
	private static final String KK_T_MNKHT_TNTSHA_KU_SELECT_001 = "KU_SELECT_001";

	/** テーブルアクセスクラス(面開発担当者)*/
	private JBSbatSQLAccess db_KK_T_MNKHT_TNTSHA = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** ▼▼▼▼▼▼業務チームで作成した宣言です 開始▼▼▼▼▼▼ */
	/** 連携コード(面開発案件) */
	private static final String RENKEI_CD_MENKAIHAT = "020";
	/** ▲▲▲▲▲▲業務チームで作成した宣言です 終了▲▲▲▲▲▲ */

	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_MNKHT_TNTSHA = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_MNKHT_TNTSHA);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		// 出力共通電文を生成する。
		JBSbatOutputItem outputBean = new JBSbatOutputItem();
		
		// 面開発案件番号
		String menKaihatNo = inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.MENKAIHAT_ANKEN_NO);
		// 面開発担当者検索
		JBSbatCommonDBInterface kk0281Map = this.findKK_T_MNKHT_TNTSHA(menKaihatNo);
		
		// 出力ファイルを編集する
		JBSbatServiceInterfaceMap outMap = new JBSbatServiceInterfaceMap();
		// 連携コード
		outMap.setString(JBSbatKUIFE054.RENKEI_CD, RENKEI_CD_MENKAIHAT);
		// 案件番号
		outMap.setString(JBSbatKUIFE054.ANKEN_NO, inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.MENKAIHAT_ANKEN_NO));
		// 名称
		String[] name = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.ANKEN_NM), 120, true);
		outMap.setString(JBSbatKUIFE054.NM, name[0]);
		// フリガナ
		String[] kana = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.ANKEN_KANA), 80, true);
		outMap.setString(JBSbatKUIFE054.KANA, kana[0]);
		// 代表者
		int mnkhtTntsha = 1;
		while (kk0281Map != null)
		{
			// 担当者名編集
			String[] tntshaName = JKUBatCommon.splitString(kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.TNTSHA_NM), 120, true);
			// 担当者カナ名編集
			String[] tntshaKana = JKUBatCommon.splitString(kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.TNTSHA_KANA), 40, true);
			// 面開発担当者補足備考編集
			String[] tntshaBiko = JKUBatCommon.splitString(kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.MENKAIHAT_TNTSHA_HSK_BIKO), 60, true);
			
			if (mnkhtTntsha == 1)
			{
				// 代表者１＿氏名
				outMap.setString(JBSbatKUIFE054.DHS_1_NM, tntshaName[0]);
				// 代表者１＿フリガナ
				outMap.setString(JBSbatKUIFE054.DHS_1_KANA, tntshaKana[0]);
				// 代表者１＿電話番号
				outMap.setString(JBSbatKUIFE054.DHS_1_TELNO, kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.TELNO));
				// 代表者１＿備考
				outMap.setString(JBSbatKUIFE054.DHS_1_BIKO, tntshaBiko[0]);
			}
			else if (mnkhtTntsha == 2)
			{
				// 代表者２＿氏名
				outMap.setString(JBSbatKUIFE054.DHS_2_NM, tntshaName[0]);
				// 代表者２＿フリガナ
				outMap.setString(JBSbatKUIFE054.DHS_2_KANA, tntshaKana[0]);
				// 代表者２＿電話番号
				outMap.setString(JBSbatKUIFE054.DHS_2_TELNO, kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.TELNO));
				// 代表者２＿備考
				outMap.setString(JBSbatKUIFE054.DHS_2_BIKO, tntshaBiko[0]);
			}
			else if (mnkhtTntsha == 3) 
			{
				// 代表者３＿氏名
				outMap.setString(JBSbatKUIFE054.DHS_3_NM, tntshaName[0]);
				// 代表者３＿フリガナ
				outMap.setString(JBSbatKUIFE054.DHS_3_KANA, tntshaKana[0]);
				// 代表者３＿電話番号
				outMap.setString(JBSbatKUIFE054.DHS_3_TELNO, kk0281Map.getString(JBSbatKK_T_MNKHT_TNTSHA.TELNO));
				// 代表者３＿備考
				outMap.setString(JBSbatKUIFE054.DHS_3_BIKO, tntshaBiko[0]);
			}
			else
			{
				// ３人目以降は設定しない
				break;
			}
			
			mnkhtTntsha++;
			kk0281Map = db_KK_T_MNKHT_TNTSHA.selectNext();
		}
		// 導入担当＿氏名
		String[] donyuTntName = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.DONYU_TNTSHA_USER_NM), 120, true);
		outMap.setString(JBSbatKUIFE054.DONYU_TNT_NM, donyuTntName[0]);
		// 導入担当＿所属
		String[] donyuTntShozk = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.DONYU_TNTSHA_ORG_NM), 100, true);
		outMap.setString(JBSbatKUIFE054.DONYU_TNT_SHOZK, donyuTntShozk[0]);
		// フォロー担当＿氏名
		String[] followTntName = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.FOLLOW_TNTSHA_USER_NM), 120, true);
		outMap.setString(JBSbatKUIFE054.FOLLOW_TNT_NM, followTntName[0]);
		// フォロー担当＿所属
		String[] followTntShozk = JKUBatCommon.splitString(inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.FOLLOW_TNTSHA_ORG_NM), 100, true);
		outMap.setString(JBSbatKUIFE054.FOLLOW_TNT_SHOZK, followTntShozk[0]);
		// 覚書有効期限
		outMap.setString(JBSbatKUIFE054.OBOEGAKI_YK_KIGEN, inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.OBOEGAKI_YK_KIGEN_YMD));
		// 面開発案件補足備考の改行コードを半角スペースに変換する
		String menAnkenBiko = inMap.getString(JBSbatKK_T_MENKAIHAT_ANKEN.MENKAIHAT_ANKEN_HSK_BIKO);
		if (menAnkenBiko != null)
		{
			menAnkenBiko = menAnkenBiko.replaceAll(JKUStrConst.CRLF, JKUStrConst.LF).replaceAll(JKUStrConst.CR_OR_LF, JKUStrConst.HANKAKU_SPACE);
		}
		// 備考１
		String[] biko = new String[2];
		biko = JKUBatCommon.splitString(menAnkenBiko, 100, true);
		outMap.setString(JBSbatKUIFE054.BIKO_1, biko[0]);
		// 備考２
		biko = JKUBatCommon.splitString(biko[1], 20, true);
		outMap.setString(JBSbatKUIFE054.BIKO_2, biko[0]);

		// 出力フラグを設定
		outMap.setOutFlg(true);
		
		// 出力共通電文に入出力インターフェースを設定する
		outputBean.addOutMapList(outMap);
		// 出力共通電文を返却する
		return outputBean;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_MNKHT_TNTSHA.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**
	 * SQLKEY(KU_SELECT_001)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	面開発案件番号
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_MNKHT_TNTSHA_KU_SELECT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_KK_T_MNKHT_TNTSHA.selectBySqlDefine(paramList, KK_T_MNKHT_TNTSHA_KU_SELECT_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/** ▼▼▼▼▼▼業務チームで作成したメソッドです 開始▼▼▼▼▼▼ */
	
	/**
	 * 面開発担当者を検索します。
	 * @param menKaihatNo 面開発案件番号
	 * @return 面開発担当者テーブル１レコード（取得できなかった場合はnull）
	 * @throws Exception
	 */
	private JBSbatCommonDBInterface findKK_T_MNKHT_TNTSHA(String menKaihatNo) throws Exception 
	{
		// 検索処理に渡すパラメタを設定
		Object[] whereParam = new Object[1];

		whereParam[0] = menKaihatNo;

		// 検索処理実行
		this.executeKK_T_MNKHT_TNTSHA_KU_SELECT_001(whereParam);

		return db_KK_T_MNKHT_TNTSHA.selectNext();
	}

	/** ▲▲▲▲▲▲業務チームで作成したメソッドです 終了▲▲▲▲▲▲ */
}
