/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbECH0191B010TPDA
*	ソースファイル名：JSYejbECH0191B010TPDA.java
*	作成者			：EKek0012
*	日付			：2011年08月18日
*＜機能概要＞
*	SQLFacility
*	テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*
********************************************************************************/

package eo.ejb.cbs.sqlf;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANSQLFacility;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.ejb.common.JSYejbConnection;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateDBAccessHandler;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import eo.ejb.cbs.cbsmsg.ECH0191B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List;
import eo.ejb.cbm.entity.CH0191ETMsg;

/**
*
*  テンプレートDBアクセス部品　ECH0191B010_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbECH0651B010TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbECH0651B010TPDA()	{
	}
	
	/**
	*   ECH0191B010_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
//		// コネクション
//		Connection con1 = null;
//		
//		// プリペアステートメント
//		PreparedStatement pstmt = null;
//		
//		// リザルトセット
//		ResultSet rsltQuery = null;
//		
//		// パラメータインデックス
//		int i = 1;
//
//		/******************** 
//		 * SQL文の作成
//		 ********************/
//
//		try{
//			
//			//コネクション取得
//			con1 = JSYejbConnection.getConnection(CH0191ETMsg.getTableName());
//			
//			
//			// SQL文_基本部1
//			StringBuffer sql_Buff = new StringBuffer();
//			sql_Buff.append("  SELECT CH0651.xxx_KNK_PRC_KMK_CD ")
//					.append(" ,(SELECT CH0391.PRC_KMK_NM ")
//					.append("   FROM   CH_M_PRC_KMK_OPUT_NM CH0391 ")
//					.append("   WHERE  CH0391.PRC_KMK_NM_SBT_CD='1' ")
//					.append("   AND    CH0391.PCRS_CD='   ' ")
//					.append("   AND    CH0391.PRC_SVC_CD='            ' ")
//					.append("   AND    CH0391.PRC_KMK_CD = CH0651.xxx_KNK_PRC_KMK_CD ")
//					.append("   AND    TO_CHAR(SYSDATE,'yyyymmdd') BETWEEN CH0391.PRC_KMK_OPUT_NM_TSTAYMD AND CH0391.PRC_KMK_OPUT_NM_TENDYMD ")
//					.append("   AND    CH0391.MK_FLG = '0' ")
//					.append("  ) AS KNK_PRC_KMK_NM ")
//					.append(" FROM CH_T_KNK_MOVE CH0651 ")
//					.append(" WHERE CH0651.xxx_KNK_PRC_KMK_CD = ? ")
//					.append("  AND CH0651.金庫移動可否識別コード <> '0' ")
//					.append(" (SELECT MAX(CH0651_GENE.GENE_ADD_DTM) AS CH0651_MAX  ")
//					.append("  FROM CH_T_KNK CH0651_GENE  ")
//					.append("  WHERE CH0651_GENE.xxx_KNK_PRC_KMK_CD = CH0651.xxx_KNK_PRC_KMK_CD ")
//					.append("  AND CH0651_GENE.xxx_KNK_PRC_KMK_CD = CH0651.xxx_KNK_PRC_KMK_CD ")
//					.append("  AND CH0651_GENE.MK_FLG='0' ")
//					.append(" ) ")
//					.append(" AND CH0651.MK_FLG = '0' ")
//					.append("  ORDER BY xxx_KNK_PRC_KMK_CD ");
//
//			//prepareStatementにSQL文をセット
//			pstmt = con1.prepareStatement(sql_Buff.toString());
//			
//			//ログ出力(SQL文の出力)
//			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);
//			// 手修正箇所S
//			// パラメータの設定(ＫＥＹ＿移動元金庫料金項目コードを指定)
//			CAANJDBCUtil.setParam(pstmt, i++, inMsg.getObject(ECH0651B010CBSMsg.KEY_IDOMOTO_KNK_PRC_KMK_CD));
//			
//			// ResultSetの取得
//			rsltQuery = pstmt.executeQuery();
//			
//			// ECH0651B010CBSMsgの明細にセットする項目
//			String[] msgKeyList1 = {
//					  ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD
//					, ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM
//			};
//			
//			// 明細に処理結果(ResultSet)をマッピング
//			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List",0);
//			// inMsg(CBSMsg)に明細をセット
//			inMsg.set("ECH0651B010CBSMsg1List", outMsg1);
//			
//		} catch(SQLException e) {
//			inMsg.set(ECH0191B010CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
//			throw new CAANRuntimeException(e);
//		} finally {
//			// 資源の解放
//			try{
//				if(rsltQuery != null){
//					rsltQuery.close();
//				}
//				if(pstmt != null){
//					pstmt.close();
//				}
//				if(con1 != null){
//					closeConnection(con1);
//				}
//			}catch(SQLException e){
//				inMsg.set(ECH0191B010CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
//				throw new CAANRuntimeException(e);
//			}
//		}
		
		ArrayList<CAANMsg> alMsg = new ArrayList<CAANMsg>();
		
		CAANMsg outMsg1 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg1.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000001");
		outMsg1.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "仮受金");
		alMsg.add(outMsg1);
		
		CAANMsg outMsg2 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg2.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000002");
		outMsg2.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "預り金");
		alMsg.add(outMsg2);
		
		CAANMsg outMsg3 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg3.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000003");
		outMsg3.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "前受金");
		alMsg.add(outMsg3);
		
		CAANMsg outMsg4 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg4.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000004");
		outMsg4.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "不明金");
		alMsg.add(outMsg4);
		
		CAANMsg outMsg5 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg5.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000005");
		outMsg5.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（前受金充当）");
		alMsg.add(outMsg5);
		
		CAANMsg outMsg6 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg6.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000006");
		outMsg6.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（預り金充当）");
		alMsg.add(outMsg6);
		
		CAANMsg outMsg7 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg7.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000007");
		outMsg7.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（返戻金）");
		alMsg.add(outMsg7);
		
		CAANMsg outMsg8 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg8.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000008");
		outMsg8.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（貸倒後入金）");
		alMsg.add(outMsg8);
		
		CAANMsg outMsg9 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg9.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000009");
		outMsg9.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（申立費用受付）");
		alMsg.add(outMsg9);
		
		CAANMsg outMsg10 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg10.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000010");
		outMsg10.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（遅延損害金）");
		alMsg.add(outMsg10);
		
		CAANMsg outMsg11 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg11.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000011");
		outMsg11.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（手作成請求書分）");
		alMsg.add(outMsg1);
		
		CAANMsg outMsg12 = new CAANMsg("eo.ejb.cbs.cbsmsg.ECH0651B010CBSMsg1List");
		outMsg12.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_CD, "10000000012");
		outMsg12.set(ECH0651B010CBSMsg1List.KNK_PRC_KMK_NM, "処理済金（雑収入）");
		alMsg.add(outMsg12);
		
		// inMsg(CBSMsg)に明細をセット
		inMsg.set("ECH0651B010CBSMsg1List", (CAANMsg[])alMsg.toArray(new CAANMsg[0]));
	}
}
