/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCNKnSbtSvcDayKshSuSmr
*	ソースファイル名	：JBSbatCNKnSbtSvcDayKshSuSmr.java
*	作成者				：富士通　
*	作成日				：2011年09月29日
*＜機能概要＞
*　会員種別サービス日別購入者数サマリー処理部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/09/29   富士通		新規作成
*	v4.00.00	2013/02/06	FJ)小林		【TAI-2012-0000142】処理日付情報データ不在メッセージを見直し
*	v5.00.00	2013/03/26	FJ)泉		【コンテンツ集計機能品質強化試験】集計処理計算方法を見直し
*	v5.00.00	2013/04/10	FJ)木村		【ソース静的解析による指摘対応】非短絡論理の使用を見直し
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;

import eo.business.common.JBSbatBusinessService;
import eo.business.common.JCNBatCommon;
import eo.common.constant.JCNStrConst;
import eo.common.constant.JPCBatchMessageConstant;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.item.JBSbatCommonDBInterface;
import eo.framework.application.JBSbatBusinessException;
import eo.framework.db.JBSbatSQLAccess;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCNKnSbtSvcDayKshSuSmr extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/** テーブル(処理日付情報)*/
	private static final String D_TBL_NAME_CN_T_TRAN_YMD_INFO = "CN_T_TRAN_YMD_INFO";

	/** テーブル(ワーク売上情報)*/
	private static final String D_TBL_NAME_CN_T_SALES_INFO = "CN_T_SALES_INFO";

	/** テーブル(会員種別日別サマリー)*/
	private static final String D_TBL_NAME_CN_T_MBTYPE_HIBT_SMR = "CN_T_MBTYPE_HIBT_SMR";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_TRAN_YMD_INFO_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_SELECT_003)*/
	private static final String CN_T_SALES_INFO_CN_SELECT_003 = "CN_SELECT_003";

	/** SQL定義キー(CN_INSERT_001)*/
	private static final String CN_T_MBTYPE_HIBT_SMR_CN_INSERT_001 = "CN_INSERT_001";

	/** SQL定義キー(CN_SELECT_003)*/
	private static final String CN_T_MBTYPE_HIBT_SMR_CN_SELECT_003 = "CN_SELECT_003";

	/** SQL定義キー(CN_UPDATE_003)*/
	private static final String CN_T_MBTYPE_HIBT_SMR_CN_UPDATE_003 = "CN_UPDATE_003";

	/** テーブルアクセスクラス(処理日付情報)*/
	private JBSbatSQLAccess db_CN_T_TRAN_YMD_INFO = null;

	/** テーブルアクセスクラス(ワーク売上情報)*/
	private JBSbatSQLAccess db_CN_T_SALES_INFO = null;

	/** テーブルアクセスクラス(会員種別日別サマリー)*/
	private JBSbatSQLAccess db_CN_T_MBTYPE_HIBT_SMR = null;
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/

	/** メッセージキー*/
	private static final String ECNB0080KE = JPCBatchMessageConstant.ECNB0080KE;
	
	/** メッセージキー*/
	private static final String ECNB0410JW = JPCBatchMessageConstant.ECNB0410JW;
	
	/** メッセージキー*/
	private static final String ECNB0220AI = JPCBatchMessageConstant.ECNB0220AI;
	
	/** メッセージキー*/
	private static final String ECNB0070AI = JPCBatchMessageConstant.ECNB0070AI;
	
	/** 機能名(会員種別サービス日別購入者数サマリー) */
	private static final String S_CN_FUNC_NM = "会員種別サービス日別購入者数サマリー";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);

		// DBアクセスクラスを生成します
		db_CN_T_TRAN_YMD_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_TRAN_YMD_INFO);
		db_CN_T_SALES_INFO = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_SALES_INFO);
		db_CN_T_MBTYPE_HIBT_SMR = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_MBTYPE_HIBT_SMR);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		
		// 処理日付情報を取得
		JBSbatCommonDBInterface dbList1 = new JBSbatCommonDBInterface();
		dbList1. setValue(JCNStrConst.S_BAT_TRAN_CD_SMR);		// バッチ集計処理実行日取得キー(6)
		executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(dbList1.getList().toArray());

		// SQL実行結果を取得
		JBSbatCommonDBInterface map = new JBSbatCommonDBInterface(); 
		String strTRAN_TG_YMD = "";
		
		// 処理日付情報とエラーフラグ(true:エラーあり,false:エラーなし)の設定
		boolean tranErrFlg = true;
		for(map = db_CN_T_TRAN_YMD_INFO.selectNext(); 
				null != map; 
				map = db_CN_T_TRAN_YMD_INFO.selectNext())
		{
			strTRAN_TG_YMD = map.getString("TRAN_TG_YMD");
			tranErrFlg = false;
		}
		
		// 処理日付情報エラーフラグ = true:エラーあり の場合は、エラー出力し終了する。
		if(tranErrFlg)
		{
			super.logPrint.printBusinessErrorLog(ECNB0080KE, new String[]
			                                                			{S_CN_FUNC_NM, D_TBL_NAME_CN_T_TRAN_YMD_INFO, "BAT_TRAN_CD=" + JCNStrConst.S_BAT_TRAN_CD_SMR});
			throw new JBSbatBusinessException(ECNB0080KE, new String[]
			                                                         {S_CN_FUNC_NM, D_TBL_NAME_CN_T_TRAN_YMD_INFO, "BAT_TRAN_CD=" + JCNStrConst.S_BAT_TRAN_CD_SMR});

		}
		
		// 変数の宣言と初期値設定
		String strComSISYMD = "";			// 比較用売上情報取得対象年月日
		String strComCSC = "";					// 比較用コンテンツ識別コード
		String strComMSC = "";					// 比較用会員種別
		int intSysidCnt = 0;						// SYSID件数
		int intSysidBuySha = 0;					// SYSID購入者数
		Boolean updinFlg = false;				// 登録更新フラグ
		int mapCnt = 0;							// 日別購入者数レコードのカウント変数
		int updCnt = 0;								// 更新レコードのカウント変数
		int insCnt = 0;								// 登録レコードのカウント変数
		String sysDate = JCNBatCommon.getSysDateTimeStamp();						// システム日付
		ArrayList<String> sysidList = new ArrayList<String>();
		
		// ワーク売上情報より日別購入者数の取得
		JBSbatCommonDBInterface dbList2 = new JBSbatCommonDBInterface();
		dbList2.setValue(strTRAN_TG_YMD);											// バッチ処理日付
		executeCN_T_SALES_INFO_CN_SELECT_003(dbList2.getList().toArray());
		
		// 集計ループ		開始
		// ワーク売上情報に対しSQLを発行し、集計を実行する
		for(map = db_CN_T_SALES_INFO.selectNext(); 
				null != map; 
				map = db_CN_T_SALES_INFO.selectNext())
		{
			// 取得項目変数生成
			String strSalesInfoStkuYmd = map.getString("SALES_INFO_STKU_YMD");		// 売上情報取得対象年月日
			String strMemberSbtCd = map.getString("MEMBER_SBT_CD");						// 会員種別コード
			String strContSkbtCd = map.getString("CONT_SVC_SKBT_CD");		// コンテンツ識別コード
			String strCONT_KEI_TEISE_SEQ = map.getString("CONT_KEI_TEISE_SEQ");	// コンテンツ契約訂正通番
			String strCONT_CHRG_SKBT_CD = map.getString("CONT_CHRG_SKBT_CD");	// コンテンツ課金識別コード
			String strPlminDIV = map.getString("PLMIN_DIV");											// 赤黒区分
			String strSysId = map.getString("SYSID");						// SYSID
			
			// 現在行のSYSIDがリストに含まれていない場合
			// ループが2回目以降の際に処理される
			if (updinFlg && !sysidList.contains(strSysId)) {

				// SYSID購入者数条件  SYSID件数合算が1件以上ならば1、それ以外は0
				if (0 < intSysidCnt)
				{
					intSysidBuySha = 1;
				}
				else
				{
					intSysidBuySha = 0;
				}
				
				// 購入者数を集計
				mapCnt += intSysidBuySha;
				
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
				
				// SYSIDが切り替わっている場合、SYSID件数合算の値をリセットする
				intSysidCnt = 0;
				
			// ループが1回目の場合
			} else if (!updinFlg) {
				
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
			}
			
			// 会員種別コード、コンテンツ識別コードの何れかが変われば集計結果を登録または更新する
			// ループが2回目以降の際に処理される
			if(updinFlg && (!(strComCSC.equals(strContSkbtCd)) ||
					!(strComMSC.equals(strMemberSbtCd))))
			{
				// 購入者数が0件またはSYSID件数が0でない場合
				if (mapCnt == 0 || intSysidCnt != 0)
				{
					// 購入者数を集計
					mapCnt += intSysidBuySha;
				}
				
				JBSbatCommonDBInterface dbList0 = new JBSbatCommonDBInterface();
				dbList0.setValue(strComSISYMD);									// 会員種別日別集計対象年月日
				dbList0.setValue(strComMSC);										// 会員種別コード
				dbList0.setValue(strComCSC);					// コンテンツサービス識別コード(5桁)
				executeCN_T_MBTYPE_HIBT_SMR_CN_SELECT_003(dbList0.getList().toArray());
				map = db_CN_T_MBTYPE_HIBT_SMR.selectNext();
				// 新規データ(レコード件数=0)の場合：会員種別日別サマリーへ登録
				if(0 == Integer.parseInt(map.getString("RECORD_COUNT")))
				{
					insertCN_T_MBTYPE_HIBT_SMR(strComSISYMD, strComMSC, strComCSC, mapCnt, sysDate);
					intSysidCnt = 0;					// SYSID件数の初期化
					mapCnt = 0;						// 週別購入者数レコードの初期化
					insCnt++;							// 登録件数のカウントアップ
				}
				// 既存データ(レコード件数!=0)の場合：会員種別日別サマリーへ更新
				else
				{
					updateCN_T_MBTYPE_HIBT_SMR(mapCnt, sysDate, strComSISYMD, strComMSC, strComCSC);
					intSysidCnt = 0;					// SYSID件数の初期化
					mapCnt = 0;						// 週別購入者数レコードの初期化
					updCnt++;						// 更新件数のカウントアップ
				}
				
				// SYSIDリストをクリアする
				sysidList.clear();
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
			}
			// 比較用変数の設定
			strComSISYMD = strSalesInfoStkuYmd;		// 売上情報取得対象年月日
			strComMSC = strMemberSbtCd;					// 会員種別コード
			strComCSC = strContSkbtCd;						// コンテンツ識別コード(38桁)

			// 課金・取消によるSYSID件数の集計
			if(JCNStrConst.S_CONT_KEI_TEISE_SEQ_0.equals(strCONT_KEI_TEISE_SEQ) && 
					JCNStrConst.S_CONT_CHRG_SKBT_CD_0.equals(strCONT_CHRG_SKBT_CD))
			{
				intSysidCnt++;
			}
			else if(JCNStrConst.S_CONT_KEI_TEISE_SEQ_1.equals(strCONT_KEI_TEISE_SEQ) && 
					JCNStrConst.S_CONT_CHRG_SKBT_CD_0.equals(strCONT_CHRG_SKBT_CD))
			{
				intSysidCnt++;
			}
			else if(JCNStrConst.S_CONT_CHRG_SKBT_CD_3.equals(strCONT_CHRG_SKBT_CD) && 
					JCNStrConst.S_PLMIN_DIV_0.equals(strPlminDIV))
			{
				intSysidCnt--;
			}
			
			// 登録更新フラグを有効にする
			updinFlg = true;
		}		// 集計ループ　終了
		
		if (updinFlg)
		{
			// SYSID購入者数条件  SYSID件数合算が1件以上ならば1、それ以外は0
			if (0 < intSysidCnt)
			{
				intSysidBuySha = 1;
			}
			else
			{
				intSysidBuySha = 0;
			}
			
			// 購入者数を集計
			mapCnt = mapCnt + intSysidBuySha;
			
			JBSbatCommonDBInterface dbList0 = new JBSbatCommonDBInterface();
			dbList0.setValue(strComSISYMD);									// 会員種別日別集計対象年月日
			dbList0.setValue(strComMSC);										// 会員種別コード
			dbList0.setValue(strComCSC);					// コンテンツサービス識別コード(5桁)
			executeCN_T_MBTYPE_HIBT_SMR_CN_SELECT_003(dbList0.getList().toArray());
			map = db_CN_T_MBTYPE_HIBT_SMR.selectNext();
			// 新規データ(レコード件数=0)の場合：会員種別日別サマリーへ登録
			if(0 == Integer.parseInt(map.getString("RECORD_COUNT")))
			{
				insertCN_T_MBTYPE_HIBT_SMR(strComSISYMD, strComMSC, strComCSC, 
						mapCnt, sysDate);
				insCnt++;							// 登録件数のカウントアップ
			}
			// 既存データ(レコード件数!=0)の場合：会員種別日別サマリーへ更新
			else
			{
				updateCN_T_MBTYPE_HIBT_SMR(mapCnt, sysDate, strComSISYMD, 
						strComMSC, strComCSC);
				updCnt++;						// 更新件数のカウントアップ
			}
		}
		// 日別購入者数のレコード数が0(登録件数=0 && 更新件数=0)の場合、警告ログ出力処理
		if((0 == insCnt) && (0 == updCnt))
		{
			super.logPrint.printBusinessErrorLog(ECNB0410JW, new String[]{S_CN_FUNC_NM});
		}
		
		// 会員種別日別サマリー登録件数のログ出力
		super.logPrint.printBusinessErrorLog(ECNB0220AI, 
			new String[]
			{D_TBL_NAME_CN_T_MBTYPE_HIBT_SMR, String.valueOf(insCnt)});	// 日別購入者数：登録
		// 会員種別日別サマリー更新件数のログ出力
		super.logPrint.printBusinessErrorLog(ECNB0070AI, 
			new String[]
			{D_TBL_NAME_CN_T_MBTYPE_HIBT_SMR, String.valueOf(updCnt)});	// 日別購入者数：更新
		
		return null;
		
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		// DBアクセスクラスをクローズします
		db_CN_T_TRAN_YMD_INFO.close();
		db_CN_T_SALES_INFO.close();
		db_CN_T_MBTYPE_HIBT_SMR.close();
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/

	/**
	 * SQLKEY(CN_SELECT_002)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	バッチ処理コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_TRAN_YMD_INFO_CN_SELECT_002(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CN_T_TRAN_YMD_INFO.selectBySqlDefine(paramList, CN_T_TRAN_YMD_INFO_CN_SELECT_002);
	}

	/**
	 * SQLKEY(CN_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	売上情報取得対象年月日
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_SALES_INFO_CN_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());

		// DBアクセスを実行します
		db_CN_T_SALES_INFO.selectBySqlDefine(paramList, CN_T_SALES_INFO_CN_SELECT_003);
	}

	/**
	 * SQLKEY(CN_INSERT_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 executeCN_T_MBTYPE_HIBT_SMR_CN_INSERT_001(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());
		paramList.setValue(param[4].toString());
		paramList.setValue(param[5].toString());
		paramList.setValue(param[6].toString());
		paramList.setValue(param[7].toString());
		paramList.setValue(param[8].toString());
		paramList.setValue(param[9].toString());
		paramList.setValue(param[10].toString());
		paramList.setValue(param[11].toString());

		// DBアクセスを実行します
		db_CN_T_MBTYPE_HIBT_SMR.executeBySqlDefine(paramList, CN_T_MBTYPE_HIBT_SMR_CN_INSERT_001);
	}

	/**
	 * SQLKEY(CN_SELECT_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	会員種別日別集計対象年月日
	 *		 	会員種別コード
	 *		 	コンテンツサービス識別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_MBTYPE_HIBT_SMR_CN_SELECT_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());

		// DBアクセスを実行します
		db_CN_T_MBTYPE_HIBT_SMR.selectBySqlDefine(paramList, CN_T_MBTYPE_HIBT_SMR_CN_SELECT_003);
	}

	/**
	 * SQLKEY(CN_UPDATE_003)でDBアクセスを行います。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数でバイント変数を設定します。<br>
	 *
	 * 2.DBアクセスを実行します。<br>
	 * 
	 * 3.メソッドの呼び出し方です。<br>
	 *		引数:
	 *		param:順にバイント変数の値をparam配列に入れます。バイント変数は以下に説明します。
	 *		 	購入者数
	 *		 	会員種別日別集計対象年月日
	 *		 	会員種別コード
	 *		 	コンテンツサービス識別コード
	 * </pre>
	 * <p>
	 * @param param バイント変数の値配列。
	 * @throws Exception 業務サービス内で発生した例外全般。
	 */
	private void executeCN_T_MBTYPE_HIBT_SMR_CN_UPDATE_003(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());
		paramList.setValue(param[2].toString());
		paramList.setValue(param[3].toString());

		// DBアクセスを実行します
		db_CN_T_MBTYPE_HIBT_SMR.executeBySqlDefine(paramList, CN_T_MBTYPE_HIBT_SMR_CN_UPDATE_003);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 対象データを会員種別日別サマリーへ登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数をリストに格納します。<br>
	 *
	 * 2.executeCN_T_MBTYPE_HIBT_SMR_CN_INSERT_001を実行します。<br>
	 * </pre>
	 * <p>
	 * @param strComSISYMD		 	会員種別日別集計対象年月日
	 * @param strComMSC		 	会員種別コード
	 * @param strComCSC		 	コンテンツ識別コード(38桁)
	 * @param mapCnt		 	購入者数
	 * @param sysDate	 	システム日付
	 * @throws Exception		業務サービス内で発生した例外全般。
	 */
	private void insertCN_T_MBTYPE_HIBT_SMR(String strComSISYMD, String strComMSC, String strComCSC,
			int mapCnt, String sysDate) throws Exception
	{
		// 会員種別日別サマリーへ登録
		JBSbatCommonDBInterface dbList3 = new JBSbatCommonDBInterface();
		dbList3.setValue(strComSISYMD);
		dbList3.setValue(strComMSC);
		dbList3.setValue(strComCSC.substring(0, 5));
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(JCNStrConst.S_ZERO);
		dbList3.setValue(mapCnt);
//		dbList3.setValue(sysDate);
//		dbList3.setValue(commonItem.getBatchUserId());
//		dbList3.setValue(sysDate);
//		dbList3.setValue(commonItem.getBatchUserId());
		dbList3.setValue("");
		dbList3.setValue("");
//		dbList3.setValue(JCNStrConst.S_MK_FLG);
		executeCN_T_MBTYPE_HIBT_SMR_CN_INSERT_001(dbList3.getList().toArray());
	}
	
	/**
	 * 対象データを会員種別日別サマリーへ更新します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数をリストに格納します。<br>
	 *
	 * 2.executeCN_T_MBTYPE_HIBT_SMR_CN_UPDATE_003を実行します。<br>
	 * </pre>
	 * <p>
	 * @param mapCnt				購入者数
	 * @param sysDate				システム日付
	 * @param strComSISYMD		 	会員種別日別集計対象年月日
	 * @param strComMSC		 	会員種別コード
	 * @param strComCSC		 	コンテンツ識別コード(38桁)
	 * @throws Exception			業務サービス内で発生した例外全般。
	 */
	private void updateCN_T_MBTYPE_HIBT_SMR(int mapCnt, String sysDate, String strComSISYMD, 
			String strComMSC, String strComCSC) throws Exception
	{
		// 会員種別日別サマリーへ更新
		JBSbatCommonDBInterface dbList00 = new JBSbatCommonDBInterface();
		dbList00.setValue(mapCnt);
//		dbList00.setValue(sysDate);
//		dbList00.setValue(commonItem.getBatchUserId());
		dbList00.setValue(strComSISYMD);
		dbList00.setValue(strComMSC);
		dbList00.setValue(strComCSC.substring(0, 5));
		executeCN_T_MBTYPE_HIBT_SMR_CN_UPDATE_003(dbList00.getList().toArray());
	}
}
