/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCNSktSvcWeekKshSuSmr
*	ソースファイル名	：JBSbatCNSktSvcWeekKshSuSmr.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 JBSbatCNSktSvcWeekKshSuSmr 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_SOKT_SHBT_SMR = "CN_T_SOKT_SHBT_SMR";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_TRAN_YMD_INFO_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_SELECT_004)*/
	private static final String CN_T_SALES_INFO_CN_SELECT_004 = "CN_SELECT_004";

	/** SQL定義キー(CN_INSERT_001)*/
	private static final String CN_T_SOKT_SHBT_SMR_CN_INSERT_001 = "CN_INSERT_001";

	/** SQL定義キー(CN_SELECT_002)*/
	private static final String CN_T_SOKT_SHBT_SMR_CN_SELECT_002 = "CN_SELECT_002";

	/** SQL定義キー(CN_UPDATE_001)*/
	private static final String CN_T_SOKT_SHBT_SMR_CN_UPDATE_001 = "CN_UPDATE_001";

	/** テーブルアクセスクラス(処理日付情報)*/
	private JBSbatSQLAccess db_CN_T_TRAN_YMD_INFO = null;

	/** テーブルアクセスクラス(ワーク売上情報)*/
	private JBSbatSQLAccess db_CN_T_SALES_INFO = null;

	/** テーブルアクセスクラス(総括週別サマリー)*/
	private JBSbatSQLAccess db_CN_T_SOKT_SHBT_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_SOKT_SHBT_SMR = new JBSbatSQLAccess(commonItem, D_TBL_NAME_CN_T_SOKT_SHBT_SMR);
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	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_StaYMD = "";		// 初期値の設定
		String strTRAN_TG_EndYMD = "";		// 初期値の設定
		
		// 処理日付情報とエラーフラグ(true:エラーあり,false:エラーなし)の設定
		boolean tranErrFlg = true;
		for(map = db_CN_T_TRAN_YMD_INFO.selectNext(); 
				null != map; 
				map = db_CN_T_TRAN_YMD_INFO.selectNext())
		{
			ArrayList<String> resultList1 = new ArrayList();			// 初期化
			resultList1 = JCNBatCommon.getDayOfTheWeek(map.getString("TRAN_TG_YMD"));		// 今週日付取得
			strTRAN_TG_StaYMD = resultList1.get(0);		// バッチ処理日付の前の月曜日の日付
			strTRAN_TG_EndYMD = resultList1.get(1);		// バッチ処理日付の次の日曜日の日付
			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 strComSWSSTAYMD = "";		// 比較用総括週別集計対象週開始年月日
		String strComSWSENDYMD = "";		// 比較用総括週別集計対象週終了年月日
		String strComCSC = "";						// 比較用コンテンツ識別コード
		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_StaYMD);								// バッチ処理日付の前の月曜日の日付
		dbList2.setValue(strTRAN_TG_EndYMD);								// バッチ処理日付の次の日曜日の日付
		executeCN_T_SALES_INFO_CN_SELECT_004(dbList2.getList().toArray());
		
		// 集計ループ		開始
		// ワーク売上情報に対しSQLを発行し、集計を実行する
		for(map = db_CN_T_SALES_INFO.selectNext(); 
				null != map; 
				map = db_CN_T_SALES_INFO.selectNext())
		{
			// 取得項目変数生成
			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 = mapCnt + intSysidBuySha;
				
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
				
				// SYSIDが切り替わっている場合、SYSID件数合算の値をリセットする
				intSysidCnt = 0;
				
			// ループが1回目の場合
			} else if (!updinFlg) {
				
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
			}
			
			// コンテンツ識別コードが変われば集計結果を登録または更新する
			// ループが2回目以降の際に処理される
			if(updinFlg && !(strComCSC.equals(strContSkbtCd)))
			{
				// 購入者数が0件またはSYSID件数が0でない場合
				if (mapCnt == 0 || intSysidCnt != 0)
				{
					// 購入者数を集計
					mapCnt = mapCnt + intSysidBuySha;
				}
				
				JBSbatCommonDBInterface dbList0 = new JBSbatCommonDBInterface();
				dbList0.setValue(strComSWSSTAYMD);							// 総括週別集計対象週開始年月日
				dbList0.setValue(strComSWSENDYMD);							// 総括週別集計対象週終了年月日
				dbList0.setValue(strComCSC);					// コンテンツサービス識別コード(5桁)
				executeCN_T_SOKT_SHBT_SMR_CN_SELECT_002(dbList0.getList().toArray());
				map = db_CN_T_SOKT_SHBT_SMR.selectNext();
				// 新規データ(レコード件数=0)の場合：総括週別サマリーへ登録
				if(0 == Integer.parseInt(map.getString("RECORD_COUNT")))
				{
					insertCN_T_SOKT_SHBT_SMR(strComSWSSTAYMD, strComSWSENDYMD, 
							strComCSC, mapCnt, sysDate);
					intSysidCnt = 0;					// SYSID件数の初期化
					mapCnt = 0;						// 週別購入者数レコードの初期化
					insCnt++;							// 登録件数のカウントアップ
				}
				// 既存データ(レコード件数!=0)の場合：総括週別サマリーへ更新
				else
				{
					updateCN_T_SOKT_SHBT_SMR(mapCnt, sysDate, strComSWSSTAYMD,
							strComSWSENDYMD, strComCSC);
					intSysidCnt = 0;					// SYSID件数の初期化
					mapCnt = 0;						// 週別購入者数レコードの初期化
					updCnt++;						// 更新件数のカウントアップ
				}
				
				// SYSIDリストをクリアする
				sysidList.clear();
				// 現在行のSYSIDをリストに追加
				sysidList.add(strSysId);
			}
			// 比較用変数の設定
			strComSWSSTAYMD = strTRAN_TG_StaYMD;		// バッチ処理日付の前の月曜日の日付
			strComSWSENDYMD = strTRAN_TG_EndYMD;		// バッチ処理日付の次の日曜日の日付
			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)
		{
			JBSbatCommonDBInterface dbList0 = new JBSbatCommonDBInterface();
			dbList0.setValue(strComSWSSTAYMD);							// 総括週別集計対象週開始年月日
			dbList0.setValue(strComSWSENDYMD);							// 総括週別集計対象週終了年月日
			dbList0.setValue(strComCSC);					// コンテンツサービス識別コード(5桁)
			executeCN_T_SOKT_SHBT_SMR_CN_SELECT_002(dbList0.getList().toArray());
			map = db_CN_T_SOKT_SHBT_SMR.selectNext();
			// 新規データ(レコード件数=0)の場合：総括週別サマリーへ登録
			if(0 == Integer.parseInt(map.getString("RECORD_COUNT")))
			{
				insertCN_T_SOKT_SHBT_SMR(strComSWSSTAYMD, strComSWSENDYMD, 
						strComCSC, mapCnt, sysDate);
				insCnt++;							// 登録件数のカウントアップ
			}
			// 既存データ(レコード件数!=0)の場合：総括週別サマリーへ更新
			else
			{
				updateCN_T_SOKT_SHBT_SMR(mapCnt, sysDate, strComSWSSTAYMD, 
						strComSWSENDYMD, 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_SOKT_SHBT_SMR, String.valueOf(insCnt)});			// 週別購入者数：登録
		// 総括週別サマリー更新件数のログ出力
		super.logPrint.printBusinessErrorLog(ECNB0070AI,
			new String[]
			{D_TBL_NAME_CN_T_SOKT_SHBT_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_SOKT_SHBT_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_004)で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_004(Object[] param) throws Exception
	{
		// バイント変数のリストを生成します
		JBSbatCommonDBInterface paramList = new JBSbatCommonDBInterface();
		paramList.setValue(param[0].toString());
		paramList.setValue(param[1].toString());

		// DBアクセスを実行します
		db_CN_T_SALES_INFO.selectBySqlDefine(paramList, CN_T_SALES_INFO_CN_SELECT_004);
	}

	/**
	 * 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_SOKT_SHBT_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_SOKT_SHBT_SMR.executeBySqlDefine(paramList, CN_T_SOKT_SHBT_SMR_CN_INSERT_001);
	}

	/**
	 * 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_SOKT_SHBT_SMR_CN_SELECT_002(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_SOKT_SHBT_SMR.selectBySqlDefine(paramList, CN_T_SOKT_SHBT_SMR_CN_SELECT_002);
	}

	/**
	 * SQLKEY(CN_UPDATE_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_SOKT_SHBT_SMR_CN_UPDATE_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());

		// DBアクセスを実行します
		db_CN_T_SOKT_SHBT_SMR.executeBySqlDefine(paramList, CN_T_SOKT_SHBT_SMR_CN_UPDATE_001);
	}
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * 対象データを総括週別サマリーへ登録します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数をリストに格納します。<br>
	 *
	 * 2.executeCN_T_SOKT_HIBT_SMR_CN_INSERT_001を実行します。<br>
	 * </pre>
	 * <p>
	 * @param strComSWSSTAYMD			総括週別集計対象週開始年月日
	 * @param strComSWSENDYMD		総括週別集計対象週終了年月日
	 * @param strComCSC						コンテンツ識別コード(38桁)
	 * @param mapCnt							購入者数
	 * @param sysDate							システム日付
	 * @throws Exception		業務サービス内で発生した例外全般。
	 */
	private void insertCN_T_SOKT_SHBT_SMR(String strComSWSSTAYMD, String strComSWSENDYMD,
			String strComCSC, int mapCnt, String sysDate) throws Exception
	{
		// 総括週別サマリーへ登録
		JBSbatCommonDBInterface dbList3 = new JBSbatCommonDBInterface();
		dbList3.setValue(strComSWSSTAYMD);
		dbList3.setValue(strComSWSENDYMD);
		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_SOKT_SHBT_SMR_CN_INSERT_001(dbList3.getList().toArray());
	}
	
	/**
	 * 対象データを総括週別サマリーへ更新します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.引数をリストに格納します。<br>
	 *
	 * 2.executeCN_T_SOKT_SHBT_SMR_CN_UPDATE_003を実行します。<br>
	 * </pre>
	 * <p>
	 * @param mapCnt				購入者数
	 * @param sysDate				システム日付
	 * @param strComSWSSTAYMD		 	総括週別集計対象開始年月日
	 * @param strComSWSENDYMD		 	総括週別集計対象終了年月日
	 * @param strComCSC		 	コンテンツ識別コード(38桁)
	 * @throws Exception			業務サービス内で発生した例外全般。
	 */
	private void updateCN_T_SOKT_SHBT_SMR(int mapCnt, String sysDate, String strComSWSSTAYMD,
			String strComSWSENDYMD, String strComCSC) throws Exception
	{
		// 総括週別サマリーへ更新
		JBSbatCommonDBInterface dbList00 = new JBSbatCommonDBInterface();
		dbList00.setValue(mapCnt);
//		dbList00.setValue(sysDate);
//		dbList00.setValue(commonItem.getBatchUserId());
		dbList00.setValue(strComSWSSTAYMD);
		dbList00.setValue(strComSWSENDYMD);
		dbList00.setValue(strComCSC.substring(0, 5));
		executeCN_T_SOKT_SHBT_SMR_CN_UPDATE_001(dbList00.getList().toArray());
	}
}

