/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CNSV0035_CNSV0035OPDBMapper
*	ソースファイル名：CNSV0035_CNSV0035OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年12月01日
*＜機能概要＞
*	BP（会員種別毎集計参照(検索ボタン押下)）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/12/01	FJ		新規作成
*	v8.00.00	2014/03/26	FJ)味岡	OM-2014-0000858:当日分集計を実施しない対応(フラグ制御を行うことで空振りする。)
*
**********************************************************************/
package eo.web.webview.mapping;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.util.JCCToolTextDateFormat;
import eo.common.util.JCCToolTextDecimalFormat;
import eo.common.util.JPCDateUtil;
import eo.web.webview.CNW00901SF.CNW00901SFConst;
import eo.web.webview.CNW01001SF.CNW01001SFConst;
import eo.web.webview.common.JCCWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CNSV0035_CNSV0035OPDBMapper {
	
	// 集計単位
	private static final String SHUK_TANI_DAY = "1";
	private static final String SHUK_TANI_WEK = "2";
	private static final String SHUK_TANI_MON = "3";
	// eoIDサービスコード
	private static final String EOID_SVC_CD = "zzzz";
	private static final String EOID_SVC_CD_TITLE = "zzzzz";
	// 集計マップキー
	private static final String TOTAL_LABEL = "TOTAL";
	
	// スキーマ項目名:集計総数
	private static final String TOTAL_COUNT = "ruikei_member_su";
	// スキーマ項目名：コンテンツサービスコード
	private static final String CONT_SVC_CD = "cont_svc_cd";
	// スキーマ項目名：表示順
	private static final String DSP_JUN = "dsp_jun";
	// スキーマ項目名：累計件数
	private static final String RUIKEI_CNT = "ruikei_cnt";
	// スキーマ項目名：増分件数
	private static final String ZOUBUN_CNT = "zoubun_cnt";
	// スキーマ項目名：新規件数
	private static final String NEW_CNT = "new_cnt";
	// スキーマ項目名：解約件数
	private static final String DSL_CNT = "dsl_cnt";
	// スキーマ項目名：売上件数
	private static final String SALES_CNT = "sales_cnt";
	// スキーマ項目名：売上金額
	private static final String SALES_AMNT = "sales_amnt";
	// スキーマ項目名：購入者数
	private static final String KNSHA_CNT = "knsha_cnt";
	// スキーマ項目名：コンテンツ課金訂正通番
	private static final String CONT_CHRG_TEISE_SEQ = "cont_chrg_teise_seq";
	// スキーマ項目名：SYSID
	private static final String SYSID = "sysid";
	// スキーマ項目名：コンテンツ契約有料無料フラグ
	private static final String CONT_KEI_YRYO_MRYO_FLG = "cont_kei_yryo_mryo_flg";
	// スキーマ項目名：コンテンツ単価
	private static final String CONT_TANKA = "cont_tanka";
	// スキーマ項目名：コンテンツ購入数量
	private static final String CONT_BUY_CNT = "cont_buy_cnt";
	// スキーマ項目名：税率
	private static final String TAX_RT = "tax_rt";
	// スキーマ項目名：課金額
	private static final String CHRG_AMNT = "chrg_amnt";
	// スキーマ項目名：課金状態コード
	private static final String CHRG_STAT_CD = "chrg_stat_cd";
	// スキーマ項目名：売上減額
	private static final String SALES_GEN_AMNT = "sales_gen_amnt";
	// スキーマ項目名：コンテンツ課金訂正区分
	private static final String CONTCHRGTESEI_DIV = "contCHRGTESEI_DIV";
	// スキーマ項目名：赤黒区分
	private static final String PLMIN_DIV = "plmin_div";

	// コンテンツ課金識別コード：通常課金データ
	private static final String KAKIN = "0";
	// コンテンツ課金識別コード：売上減
	private static final String URIAGE_GEN = "1";
	// コンテンツ課金識別コード：補償費
	private static final String HOSYO_HI = "2";
	// コンテンツ課金識別コード：取消
	private static final String TORIKESHI = "3";
	// 赤黒区分：赤伝
	private static final String AKA = "1";
	// 赤黒区分：黒伝
	private static final String KURO = "0";
	// 課金状態コード：課金中
	private static final String KAKIN_CYU = "0";
	// 課金状態コード：課金停止中
	private static final String KAKIN_TEISI_CYU = "1";
	// 課金状態コード：強制課金停止中
	private static final String KYOSEI_KAKIN_TEISI_CYU = "2";
	// 課金状態コード：課金取消済
	private static final String KAKIN_CANSEL = "3";

	private static final String[] yobiStr = {"", "日", "月", "火", "水", "木", "金", "土"};
	/**
	 * コンストラクタ
	 */
	public CNSV0035_CNSV0035OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV003501SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 会員種別集計対象年月日FROM
		String fromYmd = editFromYmd(bean);
		parentMap.put("key_mbtype_sktgd_from", fromYmd);
		// 集計対象年月TO
		String toYmd = editToYmd(bean);
		parentMap.put("key_mbtype_sktgd_to", toYmd);
		// 会員種別
		String memberSbt = editMemberSbt(bean);
		parentMap.put("key_member_sbt_cd", memberSbt);
		// コンテンツサービス識別
		String contSvcCd = editContSvcCd(bean);
		parentMap.put("key_cont_svc_skbt_cd", contSvcCd);
		// 集計単位選択値 → 会員種別サマリー一覧照会マップ.ＫＥＹ＿集計単位
		parentMap.put("key_shuk_tani", bean[0].sendMessageString("集計単位選択値", X31CWebConst.DATABEAN_GET_VALUE));
		// 部品呼び出し → 会員種別サマリー一覧照会マップ.ＫＥＹ＿適用年月日
		parentMap.put("key_tkyo_ymd", JCCWebCommon.getSysDate());

		outputMap.put("CNSV003501SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV003502SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 集計対象の場合は当日日付を設定
		if (checkTargetDate(bean))
		{
			// 部品呼び出し → ワーク売上情報一覧照会マップ.ＫＥＹ＿売上情報取得対象年月日
			parentMap.put("key_sales_info_stku_ymd", JCCWebCommon.getSysDate());
		}
		else
		{
			// 部品呼び出し → ワーク売上情報一覧照会マップ.ＫＥＹ＿売上情報取得対象年月日
			parentMap.put("key_sales_info_stku_ymd", "");
		}

		outputMap.put("CNSV003502SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV003503SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		// 集計対象の場合は当日日付を設定
//		if (checkTargetDate(bean))
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
//		}
//		else
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", "");
//		}
//
//		outputMap.put("CNSV003503SC", parentMap);
//						
//		return outputMap;
//	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV003504SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		// 集計対象の場合は当日日付を設定
//		if (checkTargetDate(bean))
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
//		}
//		else
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", "");
//		}
//
//		outputMap.put("CNSV003504SC", parentMap);
//						
//		return outputMap;
//	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV003505SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		// 集計対象の場合は当日日付を設定
//		if (checkTargetDate(bean))
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
//		}
//		else
//		{
//			// 部品呼び出し → お客様会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", "");
//		}
//
//		outputMap.put("CNSV003505SC", parentMap);
//						
//		return outputMap;
//	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
//	@SuppressWarnings("unchecked")
//	public HashMap setCNSV003506SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
//		
//		if(bean == null){
//			return null;
//		}
//		
//		if(bean.length != 1){
//			return null;
//		}
//
//
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		// 共通情報のマッピング
//		parentMap.put("func_code", func_code);
//
//		if (checkTargetDate(bean))
//		{
//			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
//			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
//			parentMap.put("key_sys_dtm", JCCWebCommon.getSysDateTimeStamp());
//		}
//		else
//		{
//			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
//			parentMap.put("key_sys_ymd", "");
//			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
//			parentMap.put("key_sys_dtm", "");
//		}
//
//		outputMap.put("CNSV003506SC", parentMap);
//						
//		return outputMap;
//	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV003507SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (checkTargetDate(bean))
		{
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
			parentMap.put("key_sys_dtm", JCCWebCommon.getSysDateTimeStamp());
		}
		else
		{
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
			parentMap.put("key_sys_ymd", "");
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
			parentMap.put("key_sys_dtm", "");
		}

		outputMap.put("CNSV003507SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV003508SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		if (checkTargetDate(bean))
		{
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
			parentMap.put("key_sys_ymd", JCCWebCommon.getSysDate());
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
			parentMap.put("key_sys_dtm", JCCWebCommon.getSysDateTimeStamp());
		}
		else
		{
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日
			parentMap.put("key_sys_ymd", "");
			// 部品呼び出し → コンテンツ契約サービス別会員数集計累計マップ.ＫＥＹ＿システム年月日時分秒
			parentMap.put("key_sys_dtm", "");
		}

		outputMap.put("CNSV003508SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCNSV003509SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 会員種別集計対象年月日FROM
		parentMap.put("key_mbtype_sktgd_from", JPCDateUtil.addDay(JCCWebCommon.getSysDate(), -1));
		// 集計対象年月TO
		parentMap.put("key_mbtype_sktgd_to", JPCDateUtil.addDay(JCCWebCommon.getSysDate(), -1));
		// 会員種別
		String memberSbt = editMemberSbt(bean);
		parentMap.put("key_member_sbt_cd", memberSbt);
		// コンテンツサービス識別
		String contSvcCd = editContSvcCd(bean);
		parentMap.put("key_cont_svc_skbt_cd", contSvcCd);
		// 集計単位選択値 → 会員種別サマリー前日分一覧照会マップ.ＫＥＹ＿集計単位
		parentMap.put("key_shuk_tani", bean[0].sendMessageString("集計単位選択値", X31CWebConst.DATABEAN_GET_VALUE));
		if (checkTargetDate(bean))
		{
			// 適用年月日
			parentMap.put("key_tkyo_ymd", JCCWebCommon.getSysDate());
		}
		else
		{
			// 適用年月日
			parentMap.put("key_tkyo_ymd", "");
		}

		outputMap.put("CNSV003509SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV003501SC(X31SDataBeanAccess[] bean, HashMap outputMap){
		
		// 会員種別サマリー一覧照会
		HashMap parentMap01 = null;
		if(outputMap.containsKey("CNSV003501SC")){
			parentMap01 = (HashMap)outputMap.get("CNSV003501SC");
		}
		// 購入者数の算出
		boolean buyFlag = bean[0].sendMessageBoolean(CNW00901SFConst.KNSHA_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		// 集計単位
		String tani = bean[0].sendMessageString(CNW00901SFConst.SHUK_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);

		ArrayList childList = null;

		X31SDataBeanAccessArray listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list = bean[0].getDataBeanArray("会員種別毎集計一覧");
		childList = null;
		if(listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list != null && parentMap01 != null && parentMap01.containsKey("mbtype_smry_list")){
			childList = (ArrayList)parentMap01.get("mbtype_smry_list");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				subbean = listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list.addDataBean();
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
				
				if (SHUK_TANI_MON.equals(tani))
				{
					// 会員種別毎集計一覧.日付ＦＲＯＭ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象開始年月日
					subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint((String)childMap.get("mbtype_sktgw_staymd")));
					// 会員種別毎集計一覧.日付ＴＯ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象終了年月日
					subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint((String)childMap.get("mbtype_sktgw_endymd")));
				}
				else
				{
					// 会員種別毎集計一覧.日付ＦＲＯＭ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象開始年月日
					subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint((String)childMap.get("mbtype_sktgw_staymd")));
					// 会員種別毎集計一覧.日付ＴＯ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象終了年月日
					subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint((String)childMap.get("mbtype_sktgw_endymd")));
				}
				// 日別であれば曜日付与
				int yobi = 0;
				if (SHUK_TANI_DAY.equals(tani))
				{
					yobi = Integer.parseInt(JPCDateUtil.getDayOfWeek((String)childMap.get("mbtype_sktgw_staymd")));
				}
				subbean.sendMessageString("曜日", X31CWebConst.DATABEAN_SET_VALUE, yobiStr[yobi]);
				// 会員種別毎集計一覧.会員種別コード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード
				subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_cd"));
				// 会員種別毎集計一覧.会員種別名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード名
				subbean.sendMessageString("会員種別名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_nm"));
				// 会員種別毎集計一覧.コンテンツサービスコード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス識別コード
				subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_skbt_cd"));
				// 会員種別毎集計一覧.コンテンツサービス名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス名
				subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_nm"));
				// 会員種別毎集計一覧.累計数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.累計件数
				subbean.sendMessageString("累計数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ruikei_cnt"));
				// 会員種別毎集計一覧.増減 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.増分件数
				subbean.sendMessageString("増減", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("zoubun_cnt"));
				// 会員種別毎集計一覧.新規契約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.新規件数
				subbean.sendMessageString("新規契約数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("new_cnt"));
				// 会員種別毎集計一覧.解約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.解約件数
				subbean.sendMessageString("解約数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("dsl_cnt"));
				// 会員種別毎集計一覧.売上件数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上件数
				subbean.sendMessageString("売上件数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sales_cnt"));
				// 会員種別毎集計一覧.売上金額 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上金額
				subbean.sendMessageString("売上金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sales_amnt"));
				if (buyFlag)
				{
					subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knsha_cnt"));
				}
				else
				{
					subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, "");
				}
			}
		}

		// 当日が対象かチェック
		if (checkTargetDate(bean))
		{
			// 当日データの作成
			// ワーク売上情報一覧照会（当日分）
			HashMap parentMap02 = null;
			if (outputMap.containsKey("CNSV003502SC"))
			{
				parentMap02 = (HashMap)outputMap.get("CNSV003502SC");
			}
			// お客様会員数集計（累計）
//			HashMap parentMap03 = null;
//			if (outputMap.containsKey("CNSV003503SC"))
//			{
//				parentMap03 = (HashMap)outputMap.get("CNSV003503SC");
//			}
			// お客様会員数集計（新規）
//			HashMap parentMap04 = null;
//			if (outputMap.containsKey("CNSV003504SC"))
//			{
//				parentMap04 = (HashMap)outputMap.get("CNSV003504SC");
//			}
			// お客様会員数集計（解約）
//			HashMap parentMap05 = null;
//			if (outputMap.containsKey("CNSV003505SC"))
//			{
//				parentMap05 = (HashMap)outputMap.get("CNSV003505SC");
//			}
			// コンテンツ契約サービス別会員数集計（累計）
//			HashMap parentMap06 = null;
//			if (outputMap.containsKey("CNSV003506SC"))
//			{
//				parentMap06 = (HashMap)outputMap.get("CNSV003506SC");
//			}
			// コンテンツ契約サービス別会員数集計（新規）
			HashMap parentMap07 = null;
			if (outputMap.containsKey("CNSV003507SC"))
			{
				parentMap07 = (HashMap)outputMap.get("CNSV003507SC");
			}
			// コンテンツ契約サービス別会員数集計（解約）
			HashMap parentMap08 = null;
			if (outputMap.containsKey("CNSV003508SC"))
			{
				parentMap08 = (HashMap)outputMap.get("CNSV003508SC");
			}
			// 会員種別サマリー一覧照会
			HashMap parentMap09 = null;
			if(outputMap.containsKey("CNSV003509SC")){
				parentMap09 = (HashMap)outputMap.get("CNSV003509SC");
			}

			// 選択されているサービスの取得
			X31SDataBeanAccessArray svcNameArray = bean[0].getDataBeanArray(CNW00901SFConst.CONT_SVC_LIST);
			ArrayList selectSvcCd = new ArrayList();
			HashMap<String, String> svcNmMap = new HashMap<String, String>();
			// 1行目はeoID
			selectSvcCd.add(EOID_SVC_CD);
			svcNmMap.put(EOID_SVC_CD, "ｅｏＩＤ");
			for (int i = 0; i < svcNameArray.getCount(); i++)
			{
				X31SDataBeanAccess subbean = svcNameArray.getDataBean(i);
				if (subbean.sendMessageBoolean(CNW00901SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// サービスコードとサービス名を取得
					selectSvcCd.add(subbean.sendMessageString(CNW00901SFConst.CONT_SVC_CD_01,X31CWebConst.DATABEAN_GET_VALUE));
					svcNmMap.put(subbean.sendMessageString(CNW00901SFConst.CONT_SVC_CD_01,X31CWebConst.DATABEAN_GET_VALUE),
							subbean.sendMessageString(CNW00901SFConst.CONT_SVC_NM_01,X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
			
			// 検索データの取得
			// お客様会員数集計（累計）
//			ArrayList childList01 = setCustData(parentMap03);
			// お客様会員数集計（新規）
//			ArrayList childList02 = setCustData(parentMap04);
			// お客様会員数集計（解約）
//			ArrayList childList03 = setCustData(parentMap05);
			// コンテンツ契約サービス別会員数集計（累計）
//			HashMap<String, Object> childMap04 = setContKeiData(selectSvcCd, parentMap06);
			// コンテンツ契約サービス別会員数集計（新規）
			HashMap<String, Object> childMap05 = setContKeiData(selectSvcCd, parentMap07);
			// コンテンツ契約サービス別会員数集計（解約）
			HashMap<String, Object> childMap06 = setContKeiData(selectSvcCd, parentMap08);
			// ワーク売上情報
			HashMap<String, Object> childMap07 = setWorkData(selectSvcCd, parentMap02, buyFlag);
			
			// 表示項目の編集
			String member_sbt_cd = "";
			String member_sbt_nm = "";
			String cont_svc_skbt_cd = "";
			String cont_svc_nm = "";
			String ruikei_cnt = "";
			String zoubun_cnt = "";
			String new_cnt = "";
			String dsl_cnt = "";
			String sales_cnt = "";
			String sales_amnt = "";
			String knsha_cnt = "";
			
			HashMap workMap = null;
//			String custCnt = "";
//			String svcCnt = "";
			String totalCnt = "";
			// 対象日付
			String fromDate = JCCWebCommon.getSysDate();
			String toDate = "";

			// 当日を含まない場合はサマリーデータより取得
			member_sbt_cd = "";
			member_sbt_nm = "";
			cont_svc_skbt_cd = "";
			cont_svc_nm = "";
			// 累計数＝会員累計数＋サービス累計数
//			workMap = (HashMap)childList01.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
//			workMap = (HashMap)childMap04.get(TOTAL_LABEL);
//			svcCnt = (String)workMap.get(TOTAL_COUNT);
//			ruikei_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
//			ruikei_cnt = svcCnt;
			
			// 会員種別日別サマリーより前日分累計データを取得
			if (null != parentMap09 && parentMap09.containsKey("mbtype_smry_list"))
			{
				ArrayList workList = (ArrayList)parentMap09.get("mbtype_smry_list");
				if (0 != workList.size())
				{
					workMap = (HashMap)workList.get(0);
					if (null != workMap)
					{
						totalCnt = (String)workMap.get("ruikei_cnt");
					}
					else
					{
						totalCnt = "0";
					}
				}
				else
				{
					totalCnt = "0";
				}
			}
			else
			{
				totalCnt = "0";
			}
			
			// 新規件数＝会員数新規＋サービス数新規
//			workMap = (HashMap)childList02.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
			workMap = (HashMap)childMap05.get(TOTAL_LABEL);
			new_cnt = (String)workMap.get(TOTAL_COUNT);
//			new_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
			// 解約数＝会員数解約＋サービス数解約
//			workMap = (HashMap)childList03.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
			workMap = (HashMap)childMap06.get(TOTAL_LABEL);
			dsl_cnt = (String)workMap.get(TOTAL_COUNT);
//			dsl_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
			// 当日累計数＝前日累計数＋当日新規件数−当日解約数
			ruikei_cnt = Integer.toString(Integer.parseInt(totalCnt) + Integer.parseInt(new_cnt) - Integer.parseInt(dsl_cnt));
			// 増減数＝累計数−前日サマリー
			zoubun_cnt = Integer.toString(Integer.parseInt(ruikei_cnt) - Integer.parseInt(totalCnt));
			// 売上件数、売上金額、購入者数
			workMap = (HashMap)childMap07.get(TOTAL_LABEL);
			sales_cnt = (String)workMap.get("sales_cnt");
			sales_amnt = (String)workMap.get("sales_amnt");
			knsha_cnt = (String)workMap.get("knsha_cnt");
			
			X31SDataBeanAccess subbean = listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list.addDataBean();

			if (SHUK_TANI_MON.equals(tani))
			{
				// 会員種別毎集計一覧.日付ＦＲＯＭ ← 当日日付
				subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint(fromDate.substring(0, 6)));
				// 会員種別毎集計一覧.日付ＴＯ ← ブランク
				subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint(toDate));
			}
			else
			{
				// 会員種別毎集計一覧.日付ＦＲＯＭ ← 当日日付
				subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(fromDate));
				// 会員種別毎集計一覧.日付ＴＯ ← ブランク
				subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(toDate));
			}
			// 日別であれば曜日付与
			int yobi = 0;
			if (SHUK_TANI_DAY.equals(tani))
			{
				yobi = Integer.parseInt(JPCDateUtil.getDayOfWeek(JCCWebCommon.getSysDate()));
			}
			subbean.sendMessageString("曜日", X31CWebConst.DATABEAN_SET_VALUE, yobiStr[yobi]);
			// 会員種別毎集計一覧.会員種別コード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード
			subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, member_sbt_cd);
			// 会員種別毎集計一覧.会員種別名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード名
			subbean.sendMessageString("会員種別名", X31CWebConst.DATABEAN_SET_VALUE, member_sbt_nm);
			// 会員種別毎集計一覧.コンテンツサービスコード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス識別コード
			subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_SET_VALUE, cont_svc_skbt_cd);
			// 会員種別毎集計一覧.コンテンツサービス名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス名
			subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, cont_svc_nm);
			// 会員種別毎集計一覧.累計数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.累計件数
			subbean.sendMessageString("累計数", X31CWebConst.DATABEAN_SET_VALUE, ruikei_cnt);
			// 会員種別毎集計一覧.増減 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.増分件数
			subbean.sendMessageString("増減", X31CWebConst.DATABEAN_SET_VALUE, zoubun_cnt);
			// 会員種別毎集計一覧.新規契約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.新規件数
			subbean.sendMessageString("新規契約数", X31CWebConst.DATABEAN_SET_VALUE, new_cnt);
			// 会員種別毎集計一覧.解約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.解約件数
			subbean.sendMessageString("解約数", X31CWebConst.DATABEAN_SET_VALUE, dsl_cnt);
			// 会員種別毎集計一覧.売上件数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上件数
			subbean.sendMessageString("売上件数", X31CWebConst.DATABEAN_SET_VALUE, sales_cnt);
			// 会員種別毎集計一覧.売上金額 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上金額
			subbean.sendMessageString("売上金額", X31CWebConst.DATABEAN_SET_VALUE, sales_amnt);
			// 購入者数
			if (buyFlag)
			{
				subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, knsha_cnt);
			}
			else
			{
				subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, "");
			}
		}

		return bean;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：会員種別毎集計参照
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCNSV003502SC(X31SDataBeanAccess[] bean, HashMap outputMap)
	{
		
		// 会員種別サマリー一覧照会
		HashMap parentMap01 = null;
		if(outputMap.containsKey("CNSV003501SC")){
			parentMap01 = (HashMap)outputMap.get("CNSV003501SC");
		}
		// 購入者数の算出
		boolean buyFlag = bean[0].sendMessageBoolean(CNW00901SFConst.KNSHA_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		// 集計単位
		String tani = bean[0].sendMessageString(CNW00901SFConst.SHUK_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);

		ArrayList childList = null;

		X31SDataBeanAccessArray listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list = bean[0].getDataBeanArray("会員種別毎集計一覧");
		childList = null;
		if(listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list != null && parentMap01 != null && parentMap01.containsKey("mbtype_smry_list")){
			childList = (ArrayList)parentMap01.get("mbtype_smry_list");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				subbean = listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list.addDataBean();
				HashMap childMap = (HashMap)childList.get(i);
				if (subbean == null) {
					continue;
				}
				
				if (SHUK_TANI_MON.equals(tani))
				{
					// 会員種別毎集計一覧.日付ＦＲＯＭ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象開始年月日
					subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint((String)childMap.get("mbtype_sktgw_staymd")));
					// 会員種別毎集計一覧.日付ＴＯ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象終了年月日
					subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint((String)childMap.get("mbtype_sktgw_endymd")));
				}
				else
				{
					// 会員種別毎集計一覧.日付ＦＲＯＭ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象開始年月日
					subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint((String)childMap.get("mbtype_sktgw_staymd")));
					// 会員種別毎集計一覧.日付ＴＯ ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別集計対象終了年月日
					subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint((String)childMap.get("mbtype_sktgw_endymd")));
				}
				// 日別であれば曜日付与
				int yobi = 0;
				if (SHUK_TANI_DAY.equals(tani))
				{
					yobi = Integer.parseInt(JPCDateUtil.getDayOfWeek((String)childMap.get("mbtype_sktgw_staymd")));
				}
				subbean.sendMessageString("曜日", X31CWebConst.DATABEAN_SET_VALUE, yobiStr[yobi]);
				// 会員種別毎集計一覧.会員種別コード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード
				subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_cd"));
				// 会員種別毎集計一覧.会員種別名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード名
				subbean.sendMessageString("会員種別名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("member_sbt_nm"));
				// 会員種別毎集計一覧.コンテンツサービスコード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス識別コード
				subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_skbt_cd"));
				// 会員種別毎集計一覧.コンテンツサービス名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス名
				subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cont_svc_nm"));
				// 会員種別毎集計一覧.累計数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.累計件数
				subbean.sendMessageString("累計数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ruikei_cnt"));
				// 会員種別毎集計一覧.増減 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.増分件数
				subbean.sendMessageString("増減", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("zoubun_cnt"));
				// 会員種別毎集計一覧.新規契約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.新規件数
				subbean.sendMessageString("新規契約数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("new_cnt"));
				// 会員種別毎集計一覧.解約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.解約件数
				subbean.sendMessageString("解約数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("dsl_cnt"));
				// 会員種別毎集計一覧.売上件数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上件数
				subbean.sendMessageString("売上件数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sales_cnt"));
				// 会員種別毎集計一覧.売上金額 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上金額
				subbean.sendMessageString("売上金額", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sales_amnt"));
				if (buyFlag)
				{
					subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knsha_cnt"));
				}
				else
				{
					subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, "");
				}
			}
		}

		// 当日が対象かチェック
		if (checkTargetDate(bean))
		{
			// 当日データの作成
			// ワーク売上情報一覧照会（当日分）
			HashMap parentMap02 = null;
			if (outputMap.containsKey("CNSV003502SC"))
			{
				parentMap02 = (HashMap)outputMap.get("CNSV003502SC");
			}
			// お客様会員数集計（累計）
//			HashMap parentMap03 = null;
//			if (outputMap.containsKey("CNSV003503SC"))
//			{
//				parentMap03 = (HashMap)outputMap.get("CNSV003503SC");
//			}
			// お客様会員数集計（新規）
//			HashMap parentMap04 = null;
//			if (outputMap.containsKey("CNSV003504SC"))
//			{
//				parentMap04 = (HashMap)outputMap.get("CNSV003504SC");
//			}
			// お客様会員数集計（解約）
//			HashMap parentMap05 = null;
//			if (outputMap.containsKey("CNSV003505SC"))
//			{
//				parentMap05 = (HashMap)outputMap.get("CNSV003505SC");
//			}
			// コンテンツ契約サービス別会員数集計（累計）
//			HashMap parentMap06 = null;
//			if (outputMap.containsKey("CNSV003506SC"))
//			{
//				parentMap06 = (HashMap)outputMap.get("CNSV003506SC");
//			}
			// コンテンツ契約サービス別会員数集計（新規）
			HashMap parentMap07 = null;
			if (outputMap.containsKey("CNSV003507SC"))
			{
				parentMap07 = (HashMap)outputMap.get("CNSV003507SC");
			}
			// コンテンツ契約サービス別会員数集計（解約）
			HashMap parentMap08 = null;
			if (outputMap.containsKey("CNSV003508SC"))
			{
				parentMap08 = (HashMap)outputMap.get("CNSV003508SC");
			}
			// 会員種別サマリー一覧照会
			HashMap parentMap09 = null;
			if(outputMap.containsKey("CNSV003509SC")){
				parentMap09 = (HashMap)outputMap.get("CNSV003509SC");
			}

			// 選択されているサービスの取得
			X31SDataBeanAccessArray svcNameArray = bean[0].getDataBeanArray(CNW00901SFConst.CONT_SVC_LIST);
			ArrayList selectSvcCd = new ArrayList();
			HashMap<String, String> svcNmMap = new HashMap<String, String>();
			// 1行目はeoID
			selectSvcCd.add(EOID_SVC_CD);
			svcNmMap.put(EOID_SVC_CD, "ｅｏＩＤ");
			for (int i = 0; i < svcNameArray.getCount(); i++)
			{
				X31SDataBeanAccess subbean = svcNameArray.getDataBean(i);
				if (subbean.sendMessageBoolean(CNW00901SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// サービスコードとサービス名を取得
					selectSvcCd.add(subbean.sendMessageString(CNW00901SFConst.CONT_SVC_CD_01,X31CWebConst.DATABEAN_GET_VALUE));
					svcNmMap.put(subbean.sendMessageString(CNW00901SFConst.CONT_SVC_CD_01,X31CWebConst.DATABEAN_GET_VALUE),
							subbean.sendMessageString(CNW00901SFConst.CONT_SVC_NM_01,X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
			
			// 検索データの取得
			// お客様会員数集計（累計）
//			ArrayList childList01 = setCustData(parentMap03);
			// お客様会員数集計（新規）
//			ArrayList childList02 = setCustData(parentMap04);
			// お客様会員数集計（解約）
//			ArrayList childList03 = setCustData(parentMap05);
			// コンテンツ契約サービス別会員数集計（累計）
//			HashMap<String, Object> childMap04 = setContKeiData(selectSvcCd, parentMap06);
			// コンテンツ契約サービス別会員数集計（新規）
			HashMap<String, Object> childMap05 = setContKeiData(selectSvcCd, parentMap07);
			// コンテンツ契約サービス別会員数集計（解約）
			HashMap<String, Object> childMap06 = setContKeiData(selectSvcCd, parentMap08);
			// ワーク売上情報
			HashMap<String, Object> childMap07 = setWorkData(selectSvcCd, parentMap02, buyFlag);
			
			// 表示項目の編集
			String member_sbt_cd = "";
			String member_sbt_nm = "";
			String cont_svc_skbt_cd = "";
			String cont_svc_nm = "";
			String ruikei_cnt = "";
			String zoubun_cnt = "";
			String new_cnt = "";
			String dsl_cnt = "";
			String sales_cnt = "";
			String sales_amnt = "";
			String knsha_cnt = "";
			
			HashMap workMap = null;
//			String custCnt = "";
//			String svcCnt = "";
			String totalCnt = "";
			// 対象日付
			String fromDate = JCCWebCommon.getSysDate();
			String toDate = "";

			// 当日を含まない場合はサマリーデータより取得
			member_sbt_cd = "";
			member_sbt_nm = "";
			cont_svc_skbt_cd = "";
			cont_svc_nm = "";
			// 累計数＝サービス累計数
			
//			workMap = (HashMap)childList01.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
//			workMap = (HashMap)childMap04.get(TOTAL_LABEL);
//			svcCnt = (String)workMap.get(TOTAL_COUNT);
//			ruikei_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
//			ruikei_cnt = svcCnt;
			// 増減数＝累計数−前日サマリー
			if (null != parentMap09 && parentMap09.containsKey("mbtype_smry_list"))
			{
				ArrayList workList = (ArrayList)parentMap09.get("mbtype_smry_list");
				if (0 != workList.size())
				{
					workMap = (HashMap)workList.get(0);
					if (null != workMap)
					{
						totalCnt = (String)workMap.get("ruikei_cnt");
					}
					else
					{
						totalCnt = "0";
					}
				}
				else
				{
					totalCnt = "0";
				}
			}
			else
			{
				totalCnt = "0";
			}
			// 新規件数＝サービス数新規
//			workMap = (HashMap)childList02.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
			workMap = (HashMap)childMap05.get(TOTAL_LABEL);
			new_cnt = (String)workMap.get(TOTAL_COUNT);
//			new_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
			// 解約数＝サービス数解約
//			workMap = (HashMap)childList03.get(0);
//			custCnt = (String)workMap.get(TOTAL_COUNT);
			workMap = (HashMap)childMap06.get(TOTAL_LABEL);
			dsl_cnt = (String)workMap.get(TOTAL_COUNT);
//			dsl_cnt = Integer.toString(Integer.parseInt(custCnt) + Integer.parseInt(svcCnt));
			// 当日累計数＝前日累計数＋当日新規件数−当日解約数
			ruikei_cnt = Integer.toString(Integer.parseInt(totalCnt) + Integer.parseInt(new_cnt) - Integer.parseInt(dsl_cnt));
			// 増減数＝累計数−前日サマリー
			zoubun_cnt = Integer.toString(Integer.parseInt(ruikei_cnt) - Integer.parseInt(totalCnt));
			// 売上件数、売上金額、購入者数
			workMap = (HashMap)childMap07.get(TOTAL_LABEL);
			sales_cnt = (String)workMap.get("sales_cnt");
			sales_amnt = (String)workMap.get("sales_amnt");
			knsha_cnt = (String)workMap.get("knsha_cnt");
			
			X31SDataBeanAccess subbean = listCNSV003501SC_member_sbt_shuk_list_mbtype_smry_list.addDataBean();

			if (SHUK_TANI_MON.equals(tani))
			{
				// 会員種別毎集計一覧.日付ＦＲＯＭ ← 当日日付
				subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint(fromDate.substring(0, 6)));
				// 会員種別毎集計一覧.日付ＴＯ ← ブランク
				subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM","yyyyMM").formattedPrint(toDate));
			}
			else
			{
				// 会員種別毎集計一覧.日付ＦＲＯＭ ← 当日日付
				subbean.sendMessageString("日付ＦＲＯＭ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(fromDate));
				// 会員種別毎集計一覧.日付ＴＯ ← ブランク
				subbean.sendMessageString("日付ＴＯ", X31CWebConst.DATABEAN_SET_VALUE, new JCCToolTextDateFormat("yyyy/MM/dd","yyyyMMdd").formattedPrint(toDate));
			}
			// 日別であれば曜日付与
			int yobi = 0;
			if (SHUK_TANI_DAY.equals(tani))
			{
				yobi = Integer.parseInt(JPCDateUtil.getDayOfWeek(JCCWebCommon.getSysDate()));
			}
			subbean.sendMessageString("曜日", X31CWebConst.DATABEAN_SET_VALUE, yobiStr[yobi]);
			// 会員種別毎集計一覧.会員種別コード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード
			subbean.sendMessageString("会員種別コード", X31CWebConst.DATABEAN_SET_VALUE, member_sbt_cd);
			// 会員種別毎集計一覧.会員種別名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.会員種別コード名
			subbean.sendMessageString("会員種別名", X31CWebConst.DATABEAN_SET_VALUE, member_sbt_nm);
			// 会員種別毎集計一覧.コンテンツサービスコード ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス識別コード
			subbean.sendMessageString("コンテンツサービスコード", X31CWebConst.DATABEAN_SET_VALUE, cont_svc_skbt_cd);
			// 会員種別毎集計一覧.コンテンツサービス名 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.コンテンツサービス名
			subbean.sendMessageString("コンテンツサービス名", X31CWebConst.DATABEAN_SET_VALUE, cont_svc_nm);
			// 会員種別毎集計一覧.累計数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.累計件数
			subbean.sendMessageString("累計数", X31CWebConst.DATABEAN_SET_VALUE, ruikei_cnt);
			// 会員種別毎集計一覧.増減 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.増分件数
			subbean.sendMessageString("増減", X31CWebConst.DATABEAN_SET_VALUE, zoubun_cnt);
			// 会員種別毎集計一覧.新規契約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.新規件数
			subbean.sendMessageString("新規契約数", X31CWebConst.DATABEAN_SET_VALUE, new_cnt);
			// 会員種別毎集計一覧.解約数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.解約件数
			subbean.sendMessageString("解約数", X31CWebConst.DATABEAN_SET_VALUE, dsl_cnt);
			// 会員種別毎集計一覧.売上件数 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上件数
			subbean.sendMessageString("売上件数", X31CWebConst.DATABEAN_SET_VALUE, sales_cnt);
			// 会員種別毎集計一覧.売上金額 ← 会員種別サマリー一覧照会マップ.会員種別サマリー一覧照会明細.売上金額
			subbean.sendMessageString("売上金額", X31CWebConst.DATABEAN_SET_VALUE, sales_amnt);
			// 購入者数
			if (buyFlag)
			{
				subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, knsha_cnt);
			}
			else
			{
				subbean.sendMessageString("購入者数", X31CWebConst.DATABEAN_SET_VALUE, "");
			}
		}

		return bean;
	}

	/**
	 * 入力項目の「対象期間（FROM）年」「対象期間（FROM）月」「対象期間（FROM）日」から年月日を編集する
	 * @param bean
	 * @return
	 */
	private static String editFromYmd(X31SDataBeanAccess[] bean)
	{
		String ymd = "";
		String tani = bean[0].sendMessageString(CNW00901SFConst.SHUK_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		
		ymd = bean[0].sendMessageString(CNW00901SFConst.DATE_FROM_YEAR, X31CWebConst.DATABEAN_GET_VALUE)
		  + bean[0].sendMessageString(CNW00901SFConst.DATE_FROM_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		if (!SHUK_TANI_MON.equals(tani))
		{
			// 月別以外であれば日付付与
			ymd = ymd + bean[0].sendMessageString(CNW00901SFConst.DATE_FROM_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		}
		return ymd;
		
	}

	/**
	 * 入力項目の「対象期間（TO）年」「対象期間（TO）月」「対象期間（TO）日」から年月日を編集する
	 * @param bean
	 * @return
	 */
	private static String editToYmd(X31SDataBeanAccess[] bean)
	{
		String ymd = "";
		String tani = bean[0].sendMessageString(CNW00901SFConst.SHUK_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		
		ymd = bean[0].sendMessageString(CNW00901SFConst.DATE_TO_YEAR, X31CWebConst.DATABEAN_GET_VALUE)
		  + bean[0].sendMessageString(CNW00901SFConst.DATE_TO_MONTH, X31CWebConst.DATABEAN_GET_VALUE);
		if (!SHUK_TANI_MON.equals(tani))
		{
			// 月別以外であれば日付付与
			ymd = ymd + bean[0].sendMessageString(CNW00901SFConst.DATE_TO_DAY, X31CWebConst.DATABEAN_GET_VALUE);
		}
		return ymd;
		
	}

	/**
	 * 選択された会員種別コードを編集する
	 * @param bean
	 * @return
	 */
	private static String editMemberSbt(X31SDataBeanAccess[] bean)
	{
		String sbt = "";
		boolean first = true;
		
		X31SDataBeanAccessArray beanArray = bean[0].getDataBeanArray(CNW00901SFConst.MEMBER_SBT_LIST);
		for (int i = 0; i < beanArray.getCount(); i++)
		{
			X31SDataBeanAccess subbean = beanArray.getDataBean(i);
			if (subbean.sendMessageBoolean(CNW00901SFConst.SELECT_VALUE_02, X31CWebConst.DATABEAN_GET_VALUE))
			{
				if (!first)
				{
					sbt = sbt + ",";
				}
				first = false;
				sbt = sbt + String.format("\'%s\'", subbean.sendMessageString(CNW00901SFConst.MEMBER_SBT_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		return sbt;
	}
	
	/**
	 * 選択されたコンテンツサービスコードを編集する
	 * @param bean
	 * @return 
	 */
	private static String editContSvcCd(X31SDataBeanAccess[] bean)
	{
		String svcCd = "";
		boolean first = true;
		
		X31SDataBeanAccessArray beanArray = bean[0].getDataBeanArray(CNW00901SFConst.CONT_SVC_LIST);
		for (int i = 0; i < beanArray.getCount(); i++)
		{
			X31SDataBeanAccess subbean = beanArray.getDataBean(i);
			if (subbean.sendMessageBoolean(CNW00901SFConst.SELECT_VALUE_01, X31CWebConst.DATABEAN_GET_VALUE))
			{
				if (!first)
				{
					svcCd = svcCd + ",";
				}
				first = false;
				svcCd = svcCd + String.format("\'%s\'", "0" + subbean.sendMessageString(CNW00901SFConst.CONT_SVC_CD_01, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		return svcCd;
	}
	
	/**
	 * 集計単位・集計対象年月日より、当日が含まれているかチェックする
	 * 
	 * @param bean
	 * @return
	 */
	private static boolean checkTargetDate(X31SDataBeanAccess[] bean)
	{
		String tani = bean[0].sendMessageString(CNW00901SFConst.SHUK_SELECT_VALUE, X31CWebConst.DATABEAN_GET_VALUE);
		if (SHUK_TANI_DAY.equals(tani))
		{
			// 集計単位が日別
			// 会員種別集計対象年月日FROM
			String fromYmd = editFromYmd(bean);
			// 集計対象年月TO
			String toYmd = editToYmd(bean);
			// 当日日付
			String currentYmd = JCCWebCommon.getSysDate();
			
			if ((Integer.parseInt(fromYmd) <= Integer.parseInt(currentYmd)) && (Integer.parseInt(currentYmd) <= Integer.parseInt(toYmd)))
			{
				return false;		// 20140326 当日日付チェック結果を必ずfalseにすることで当日集計処理は実施しないようにする。
			}

			return false;
		}

		// 集計単位が日別以外は対象としない
		return false;
	}

	/**
	 * お客様会員数集計
	 * @param svcCd
	 * @param array
	 */
	private static ArrayList<Object> setCustData(HashMap map)
	{
		ArrayList<Object> list = new ArrayList<Object>();
		if (map != null && map.containsKey("ECK0011B505CBSMsg1List"))
		{
			list = (ArrayList)map.get("ECK0011B505CBSMsg1List");
		}
		else
		{
			HashMap<String, String> workMap = new HashMap<String, String>();
			workMap.put(TOTAL_COUNT, "0");
			list.add(workMap);
		}
		return list;
	}

	/**
	 * コンテンツ契約サービス別会員数集計
	 * @param svcCd
	 * @param array
	 */
	private static HashMap<String, Object> setContKeiData(ArrayList svcCd, HashMap parentMap)
	{
		ArrayList childList = new ArrayList();
		HashMap<String, Object> map = new HashMap<String, Object>();
		if (parentMap != null && parentMap.containsKey("ECN0021A006CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECN0021A006CBSMsg1List");
		}

		// 総数の集計
		int totalCnt = 0;
		for (int i = 0; i < svcCd.size(); i++)
		{
			boolean flg = false;
			String targetSvcCd = (String)svcCd.get(i);
			for (int j = 0; j < childList.size(); j++)
			{
				HashMap child = (HashMap)childList.get(j);
				if (child != null && targetSvcCd.equals((String)child.get("cont_svc_cd")))
				{
					// 集計数の取得
					totalCnt = totalCnt + Integer.parseInt((String)child.get(TOTAL_COUNT));
					map.put(targetSvcCd, child);
					flg = true;
					break;
				}
			}
			if (!flg)
			{
				// 空のマップを作成
				HashMap child = createContKeiData(targetSvcCd);
				map.put(targetSvcCd, child);
			}
		}
		
		// 集計数をマップに設定
		HashMap<String, String> workMap = new HashMap<String, String>();
		workMap.put(TOTAL_COUNT, Integer.toString(totalCnt));
		workMap.put(CONT_SVC_CD, TOTAL_LABEL);
		workMap.put(DSP_JUN, "0");
		map.put(TOTAL_LABEL, workMap);

		return map;
	}
	
	/**
	 * 空のコンテンツ契約サービス別会員数集計マップを作成する
	 * 
	 * @param svcCd
	 * @return
	 */
	private static HashMap<String, String> createContKeiData(String svcCd)
	{
		HashMap<String, String> map = new HashMap<String, String>();
		map.put(TOTAL_COUNT, "0");
		map.put(CONT_SVC_CD, svcCd);
		map.put(DSP_JUN, "0");
		return map;
	}
	/**
	 * ワーク売上情報
	 * @param svcCd
	 * @param array
	 * @param flag
	 */
	private static HashMap<String, Object>  setWorkData(ArrayList svcCd, HashMap parentMap, boolean flag)
	{
		int total_sales_cnt = 0;	// 売上件数（集計数）
		int total_sales_amnt = 0;	// 売上金額（集計額）
		int total_buy_cnt = 0;		// 購入者数（集計数）

		ArrayList childList = new ArrayList();
		HashMap<String, Object> map = new HashMap<String, Object>();
		if (parentMap != null && parentMap.containsKey("ECN0281B001CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECN0281B001CBSMsg1List");
		}

		for (int i = 0; i < svcCd.size(); i++)
		{
			int sales_cnt = 0;		// 売上件数
			int sales_amnt = 0;		// 売上金額
			int buy_cnt = 0;		// 購入者数
			int new_record = 0;		// 新規レコード
			int cansel_record = 0;	// 取消レコード
			boolean flg = false;

			String targetSvcCd = (String)svcCd.get(i);
			for (int j = 0; j < childList.size(); j++)
			{
				HashMap child = (HashMap)childList.get(j);
				if (child != null && targetSvcCd.equals((String)child.get("cont_svc_cd")))
				{
					for (int k = j; k < childList.size(); k++)
					{
						HashMap nextChild = null;
						HashMap workMap = (HashMap)childList.get(k);
						if ((k+1) != childList.size())
						{
							nextChild = (HashMap)childList.get(k+1);
						}
						String currentSysid = (String)child.get("sysid");
						String nextSysid = "";
						String nextSvcCd = "";
						if (nextChild != null)
						{
							nextSysid = (String)nextChild.get("sysid");
							nextSvcCd = (String)nextChild.get("cont_svc_cd");
						}
						// 売上件数
						if (TORIKESHI.equals(workMap.get("contchrgtesei_div")) && KURO.equals(workMap.get("plmin_div")))
						{
							// 取消かつ黒伝の場合、1件減算
							sales_cnt = sales_cnt - 1;
						}
						else if (TORIKESHI.equals(workMap.get("contchrgtesei_div")) && AKA.equals(workMap.get("plmin_div")))
						{
							// 取消かつ赤伝の場合、1件加算
							sales_cnt = sales_cnt + 1;
						}
						else if (KAKIN.equals(workMap.get("contchrgtesei_div")) && KURO.equals(workMap.get("plmin_div")))
						{
							// 課金訂正データ以外かつ黒伝の場合、1件加算
							sales_cnt = sales_cnt + 1;
						}
						else if (KAKIN.equals(workMap.get("contchrgtesei_div")) && AKA.equals(workMap.get("plmin_div")))
						{
							// 課金訂正データ以外かつ赤伝の場合、1件減算
							sales_cnt = sales_cnt - 1;
						}
						// 売上金額
						if (!KAKIN_TEISI_CYU.equals(workMap.get("chrg_stat_cd")) && !KYOSEI_KAKIN_TEISI_CYU.equals(workMap.get("chrg_stat_cd")))
						{
							int kakin = 0;
							String workValue = "";
							if (KAKIN.equals(workMap.get("contchrgtesei_div")) || TORIKESHI.equals(workMap.get("contchrgtesei_div")))
							{
								workValue = (String)workMap.get("chrg_amnt");
								kakin = Integer.valueOf(workValue);
							}
							else if (URIAGE_GEN.equals(workMap.get("contchrgtesei_div")))
							{
								workValue = (String)workMap.get("chrg_amnt");
								kakin = -Integer.valueOf(workValue);
							}
							sales_amnt = sales_amnt + kakin;
						}
						if (flag)
						{
							// 購入者数
							if ("0".equals(workMap.get("cont_chrg_teise_seq")) && KAKIN.equals(workMap.get("contchrgtesei_div")))
							{
								new_record = new_record + 1;
							}
							else if (TORIKESHI.equals(workMap.get("contchrgtesei_div")) && KURO.equals(workMap.get("plmin_div")))
							{
								cansel_record = cansel_record + 1;
							}
							if (currentSysid.equals(nextSysid))
							{
								if (0 < (new_record - cansel_record))
								{
									buy_cnt = buy_cnt + 1;
									new_record = 0;
									cansel_record = 0;
								}
							}
						}
						if (!targetSvcCd.equals(nextSvcCd))
						{
							HashMap<String, String> retMap = new HashMap<String, String>();
							// 売上件数
							retMap.put(SALES_CNT, Integer.toString(sales_cnt));
							// 売上金額
							retMap.put(SALES_AMNT, Integer.toString(sales_amnt));
							// 購入者数
							retMap.put(KNSHA_CNT, Integer.toString(buy_cnt));
							// 返却用マップにPUTする
							map.put(targetSvcCd, retMap);
							j = j + k;
							
							// 集計用に加算する
							total_sales_cnt = total_sales_cnt + sales_cnt;
							total_sales_amnt = total_sales_amnt + sales_amnt;
							total_buy_cnt = total_buy_cnt + buy_cnt;
							break;
						}
					}
					flg = true;
				}
			}
			if (!flg)
			{
				HashMap workMap = createWorkData(targetSvcCd);
				map.put(targetSvcCd, workMap);
			}
		}
		
		
		// 集計数をマップに設定
		HashMap<String, String> retMap = new HashMap<String, String>();
		// 売上件数
		retMap.put(SALES_CNT, Integer.toString(total_sales_cnt));
		// 売上金額
		retMap.put(SALES_AMNT, Integer.toString(total_sales_amnt));
		// 購入者数
		retMap.put(KNSHA_CNT, Integer.toString(total_buy_cnt));
		// 返却用マップにPUTする
		map.put(TOTAL_LABEL, retMap);

		return map;
	}
	
	/**
	 * 空のワーク売上情報マップを作成する
	 * 
	 * @param svcCd
	 * @return
	 */
	private static HashMap<String, String> createWorkData(String svcCd)
	{
		HashMap<String, String> map = new HashMap<String, String>();
		map.put(SALES_CNT, "0");
		map.put(SALES_AMNT, "0");
		map.put(KNSHA_CNT, "0");
		map.put(CONT_SVC_CD, svcCd);
		return map;
	}
}