/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatKKMailSendAfTran
*	ソースファイル名	：JBSbatKKMailSendAfTran.java
*	作成者				：富士通　
*	作成日				：2011年08月23日
*＜機能概要＞
*　メール送信後処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/08/23  FJ)倉上		新規作成
*	v3.00.00	2012/05/02	FJ)岡田		【巻@登録テーブル項目同期】対応
*	v4.00.00	2013/03/15	FJ)柳		【IT1-2013-0000498】対応
*********************************************************************/
package eo.business.service;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCCBatCommon;
import eo.business.util.file.JBSbatKKIFM078;
import eo.framework.db.JBSbatSQLAccess;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.util.JBSbatOracleSeqUtil;
import eo.framework.util.JBSbatStringUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatKKMailSendAfTran extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(工程進捗メール送信実績)*/
	private static final String D_TBL_NAME_KK_T_STPPRML_SND_JSK = "KK_T_STPPRML_SND_JSK";

	/** テーブルアクセスクラス(工程進捗メール送信実績)*/
	private JBSbatSQLAccess db_KK_T_STPPRML_SND_JSK = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** メール送信ステータス(未送信)*/
	private static final String MAIL_SEND_STATS = "001";
	
	/** シーケンス定義名(工程進捗メール送信実績番号)*/
	private static final String SEQ_STPPRML_SND_JSK_NO = "SEQ_STPPRML_SND_JSK_NO";
	
	/** 無効フラグ(有効)*/
	private static final String MK_FLG_YK = "0";
	
	/** 空白*/
	private static final String SPACE = "";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_KK_T_STPPRML_SND_JSK = new JBSbatSQLAccess(commonItem, D_TBL_NAME_KK_T_STPPRML_SND_JSK);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		super.logPrint.printDebugLog("execute_START");
		
		// システム日付を取得
		String sysDate = JCCBatCommon.getSysDateTimeStamp();
		
		// 登録処理を実施します。
		Object[] set_param = new Object[32];
		
		// 工程進捗メール送信実績番号 ← 連番を採番
		set_param[0] = JBSbatStringUtil.padNumFormString(JBSbatOracleSeqUtil.getNextSeq(commonItem.getConnection(), SEQ_STPPRML_SND_JSK_NO), 10);
		
		// 工事案件番号を設定
		set_param[1] = inMap.getString(JBSbatKKIFM078.KOJIAK_NO);
		
		// 申込明細番号を設定
		set_param[2] = inMap.getString(JBSbatKKIFM078.MSKM_DTL_NO);
		
		// 申込書番号を設定
		set_param[3] = inMap.getString(JBSbatKKIFM078.MSKMSHO_NO);
		
		// サービス契約番号を設定
		set_param[4] = inMap.getString(JBSbatKKIFM078.SVC_KEI_NO);
		
		// サービス契約ステータスを設定
		set_param[5] = inMap.getString(JBSbatKKIFM078.SVC_KEI_STAT);
		
		// 審査結果コードを設定
		set_param[6] = inMap.getString(JBSbatKKIFM078.SKEKKA_CD);
		
		// 工程光ルート調査設計コードの設定
		set_param[7] = inMap.getString(JBSbatKKIFM078.STEP_HROUTE_CHOSA_DSGN_CD);
		
		// 工程お客様宅内調査日程調整コードを設定
		set_param[8] = inMap.getString(JBSbatKKIFM078.STEP_CUST_TAKCHO_NTADJ_CD);
		
		// 工程お客様宅内調査コードを設定
		set_param[9] = inMap.getString(JBSbatKKIFM078.STEP_CUST_TAKCHO_CD);
		
		// 工程各種許可申請コードを設定
		set_param[10] = inMap.getString(JBSbatKKIFM078.STEP_VARI_KYOKA_SHINSEI_CD);
		
		// 工程宅内調査承諾書受領コードを設定
		set_param[11] = inMap.getString(JBSbatKKIFM078.STEP_TAKCHO_SDAKS_RCP_CD);
		
		// 工程光ケーブル線路工事コードを設定
		set_param[12] = inMap.getString(JBSbatKKIFM078.STEP_HCABLE_LINE_KOJI_CD);
		
		// 工程お客様宅内工事コードを設定
		set_param[13] = inMap.getString(JBSbatKKIFM078.STEP_CUST_TAKNI_KOJI_CD);
		
		// 工程ご利用開始コードを設定
		set_param[14] = inMap.getString(JBSbatKKIFM078.STEP_USE_STA_CD);
		
		// 登録年月日時分秒システム日時
		set_param[19] = sysDate;
		
		// 登録オペレータアカウントバッチID
		set_param[20] = super.batchUserId;
		
		// 更新年月日時分秒システム日時
		set_param[21] = sysDate;
		
		// 更新オペレータアカウントバッチID
		set_param[22] = super.batchUserId;;
		
		// 削除年月日時分秒設定なし
		set_param[23] = SPACE;
		
		// 削除オペレータアカウント設定なし
		set_param[24] = SPACE;
		
		// 無効フラグ0:有効
		set_param[25] = MK_FLG_YK;
		
		// 登録運用年月日
		set_param[26] = SPACE;
		
		// 登録処理ＩＤ
		set_param[27] = SPACE;
		
		// 更新運用年月日
		set_param[28] = SPACE;
		
		// 更新処理ＩＤ
		set_param[29] = SPACE;
		
		// 削除運用年月日
		set_param[30] = SPACE;
		
		// 削除処理ＩＤ
		set_param[31] = SPACE;
		
		// 工事進捗通知メールアドレスが設定されている場合
		if(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM078.MAIL_SEND_NO_PC)).length() != 0)
		{
			set_param[16] = inMap.getString(JBSbatKKIFM078.MAIL_SEND_NO_PC);
			set_param[18] = MAIL_SEND_STATS;
		}
		
		// 工事進捗通知携帯メールアドレスが設定されている場合
		if(JBSbatStringUtil.Rtrim(inMap.getString(JBSbatKKIFM078.MAIL_SEND_NO_KEITAI)).length() != 0)
		{
			
			set_param[15] = inMap.getString(JBSbatKKIFM078.MAIL_SEND_NO_KEITAI);
			set_param[17] = MAIL_SEND_STATS;
			
		}
		
		// 登録処理の実行
		executeKK_T_STPPRML_SND_JSK_PKINSERT(set_param);
		
		super.logPrint.printDebugLog("execute_END");
		
		return null;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_KK_T_STPPRML_SND_JSK.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	
	/**
	 * PK(全項目登録)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数で設定項目マップを作ります。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		setParam:設定したい項目の(項目、値)を(key、value)として、setParamマップに入れます。項目キーは以下に説明します。
	 *		 	工程進捗メール送信実績番号				STPPRML_SND_JSK_NO
	 *		 	工事案件番号				KOJIAK_NO
	 *		 	申込明細番号				MSKM_DTL_NO
	 *		 	申込書番号				MSKMSHO_NO
	 *		 	サービス契約番号				SVC_KEI_NO
	 *		 	サービス契約ステータス				SVC_KEI_STAT
	 *		 	審査結果コード				SKEKKA_CD
	 *		 	工程光ルート調査設計コード				STEP_HROUTE_CHOSA_DSGN_CD
	 *		 	工程お客様宅内調査日程調整コード				STEP_CUST_TAKCHO_NTADJ_CD
	 *		 	工程お客様宅内調査コード				STEP_CUST_TAKCHO_CD
	 *		 	工程各種許可申請コード				STEP_VARI_KYOKA_SHINSEI_CD
	 *		 	工程宅内調査承諾書受領コード				STEP_TAKCHO_SDAKS_RCP_CD
	 *		 	工程光ケーブル線路工事コード				STEP_HCABLE_LINE_KOJI_CD
	 *		 	工程お客様宅内工事コード				STEP_CUST_TAKNI_KOJI_CD
	 *		 	工程ご利用開始コード				STEP_USE_STA_CD
	 *		 	メール送信番号（携帯）				MAIL_SEND_NO_KTAI
	 *		 	メール送信番号（ＰＣ）				MAIL_SEND_NO_PC
	 *		 	メール送信ステータス（携帯）				MAIL_SEND_STAT_KTAI
	 *		 	メール送信ステータス（ＰＣ）				MAIL_SEND_STAT_PC
	 *		 	登録年月日時分秒				ADD_DTM
	 *		 	登録オペレータアカウント				ADD_OPEACNT
	 *		 	更新年月日時分秒				UPD_DTM
	 *		 	更新オペレータアカウント				UPD_OPEACNT
	 *		 	削除年月日時分秒				DEL_DTM
	 *		 	削除オペレータアカウント				DEL_OPEACNT
	 *		 	無効フラグ				MK_FLG
	 *		 	登録運用年月日				ADD_UNYO_YMD
	 *		 	登録処理ＩＤ				ADD_TRN_ID
	 *		 	更新運用年月日				UPD_UNYO_YMD
	 *		 	更新処理ＩＤ				UPD_TRN_ID
	 *		 	削除運用年月日				DEL_UNYO_YMD
	 *		 	削除処理ＩＤ				DEL_TRN_ID
	 * </pre>
	 * <p>
	 * @param setParam 設定項目の値。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeKK_T_STPPRML_SND_JSK_PKINSERT(Object[] setParam) throws Exception
	{
		// 設定値のマップを作成します
		JBSbatCommonDBInterface setMap = new JBSbatCommonDBInterface();
		setMap.setValue("STPPRML_SND_JSK_NO", setParam[0]);
		setMap.setValue("KOJIAK_NO", setParam[1]);
		setMap.setValue("MSKM_DTL_NO", setParam[2]);
		setMap.setValue("MSKMSHO_NO", setParam[3]);
		setMap.setValue("SVC_KEI_NO", setParam[4]);
		setMap.setValue("SVC_KEI_STAT", setParam[5]);
		setMap.setValue("SKEKKA_CD", setParam[6]);
		setMap.setValue("STEP_HROUTE_CHOSA_DSGN_CD", setParam[7]);
		setMap.setValue("STEP_CUST_TAKCHO_NTADJ_CD", setParam[8]);
		setMap.setValue("STEP_CUST_TAKCHO_CD", setParam[9]);
		setMap.setValue("STEP_VARI_KYOKA_SHINSEI_CD", setParam[10]);
		setMap.setValue("STEP_TAKCHO_SDAKS_RCP_CD", setParam[11]);
		setMap.setValue("STEP_HCABLE_LINE_KOJI_CD", setParam[12]);
		setMap.setValue("STEP_CUST_TAKNI_KOJI_CD", setParam[13]);
		setMap.setValue("STEP_USE_STA_CD", setParam[14]);
		setMap.setValue("MAIL_SEND_NO_KTAI", setParam[15]);
		setMap.setValue("MAIL_SEND_NO_PC", setParam[16]);
		setMap.setValue("MAIL_SEND_STAT_KTAI", setParam[17]);
		setMap.setValue("MAIL_SEND_STAT_PC", setParam[18]);
		setMap.setValue("ADD_DTM", setParam[19]);
		setMap.setValue("ADD_OPEACNT", setParam[20]);
		setMap.setValue("UPD_DTM", setParam[21]);
		setMap.setValue("UPD_OPEACNT", setParam[22]);
		setMap.setValue("DEL_DTM", setParam[23]);
		setMap.setValue("DEL_OPEACNT", setParam[24]);
		setMap.setValue("MK_FLG", setParam[25]);
		setMap.setValue("ADD_UNYO_YMD", setParam[26]);
		setMap.setValue("ADD_TRN_ID", setParam[27]);
		setMap.setValue("UPD_UNYO_YMD", setParam[28]);
		setMap.setValue("UPD_TRN_ID", setParam[29]);
		setMap.setValue("DEL_UNYO_YMD", setParam[30]);
		setMap.setValue("DEL_TRN_ID", setParam[31]);
	
		// DBアクセスを実行します
		db_KK_T_STPPRML_SND_JSK.insertByPrimaryKeys(setMap);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}
