/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbECH0051B030TPDA
*	ソースファイル名：JSYejbECH0051B030TPDA.java
*	作成者			：EK909278
*	日付			：2013年06月21日
*＜機能概要＞
*	SQLFacility
*	テンプレートDBアクセス部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	ｖ5.00.00   2013/07/03  FJ) 林	   【LT-2013-0000205】 機能コード2、3の場合、債権ステータス抽出条件追加
*	ｖ5.00.01   2013/08/12  FJ) 垣内   【IT1-2013-0001583】 請求種別コードを検索条件に追加
*	ｖ5.00.02   2013/10/14  FJ) 垣内   【OM-2013-00003298】債権が発生していない場合でも再発行できるよう修正
*	ｖ6.00.00   2013/11/28  FJ)小野    【OM-2013-0003200】SQL高負荷のため性能改善(未使用項目を削除)。
*
********************************************************************************/

package eo.ejb.cbs.sqlf;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.fujitsu.futurity.model.base.CAANJDBCUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.base.CAANRuntimeException;
import com.fujitsu.futurity.model.base.CAANSQLFacility;
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.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TemplateDBAccessHandler;

import eo.common.constant.JACStrConst;
import eo.common.constant.JPCModelConstant;
import eo.ejb.cbm.entity.CH0051ETMsg;
import eo.ejb.cbm.entity.ZM0321ETMsg;
import eo.ejb.cbm.entity.ZM0321LE;
import eo.ejb.cbs.cbsmsg.ECH0051B030CBSMsg;
import eo.ejb.cbs.cbsmsg.ECH0051B030CBSMsg1List;
import eo.ejb.common.JPCModelCommon;

/**
*
*  テンプレートDBアクセス部品　ECH0051B030_SQLF<br>
*  入力された項目からSQL文を動的に組み立て、<br>
*  検索結果をCBSMsgにセットします。<br>
*/
public class JSYejbECH0051B030TPDA extends CAANSQLFacility implements TemplateDBAccessHandler{
	
	/**
	 * コンストラクタ
	 */
	public JSYejbECH0051B030TPDA()	{
	}
	
	/**
	*   ECH0051B030_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return void
	*/
	public void invoke(CAANMsg inMsg,AgentDispatchContext inContext){
		
		// コネクション
		Connection con1 = null;
		
		// プリペアステートメント
		PreparedStatement pstmt = null;
		
		// リザルトセット
		ResultSet rsltQuery = null;

		// パラメータ設定リスト
		List<Object> replaceListCnt = new ArrayList<Object>();

		/******************** 
		 * SQL文の作成
		 ********************/

		try{

			// 業務機能識別コード取得
			String workParam[] = getWorkParam();

			String funcCode = inMsg.getString(ECH0051B030CBSMsg.FUNC_CODE);

			// 運用日付
			String opeDate = (String)JPCModelCommon.getOpeDate(inMsg, inContext, null);

			//コネクション取得
			con1 = JSYejbConnection.getConnection(CH0051ETMsg.getTableName());

			// SQL文_基本部1
			StringBuffer sql_Buff = new StringBuffer();
			sql_Buff.append("  SELECT CH0051.SEIKY_NO  ")
					.append("  ,CH0051.SEIKY_YM  ")
					.append("  ,CH0051.SEIKY_SBT_CD  ")
					.append("  ,CH0051.SEIKY_WAY_CD  ")
					.append("  ,(SELECT ZM0171.CD_DIV_NM  ")
					.append("    FROM   ZM_M_CD_NM_KANRI ZM0171  ")
					.append("    WHERE  ZM0171.CD_SBT_CD = 'CD00166'  ")
					.append("    AND    ZM0171.CD_DIV = CH0051.SEIKY_WAY_CD  ")
					.append("    AND    ? BETWEEN ZM0171.CD_TSTAYMD AND ZM0171.CD_TENDYMD  ")
					.append("    AND    ZM0171.MK_FLG = '0'  ")
					.append("  ) AS SEIKY_WAY_CD_NM  ")
					.append("  ,CH0051.SEIKY_STAT  ")
					.append(" 	,( ")
					.append(" 		SELECT ")
					.append(" 			AMNT ")
					.append(" 		FROM ")
					.append(" 			CH_T_SEIKY_UCWK CH0101_1 ")
					.append(" 			INNER JOIN ")
					.append(" 			( ")
					.append(" 				SELECT ")
					.append(" 					CH0401.PRC_GRP_CD, ")
					.append(" 					CH0401.PCRS_CD, ")
					.append(" 					CH0401.PRC_SVC_CD, ")
					.append(" 					CH0401.PRC_KMK_CD ")
					.append(" 				FROM ")
					.append(" 					CH_M_PRC_KMK_CS_CHGE CH0401 ")
					.append(" 				WHERE ")
					.append(" 					CH0401.SYS_CD = 'CH' ")
					.append(" 					AND CH0401.WORK_KINO_SKBT_CD = ? ")
					.append(" 					AND CH0401.CHSHT_CHG_CD = ? ")
					.append(" 					AND ? BETWEEN CH0401.PRC_KMK_CS_CHGE_TSTAYMD AND CH0401.PRC_KMK_CS_CHGE_TENDYMD ")
					.append(" 					AND CH0401.MK_FLG = '0' ")
					.append(" 			) CH0401 ")
					.append(" 			ON  CH0401.PRC_GRP_CD = CH0101_1.PRC_GRP_CD ")
					.append(" 			AND CH0401.PCRS_CD = CH0101_1.PCRS_CD ")
					.append(" 			AND CH0401.PRC_SVC_CD = CH0101_1.PRC_SVC_CD ")
					.append(" 			AND CH0401.PRC_KMK_CD = CH0101_1.PRC_KMK_CD ")
					.append(" 		WHERE ")
					.append(" 			CH0101_1.SEIKY_YM = CH0051.SEIKY_YM ")
					.append(" 			AND CH0101_1.SEIKY_NO = CH0051.SEIKY_NO ")
					.append(" 			AND CH0101_1.MK_FLG = '0' ")
					.append(" 			AND ROWNUM <= 1 ")
					.append(" 	) SEIKY_AMNT ")
					.append("  ,CH0051.SEIKY_FIX_YMD  ")
					.append("  ,CH0051.SEIKYUS_HAKKO_YMD AS SEIKY_HAKKO_YMD  ")
					.append(" 	,( ")
					.append(" 		SELECT ")
					.append(" 			COUNT(1) ")
					.append(" 		FROM ")
					.append(" 			CH_T_SEIKY_UCWK CH0101_3 ")
					.append(" 			INNER JOIN ")
					.append(" 			( ")
					.append(" 				SELECT ")
					.append(" 					CH0401.PRC_GRP_CD, ")
					.append(" 					CH0401.PCRS_CD, ")
					.append(" 					CH0401.PRC_SVC_CD, ")
					.append(" 					CH0401.PRC_KMK_CD ")
					.append(" 				FROM ")
					.append(" 					CH_M_PRC_KMK_CS_CHGE CH0401 ")
					.append(" 				WHERE ")
					.append(" 					CH0401.SYS_CD = 'CH' ")
					.append(" 					AND CH0401.WORK_KINO_SKBT_CD = ? ")
					.append(" 					AND CH0401.CHSHT_CHG_CD = ? ")
					.append(" 					AND ? BETWEEN CH0401.PRC_KMK_CS_CHGE_TSTAYMD AND CH0401.PRC_KMK_CS_CHGE_TENDYMD ")
					.append(" 					AND CH0401.MK_FLG = '0' ")
					.append(" 			) CH0401 ")
					.append(" 			ON  CH0401.PRC_GRP_CD = CH0101_3.PRC_GRP_CD ")
					.append(" 			AND CH0401.PCRS_CD = CH0101_3.PCRS_CD ")
					.append(" 			AND CH0401.PRC_SVC_CD = CH0101_3.PRC_SVC_CD ")
					.append(" 			AND CH0401.PRC_KMK_CD = CH0101_3.PRC_KMK_CD ")
					.append(" 		WHERE ")
					.append(" 			CH0101_3.SEIKY_YM = CH0051.SEIKY_YM ")
					.append(" 			AND CH0101_3.SEIKY_NO = CH0051.SEIKY_NO ")
					.append(" 			AND CH0101_3.MK_FLG = '0' ")
					.append(" 			AND ROWNUM <= 1 ")
					.append(" 	) GSAN_FLG ")
					.append(" 	,( ")
					.append(" 		SELECT ")
					.append(" 			SUM(AMNT) ")
					.append(" 		FROM ")
					.append(" 			CH_T_SAIKEN_UCWK CH0021 ")
					.append(" 			INNER JOIN ")
					.append(" 			( ")
					.append(" 				SELECT ")
					.append(" 					CH0401.PRC_GRP_CD, ")
					.append(" 					CH0401.PCRS_CD, ")
					.append(" 					CH0401.PRC_SVC_CD, ")
					.append(" 					CH0401.PRC_KMK_CD ")
					.append(" 				FROM ")
					.append(" 					CH_M_PRC_KMK_CS_CHGE CH0401 ")
					.append(" 				WHERE ")
					.append(" 					CH0401.SYS_CD = 'CH' ")
					.append(" 					AND CH0401.WORK_KINO_SKBT_CD = ? ")
					.append(" 					AND CH0401.CHSHT_CHG_CD = ? ")
					.append(" 					AND ? BETWEEN CH0401.PRC_KMK_CS_CHGE_TSTAYMD AND CH0401.PRC_KMK_CS_CHGE_TENDYMD ")
					.append(" 					AND CH0401.MK_FLG = '0' ")
					.append(" 			) CH0401 ")
					.append(" 			ON  CH0401.PRC_GRP_CD = CH0021.PRC_GRP_CD ")
					.append(" 			AND CH0401.PCRS_CD = CH0021.PCRS_CD ")
					.append(" 			AND CH0401.PRC_SVC_CD = CH0021.PRC_SVC_CD ")
					.append(" 			AND CH0401.PRC_KMK_CD = CH0021.PRC_KMK_CD ")
					.append(" 			INNER JOIN ")
					.append(" 			( ")
					.append(" 				SELECT ")
					.append(" 					CH0041.SEIKY_NO, ")
					.append(" 					CH0011.SAIKEN_NO, ")
					.append(" 					CH0011.SAIKEN_YM ")
					.append(" 				FROM ")
					.append(" 					CH_T_SAIKEN CH0011 ")
					.append(" 					INNER JOIN CH_T_SEIKY_SKN_KNRN CH0041 ")
					.append(" 					ON CH0011.SAIKEN_NO = CH0041.SAIKEN_NO ")
					.append(" 				WHERE ");

					if (JPCModelConstant.FUNC_CD_1.equals(funcCode))
					{
						sql_Buff.append(" 			CH0011.SAIKEN_STAT IN ('020', '060') ")
								.append(" 			AND ");
					}
					else if (JPCModelConstant.FUNC_CD_2.equals(funcCode) || JPCModelConstant.FUNC_CD_3.equals(funcCode))
					{
						sql_Buff.append(" 			CH0011.SAIKEN_STAT IN ('020', '030', '040', '050', '060') ")
								.append(" 			AND ");
					}
					else if (JPCModelConstant.FUNC_CD_4.equals(funcCode))
					{
						sql_Buff.append(" 			CH0011.SAIKEN_STAT = '050' ")
								.append(" 			AND ");
					}
			
			sql_Buff.append(" 					CH0011.MK_FLG = '0' ")
					.append(" 					AND CH0041.MK_FLG = '0' ")
					.append(" 			) CH0011_1 ")
					.append(" 			ON CH0011_1.SAIKEN_YM = CH0021.SAIKEN_FIX_YM ")
					.append(" 			AND CH0011_1.SAIKEN_NO = CH0021.SAIKEN_NO ")
					.append(" 		WHERE ")
					.append(" 			CH0011_1.SEIKY_NO = CH0051.SEIKY_NO ")
					.append(" 			AND CH0011_1.SAIKEN_YM <= CH0051.SEIKY_YM ")
					.append(" 			AND CH0021.MK_FLG = '0' ")
					.append(" 	) MISYU_AMNT ")
					.append(" FROM ")
					.append(" 	CH_T_SEIKY CH0051 ")
					.append(" 	LEFT JOIN ")
					.append(" 	( ")
					.append(" 		SELECT ")
					.append(" 			CH0041.SEIKY_NO ")
					.append(" 			,CH0011.SAIKEN_NO ")
					.append(" 			,CH0011.SAIKEN_STAT ")
					.append(" 			,CH0011.SAIKEN_YM ")
					.append(" 		FROM ")
					.append(" 			CH_T_SAIKEN CH0011 ")
					.append(" 			INNER JOIN CH_T_SEIKY_SKN_KNRN CH0041 ")
					.append(" 			ON CH0011.SAIKEN_NO = CH0041.SAIKEN_NO ")
					.append(" 		WHERE 1=1");

			if (JPCModelConstant.FUNC_CD_1.equals(funcCode))
			{
				sql_Buff.append(" 			AND CH0011.SAIKEN_STAT IN ('020', '060') ");
			}
			else if (JPCModelConstant.FUNC_CD_2.equals(funcCode) || JPCModelConstant.FUNC_CD_3.equals(funcCode))
			{
				sql_Buff.append(" 			AND CH0011.SAIKEN_STAT IN ('020', '030', '040', '050', '060') ");
			}
			else if (JPCModelConstant.FUNC_CD_4.equals(funcCode))
			{
				sql_Buff.append(" 			AND CH0011.SAIKEN_STAT = '050' ");
			}

			sql_Buff.append(" 			AND CH0011.MK_FLG = '0' ")
					.append(" 			AND CH0041.KKSHI_CNT = 0 ")
					.append(" 			AND CH0041.MK_FLG = '0' ")
					.append(" 	) CH0011 ")
					.append(" ON CH0011.SEIKY_NO = CH0051.SEIKY_NO ")
					.append(" AND CH0011.SAIKEN_YM = CH0051.SEIKY_YM ");

			replaceListCnt.add(opeDate);
			replaceListCnt.add(workParam[1]);
			replaceListCnt.add(JACStrConst.CHSHT_CHG_CD_1);
			replaceListCnt.add(opeDate);
			replaceListCnt.add(workParam[2]);
			replaceListCnt.add(JACStrConst.CHSHT_CHG_CD_1);
			replaceListCnt.add(opeDate);
			replaceListCnt.add(workParam[0]);
			replaceListCnt.add(JACStrConst.CHSHT_CHG_CD_1);
			replaceListCnt.add(opeDate);

			// 条件1 追加
			sql_Buff.append(getCondition1(inMsg, opeDate, replaceListCnt));

			// ソート条件 追加
			sql_Buff.append(getSortCondition(inMsg));

			//prepareStatementにSQL文をセット
			pstmt = con1.prepareStatement(sql_Buff.toString());
			
			//ログ出力(SQL文の出力)
			JSYejbLog.outlog(inContext, JSYejbLog.DBACCESS, this.getClass(), sql_Buff);

			// PreparedStatementの指定されたパラメータカラムに 指定された値を設定
			for (int idx = 0; idx < replaceListCnt.size(); idx++ )
			{
				CAANJDBCUtil.setParam(pstmt, idx+1, replaceListCnt.get(idx));
			}

			// ResultSetの取得
			rsltQuery = pstmt.executeQuery();
			
			// ECH0051B030CBSMsgの明細にセットする項目
			String[] msgKeyList1 = {
					  ECH0051B030CBSMsg1List.SEIKY_NO
						, ECH0051B030CBSMsg1List.SEIKY_YM
						, ECH0051B030CBSMsg1List.SEIKY_SBT_CD
						, ECH0051B030CBSMsg1List.SEIKY_WAY_CD
						, ECH0051B030CBSMsg1List.SEIKY_WAY_CD_NM
						, ECH0051B030CBSMsg1List.SEIKY_STAT
						, ECH0051B030CBSMsg1List.SEIKY_AMNT
						, ECH0051B030CBSMsg1List.SEIKY_FIX_YMD
						, ECH0051B030CBSMsg1List.SEIKY_HAKKO_YMD
						, ECH0051B030CBSMsg1List.GSAN_FLG
						, ECH0051B030CBSMsg1List.MISYU_AMNT
			};
			
			// 明細に処理結果(ResultSet)をマッピング
			CAANMsg[] outMsg1 = mapMessageList(rsltQuery,msgKeyList1,"eo.ejb.cbs.cbsmsg.ECH0051B030CBSMsg1List",0);
			// inMsg(CBSMsg)に明細をセット
			inMsg.set("ECH0051B030CBSMsg1List", outMsg1);
			

		} catch(SQLException e) {
			inMsg.set(ECH0051B030CBSMsg.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(ECH0051B030CBSMsg.STATUS, StatusCodes.FIND_DB_ERR);
				throw new CAANRuntimeException(e);
			}
		}
	}

	/**
	*   ECH0051B010_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @param opeDate 運用日付<br>
	*   @param replaceListCnt パラメータ設定リスト<br>
	*   @return StringBuilder
	*/
	private StringBuilder getCondition1(CAANMsg inMsg, String opeDate, List<Object> replaceListCnt){

		String funcCode = inMsg.getString(ECH0051B030CBSMsg.FUNC_CODE);
		String seikyKeiNo = inMsg.getString(ECH0051B030CBSMsg.KEY_SEIKY_KEI_NO);
		String seikyNo = inMsg.getString(ECH0051B030CBSMsg.KEY_SEIKY_NO);
		String seikyYm = inMsg.getString(ECH0051B030CBSMsg.KEY_SEIKY_YM);

		StringBuilder sql_Buff = new StringBuilder();
		sql_Buff.append(" WHERE ")
				.append(" 1=1 ");

		// SQL文_個別部1
		if (JPCModelConstant.FUNC_CD_1.equals(funcCode))
		{
			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_YM))
			{
				// 請求年月が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_YM = ? ");
				replaceListCnt.add(seikyYm);
			}

			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_NO))
			{
				// 請求番号が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_NO = ? ");
				replaceListCnt.add(seikyNo);
			}

			sql_Buff.append("     AND CH0051.SEIKY_KEI_NO = ? ")
					.append("     AND CH0051.MK_FLG = '0' ");

			replaceListCnt.add(seikyKeiNo);
		}

		if (JPCModelConstant.FUNC_CD_2.equals(funcCode))
		{
			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_YM))
			{
				// 請求年月が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_YM = ? ");
				replaceListCnt.add(seikyYm);
			}

			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_NO))
			{
				// 請求番号が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_NO = ? ");
				replaceListCnt.add(seikyNo);
			}

			sql_Buff.append("     AND CH0051.SEIKY_KEI_NO = ? ")
					.append("     AND CH0051.SEIKY_WAY_CD IN ('2', '3') ")
					.append("     AND CH0051.SEIKY_SBT_CD = '0' ")
					.append("     AND CH0051.SEIKY_STAT = '020' ")
					.append("     AND CH0051.MK_FLG = '0' ");

			replaceListCnt.add(seikyKeiNo);
		}

		if (JPCModelConstant.FUNC_CD_3.equals(funcCode))
		{
			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_YM))
			{
				// 請求年月が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_YM = ? ");
				replaceListCnt.add(seikyYm);
			}

			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_NO))
			{
				// 請求番号が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_NO = ? ");
				replaceListCnt.add(seikyNo);
			}

			sql_Buff.append("     AND CH0051.SEIKY_KEI_NO = ? ")
					.append("     AND CH0051.SEIKY_WAY_CD = '4' ")
					.append("     AND CH0051.SEIKY_SBT_CD = '0' ")
					.append("     AND CH0051.SEIKY_STAT = '020' ")
					.append("     AND CH0051.MK_FLG = '0' ");

			replaceListCnt.add(seikyKeiNo);
		}

		if (JPCModelConstant.FUNC_CD_4.equals(funcCode))
		{
			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_YM))
			{
				// 請求年月が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_YM = ? ");
				replaceListCnt.add(seikyYm);
			}

			if (!inMsg.isNull(ECH0051B030CBSMsg.KEY_SEIKY_NO))
			{
				// 請求番号が指定されていたら条件に追加
				sql_Buff.append("     AND CH0051.SEIKY_NO = ? ");
				replaceListCnt.add(seikyNo);
			}

			sql_Buff.append("     AND CH0051.SEIKY_KEI_NO = ? ")
					.append("     AND CH0051.SEIKY_WAY_CD IN ('2', '3') ")
					.append("     AND CH0051.SEIKY_SBT_CD = '0' ")
					.append("     AND CH0051.SEIKY_STAT = '020' ")
					.append("     AND CH0051.KHRI_RSLT_CD = ? ")
					.append("     AND CH0051.MK_FLG = '0' ");

			replaceListCnt.add(seikyKeiNo);
			replaceListCnt.add(JACStrConst.KHRI_RSLT_CD_HRK_NOM);
		}

		return sql_Buff;
	}

	/**
	*   ECH0051B010_SQLF<br>
	*   @param inMsg    入力値の格納されたCBSMsg <br>
	*   @return StringBuilder
	*/
	private StringBuilder getSortCondition(CAANMsg inMsg){

		String funcCode = inMsg.getString(ECH0051B030CBSMsg.FUNC_CODE);

		StringBuilder sql_Buff = new StringBuilder();
		sql_Buff.append(" ORDER BY ");

		if (JPCModelConstant.FUNC_CD_1.equals(funcCode))
		{
			sql_Buff.append("     CH0051.SEIKY_YM DESC, ")
					.append("     CH0051.SEIKY_SBT_CD DESC ");
		}
		else if (JPCModelConstant.FUNC_CD_2.equals(funcCode))
		{
			sql_Buff.append("     CH0051.SEIKY_YM DESC, ")
					.append("     CH0051.SEIKY_SBT_CD DESC ");
		}
		else if (JPCModelConstant.FUNC_CD_3.equals(funcCode))
		{
			sql_Buff.append("     CH0051.SEIKY_YM DESC, ")
					.append("     CH0051.SEIKY_SBT_CD DESC ");
		}
		else if (JPCModelConstant.FUNC_CD_4.equals(funcCode))
		{
			sql_Buff.append("     CH0051.SEIKY_YM DESC, ")
					.append("     CH0051.SEIKY_SBT_CD DESC ");
		}

		return sql_Buff;
	}

	/**
	*   ECH0051B030_SQLF<br>
	*   @return String[]
	*/
	private String[] getWorkParam(){

		String[] workParam = new String[3];

		// 業務パラメータ管理より業務機能識別コード：料金項目コード（未収金額）を取得する
		CAANMsg msgZM0321 = new CAANMsg(ZM0321ETMsg.class.getName());
		msgZM0321.set(ZM0321ETMsg.WORK_PARAM_ID, JACStrConst.WKPARA_CH_WKS_MISYU_KINGAKU);

		ZM0321LE le = new ZM0321LE();
		CAANMsg retZM0321 = le.findByPrimaryKey(msgZM0321);

		workParam[0] = retZM0321.getString(ZM0321ETMsg.WORK_PARAM_SETTE_VALUE);

		retZM0321 = le.findByPrimaryKey(msgZM0321);

		// 業務パラメータ管理より業務機能識別コード：料金項目コード（請求額合計）を取得する
		msgZM0321.set(ZM0321ETMsg.WORK_PARAM_ID, JACStrConst.WKPRA_CH_WKS_SIKY_AMNT);

		retZM0321 = le.findByPrimaryKey(msgZM0321);

		workParam[1] = retZM0321.getString(ZM0321ETMsg.WORK_PARAM_SETTE_VALUE);

		// 業務パラメータ管理より業務機能識別コード：料金項目コード（当月以前ご請求料金）を取得する
		msgZM0321.set(ZM0321ETMsg.WORK_PARAM_ID, JACStrConst.WKPRA_CH_WKS_BF_TG_SEI);

		retZM0321 = le.findByPrimaryKey(msgZM0321);

		workParam[2] = retZM0321.getString(ZM0321ETMsg.WORK_PARAM_SETTE_VALUE);

		return workParam;
	}

}
