/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0623_KKSV0623OPDBMapper
*	ソースファイル名：KKSV0623_KKSV0623OPDBMapper.java
*	作成者			：富士通
*	日付			：2013年09月17日
*＜機能概要＞
*	BP（はぴe審査情報補正対象一覧ダウンロード）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2013/09/17	富士通		新規作成
*	v11.00.00	2014/10/09	FJ) 西面	ANK-2306-04-00
*	v25.00.00	2016/03/28	FJ) 山裾	ANK-2766-00-00
*	v25.00.01	2016/05/11	FJ) 山裾	IT1-2016-0000060
*	v25.00.02	2016/05/24	FJ) 山裾	ANK-2799-00-00
*	v25.00.03	2016/07/25	FJ)寺園		OM-2016-0001770
**********************************************************************/
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.constant.JKKStrConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0623_KKSV0623OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0623_KKSV0623OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：はぴｅ審査情報補正対象一覧
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV062301SC(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);

		// 検索条件＿はぴｅ番号 → はぴeポイント契約一覧照会マップ.ＫＥＹ＿はぴe番号
		parentMap.put("key_hapie_no", bean[0].sendMessageString("検索条件＿はぴｅ番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索条件＿ｅｏＩＤ → はぴeポイント契約一覧照会マップ.ＫＥＹ＿ｅｏＩＤ
		parentMap.put("key_eoid", bean[0].sendMessageString("検索条件＿ｅｏＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索条件＿ＳＹＳＩＤ → はぴeポイント契約一覧照会マップ.ＫＥＹ＿ＳＹＳＩＤ
		parentMap.put("key_sysid", bean[0].sendMessageString("検索条件＿ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索条件＿処理対象年月 → はぴeポイント契約一覧照会マップ.ＫＥＹ＿処理対象年月
		parentMap.put("key_trn_tg_ym", bean[0].sendMessageString("検索条件＿処理対象年月", X31CWebConst.DATABEAN_GET_VALUE));
		// 検索条件＿処理対象時期 → はぴeポイント契約一覧照会マップ.ＫＥＹ＿処理対象時期
		parentMap.put("key_trn_tg_jk", bean[0].sendMessageString("検索条件＿処理対象時期", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV062301SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：はぴｅ審査情報補正対象一覧
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV062301SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV062301SC")){
			parentMap = (HashMap)outputMap.get("KKSV062301SC");
		}

		ArrayList childList = null;
//v25.00.00 2016/03/28 Del Start
//		String wkHapiePointKeiNoBreakKey = "";
//		String wkHapieNoBreakKey = "";
//		String wkEoHapieNoBreakKey = "";
//		String wkEoIdBreakKey = "";
//		int wkHapiePointKeiNoCount = 0;
//		int wkHapieNoCount = 0;
//		int wkEoIdCount = 0;
//v25.00.00 2016/03/28 Del End
//v25.00.00 2016/03/28 Add Start
		int wGroupCount = 0;
		int wSeqCount = 0;
		String wHapieNoBreakKey = "";
		String wOldBreakKey_1 = "";
		String wNewBreakKey_1 = "";
		String wOldBreakKey_2 = "";
		String wNewBreakKey_2 = "";
//v25.00.00 2016/03/28 Add End
//v25.00.01 2016/05/11 Add Start
		String wPcd = "";
//v25.00.01 2016/05/11 Add End

		X31SDataBeanAccessArray listKKSV062301SC_hapie_point_kei_search_rslt_dl_EKK0671B003CBSMsg1List = bean[0].getDataBeanArray("はぴｅポイント更新結果リスト");
		childList = null;
		if(parentMap.containsKey("EKK0671B003CBSMsg1List")){
			//v25.00.02 2016/05/24 Mod Start
//			childList = (ArrayList)parentMap.get("EKK0671B003CBSMsg1List");
			if (((ArrayList)parentMap.get("EKK0671B003CBSMsg1List")).size() > 0)
			{
				childList = getDownLoadList((ArrayList)parentMap.get("EKK0671B003CBSMsg1List"));
			}
			//v25.00.02 2016/05/24 Mod End
			
			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listKKSV062301SC_hapie_point_kei_search_rslt_dl_EKK0671B003CBSMsg1List.getCount() -1 >= i){
					subbean = listKKSV062301SC_hapie_point_kei_search_rslt_dl_EKK0671B003CBSMsg1List.getDataBean(i);
				}else{
					subbean = listKKSV062301SC_hapie_point_kei_search_rslt_dl_EKK0671B003CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
			
//v25.00.00 2016/03/28 Del Start
//				// はぴｅポイント更新結果リスト.Ｎｏ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.No
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("no"));
//				if (!wkHapiePointKeiNoBreakKey.equals((String)childMap.get("hapie_point_kei_no")))
//				{
//					wkHapiePointKeiNoBreakKey = (String)childMap.get("hapie_point_kei_no");
//					wkHapiePointKeiNoCount++;
//				}
//				subbean.sendMessageString("Ｎｏ", X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(wkHapiePointKeiNoCount));
//				// ▲表示形式の編集のため手動での修正 [End]
//				
//				// はぴｅポイント更新結果リスト.グループＮｏ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.グループNo
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("グループＮｏ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("group_no"));
//				if (!wkHapieNoBreakKey.equals((String)childMap.get("hapie_no")))
//				{
//					wkHapieNoBreakKey = (String)childMap.get("hapie_no");
//					wkHapieNoCount++;
//				}
//				subbean.sendMessageString("グループＮｏ", X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(wkHapieNoCount));
//				// ▲表示形式の編集のため手動での修正 [End]
//				
//				// はぴｅポイント更新結果リスト.はぴｅポイント契約番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴeポイント契約番号
//				subbean.sendMessageString("はぴｅポイント契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_point_kei_no"));
//
//				// はぴｅポイント更新結果リスト.対象年月 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.対象年月
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("対象年月", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("trgt_ym"));
//				String trgt_ymd = (String)childMap.get("trgt_ym");
//				subbean.sendMessageString("対象年月", X31CWebConst.DATABEAN_SET_VALUE, dateFormatYYYYMM(trgt_ymd));
//
//				
//				
//				
//				// ▲表示形式の編集のため手動での修正 [End]
//				
//				// はぴｅポイント更新結果リスト.対象区分 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.対象区分
//				subbean.sendMessageString("対象区分", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("trgt_kbn"));
//				// はぴｅポイント更新結果リスト.ＳＹＳＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.ＳＹＳＩＤ
//				subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
//				// はぴｅポイント更新結果リスト.ｅｏＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.ｅｏＩＤ
//				subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("eoid"));
//				// はぴｅポイント更新結果リスト.はぴｅ番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe番号
//				subbean.sendMessageString("はぴｅ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員カード名義 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員カード名義
//				subbean.sendMessageString("はぴｅ会員カード名義", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_card_nm"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員カード名義カナ名 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員カード名義カナ名
//				subbean.sendMessageString("はぴｅ会員カード名義カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_card_nm_kana"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員郵便番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員郵便番号
//				subbean.sendMessageString("はぴｅ会員郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_pcd"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員住所 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員住所
//				subbean.sendMessageString("はぴｅ会員住所", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_ad"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員住所カナ名 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員住所カナ名
//				subbean.sendMessageString("はぴｅ会員住所カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_ad_kana"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員電話番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員電話番号
//				subbean.sendMessageString("はぴｅ会員電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_telno"));
//				// はぴｅポイント更新結果リスト.はぴｅ会員生年月日 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴe会員生年月日
//				subbean.sendMessageString("はぴｅ会員生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_birthd"));
//
//				// はぴｅポイント更新結果リスト.通番 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.通番
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("通番", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seq_no"));
//				if (wkEoHapieNoBreakKey.equals((String)childMap.get("hapie_no")))
//				{
//					if (!wkEoIdBreakKey.equals((String)childMap.get("cust_eoid")))
//					{
//						wkEoIdCount++;
//						wkEoIdBreakKey = (String)childMap.get("cust_eoid");
//					}
//				}
//				else
//				{
//					wkEoIdCount = 1;
//					wkEoHapieNoBreakKey = (String)childMap.get("hapie_no");
//					wkEoIdBreakKey = (String)childMap.get("cust_eoid");
//				}
//				subbean.sendMessageString("通番", X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(wkEoIdCount));
//				// ▲表示形式の編集のため手動での修正 [End]
////v11.00.00 2014/10/09 Add Start
//				// はぴｅポイント更新結果リスト.はぴｅポイント契約ＳＹＳＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴｅポイント契約ＳＹＳＩＤ
//				subbean.sendMessageString("はぴｅポイント契約ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapiepoint_kei_sysid"));
////v11.00.00 2014/10/09 Add End
//				// はぴｅポイント更新結果リスト.お客様ｅｏＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.お客様ｅｏＩＤ
//				subbean.sendMessageString("お客様ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_eoid"));
//				// はぴｅポイント更新結果リスト.契約者名 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約者名
//				subbean.sendMessageString("契約者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
//				// はぴｅポイント更新結果リスト.契約者名カナ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約者名カナ
//				subbean.sendMessageString("契約者名カナ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_kana"));
//				// はぴｅポイント更新結果リスト.契約者電話番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約者電話番号
//				subbean.sendMessageString("契約者電話番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("keisha_telno"));
//				// はぴｅポイント更新結果リスト.契約者生年月日 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約者生年月日
//				subbean.sendMessageString("契約者生年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_birthd"));
//				// はぴｅポイント更新結果リスト.お客様ＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.お客様ＩＤ
//				subbean.sendMessageString("お客様ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
//				// はぴｅポイント更新結果リスト.契約状態 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約状態
//				subbean.sendMessageString("契約状態", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kei_stat"));
//				// はぴｅポイント更新結果リスト.契約サービス ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.契約サービス
//				subbean.sendMessageString("契約サービス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd_nm"));
//				// はぴｅポイント更新結果リスト.料金コース ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.料金コース
//				subbean.sendMessageString("料金コース", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd_nm"));
//				// はぴｅポイント更新結果リスト.利用場所郵便番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.利用場所郵便番号
//				subbean.sendMessageString("利用場所郵便番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_pcd"));
//				// はぴｅポイント更新結果リスト.利用場所住所 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.利用場所住所
//				subbean.sendMessageString("利用場所住所", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_ad"));
////v11.00.00 2014/10/09 Add Start
//				// はぴｅポイント更新結果リスト.はぴｅポイント契約ＳＹＳＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.はぴｅポイント契約ＳＹＳＩＤ
//				subbean.sendMessageString("今回連携登録", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("knk_rnk_add_flg"));
////v11.00.00 2014/10/09 Add End
//				// はぴｅポイント更新結果リスト.審査対象はぴｅ番号 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.審査対象はぴe番号
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("審査対象はぴｅ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_hapie_no"));
//				subbean.sendMessageString("審査対象はぴｅ番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no"));
//				// ▲表示形式の編集のため手動での修正 [End]
//
//				// はぴｅポイント更新結果リスト.審査対象お客様ＩＤ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.審査対象お客様ＩＤ
//				// ▼表示形式の編集のため手動での修正 [Start]
//				//subbean.sendMessageString("審査対象お客様ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_svc_kei_no"));
//				subbean.sendMessageString("審査対象お客様ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
//				// ▲表示形式の編集のため手動での修正 [End]
//
//				// はぴｅポイント更新結果リスト.審査結果 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.審査結果
//				subbean.sendMessageString("審査結果", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("point_kei_skekka_cd"));
//				// はぴｅポイント更新結果リスト.審査結果理由 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.審査結果理由
//				subbean.sendMessageString("審査結果理由", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("point_kei_skekka_rsn_cd"));
//				// はぴｅポイント更新結果リスト.補正メモ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.補正メモ
//				subbean.sendMessageString("補正メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapiepoint_kei_hsk_biko"));
//				// はぴｅポイント更新結果リスト.個別審査結果 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.個別審査結果
//				subbean.sendMessageString("個別審査結果", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svkei_skekka_cd"));
//				// はぴｅポイント更新結果リスト.個別審査理由 ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.個別審査理由
//				subbean.sendMessageString("個別審査理由", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svkei_ska_rsn_cd"));
//				// はぴｅポイント更新結果リスト.個別補正メモ ← はぴeポイント契約一覧照会マップ.はぴeポイント契約一覧照会明細.個別補正メモ
//				subbean.sendMessageString("個別補正メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_tg_svkei_hosei_memo"));
//v25.00.00 2016/03/28 Del End
//v25.00.00 2016/03/28 Add Start
				// はぴｅポイント更新結果リスト.グループＮｏ（はぴe番号（審査）単位に１からの連番）
				if (!wHapieNoBreakKey.equals((String)childMap.get("hapie_no_jdg")))
				{
					wHapieNoBreakKey = (String)childMap.get("hapie_no_jdg");
					wGroupCount++;
				}
				subbean.sendMessageString("グループＮｏ", X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(wGroupCount));
				
				// はぴｅポイント更新結果リスト.通しＮｏ（１からの連番）
				wSeqCount++;
				subbean.sendMessageString("通しＮｏ", X31CWebConst.DATABEAN_SET_VALUE,  Integer.toString(wSeqCount));
				
				//v25.00.01 2016/05/11 Del Start
//				// 今回の申請内容のグルーピング
//				wNewBreakKey_1 = (String)childMap.get("hapie_no_jdg") + "," + 
//								 (String)childMap.get("hapiek_jdg_req_ji_sti_id") + "," + 
//								 (String)childMap.get("hapie_member_card_nm") + "," + 
//								 (String)childMap.get("hapie_member_pcd_jdg") + "," + 
//								 (String)childMap.get("hapie_member_ad_jdg");
//				
//				if (wOldBreakKey_1.equals(wNewBreakKey_1))
//				{
//					// はぴｅポイント更新結果リスト.はぴｅ番号（審査）
//					subbean.sendMessageString("はぴｅ番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.ｅｏＩＤ
//					subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.契約者名
//					subbean.sendMessageString("契約者名", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.郵便番号（審査）
//					subbean.sendMessageString("郵便番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.住所（審査）
//					subbean.sendMessageString("住所（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//				}
//				else
//				{
//					wOldBreakKey_1 = wNewBreakKey_1;
					//v25.00.01 2016/05/11 Del End
					// はぴｅポイント更新結果リスト.はぴｅ番号（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴｅ番号（審査）
					subbean.sendMessageString("はぴｅ番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no_jdg"));
					// はぴｅポイント更新結果リスト.ｅｏＩＤ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ｅｏＩＤ
					subbean.sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapiek_jdg_req_ji_sti_id"));
					// はぴｅポイント更新結果リスト.契約者名 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.契約者名
					subbean.sendMessageString("契約者名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_card_nm"));
					// はぴｅポイント更新結果リスト.郵便番号（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.郵便番号（審査）
					subbean.sendMessageString("郵便番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_pcd_jdg"));
					// はぴｅポイント更新結果リスト.住所（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.住所（審査）
					subbean.sendMessageString("住所（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_ad_jdg"));
					//v25.00.01 2016/05/11 Del Start
//				}
//				
//				// 申請されたeoIDに紐づく情報のグルーピング
//				wNewBreakKey_2 = (String)childMap.get("hapie_no_jdg") + "," + 
//								 (String)childMap.get("hapiek_jdg_req_ji_sti_id") + "," + 
//								 (String)childMap.get("hapie_member_card_nm") + "," + 
//								 (String)childMap.get("hapie_member_pcd_jdg") + "," + 
//								 (String)childMap.get("hapie_member_ad_jdg") + "," + 
//								 (String)childMap.get("sysid") + "," + 
//								 (String)childMap.get("cust_nm") + "," + 
//								 (String)childMap.get("svc_kei_no_jdg") + "," + 
//								 (String)childMap.get("svc_kei_stat_nm_jdg") + "," + 
//								 (String)childMap.get("kaisen_place_pcd") + "," + 
//								 (String)childMap.get("kaisen_place_ad");
//				
//				if (wOldBreakKey_2.equals(wNewBreakKey_2))
//				{
//					// はぴｅポイント更新結果リスト.ＳＹＳＩＤ
//					subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.契約者名（顧客）
//					subbean.sendMessageString("契約者名（顧客）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.ネットお客様ＩＤ（審査）
//					subbean.sendMessageString("ネットお客様ＩＤ（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.サービス契約ステータス名（審査）
//					subbean.sendMessageString("サービス契約ステータス名（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.利用場所郵便番号（審査）
//					subbean.sendMessageString("利用場所郵便番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//					// はぴｅポイント更新結果リスト.利用場所住所（審査）
//					subbean.sendMessageString("利用場所住所（審査）", X31CWebConst.DATABEAN_SET_VALUE, "");
//				}
//				else
//				{
//					wOldBreakKey_2 = wNewBreakKey_2;
					//v25.00.01 2016/05/11 Del End
					// はぴｅポイント更新結果リスト.ＳＹＳＩＤ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ＳＹＳＩＤ
					subbean.sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
					// はぴｅポイント更新結果リスト.契約者名（顧客） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.契約者名（顧客）
					subbean.sendMessageString("契約者名（顧客）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_nm"));
					// はぴｅポイント更新結果リスト.ネットお客様ＩＤ（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ネットお客様ＩＤ（審査）
					subbean.sendMessageString("ネットお客様ＩＤ（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_jdg"));
					// はぴｅポイント更新結果リスト.サービス契約ステータス名（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.サービス契約ステータス名（審査）
					subbean.sendMessageString("サービス契約ステータス名（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat_nm_jdg"));
					// はぴｅポイント更新結果リスト.利用場所郵便番号（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.利用場所郵便番号（審査）

					//v25.00.01 2016/05/11 Mod Start
//					subbean.sendMessageString("利用場所郵便番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_pcd"));
					wPcd = (String)childMap.get("kaisen_place_pcd");
					if (wPcd.length() >= 7)
					{
						wPcd = wPcd.substring(0, 3) + "-" +  wPcd.substring(3, wPcd.length());
					}
					subbean.sendMessageString("利用場所郵便番号（審査）", X31CWebConst.DATABEAN_SET_VALUE, wPcd);
					//v25.00.01 2016/05/11 Mod End

					// はぴｅポイント更新結果リスト.利用場所住所（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.利用場所住所（審査）
					subbean.sendMessageString("利用場所住所（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_ad"));
					//v25.00.01 2016/05/11 Del Start
//				}
				//v25.00.01 2016/05/11 Del End
				
				// はぴｅポイント更新結果リスト.はぴｅ番号（既契約） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴｅ番号（既契約）
				subbean.sendMessageString("はぴｅ番号（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no"));
				// はぴｅポイント更新結果リスト.はぴｅ契約ステータス名（既契約） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴｅ契約ステータス名（既契約）
				subbean.sendMessageString("はぴｅ契約ステータス名（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_point_kei_stat_nm"));
				// はぴｅポイント更新結果リスト.ネットお客様ＩＤ（既契約） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ネットお客様ＩＤ（既契約）
				subbean.sendMessageString("ネットお客様ＩＤ（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svc_kei_no"));
				// はぴｅポイント更新結果リスト.はぴｅＩＤ２個別審査結果 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴｅＩＤ２個別審査結果
				subbean.sendMessageString("はぴｅＩＤ２個別審査結果", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svkei_skekka_nm"));
				// はぴｅポイント更新結果リスト.サービス契約ステータス名（既契約） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.サービス契約ステータス名（既契約）
				subbean.sendMessageString("サービス契約ステータス名（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat_nm"));
				// はぴｅポイント更新結果リスト.利用場所郵便番号（既契約） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.利用場所郵便番号（既契約）

				//v25.00.01 2016/05/11 Mod Start
//				subbean.sendMessageString("利用場所郵便番号（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_pcd"));
				wPcd = (String)childMap.get("hapie_member_pcd");
				if (wPcd.length() >= 7)
				{
					wPcd = wPcd.substring(0, 3) + "-" +  wPcd.substring(3, wPcd.length());
				}
				subbean.sendMessageString("利用場所郵便番号（既契約）", X31CWebConst.DATABEAN_SET_VALUE, wPcd);
				//v25.00.01 2016/05/11 Mod End

				// はぴｅポイント更新結果リスト.利用場所住所 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.利用場所住所（既契約）
				//v25.00.01 2016/05/11 Mod Start
//				subbean.sendMessageString("利用場所住所", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_ad"));
				subbean.sendMessageString("利用場所住所（既契約）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_member_ad"));
				//v25.00.01 2016/05/11 Mod End
				// はぴｅポイント更新結果リスト.はぴｅ番号（審査）２ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴe番号（審査）
				subbean.sendMessageString("はぴｅ番号（審査）２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no_jdg"));
				// はぴｅポイント更新結果リスト.ネットお客様ＩＤ（審査）２ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ネットお客様ＩＤ（審査）
				subbean.sendMessageString("ネットお客様ＩＤ（審査）２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no_jdg"));
				// はぴｅポイント更新結果リスト.審査結果 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.審査結果
				subbean.sendMessageString("審査結果", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("point_kei_skekka_cd"));
				// はぴｅポイント更新結果リスト.審査理由 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.審査理由
				subbean.sendMessageString("審査理由", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("point_kei_skekka_rsn_cd"));
				// はぴｅポイント更新結果リスト.補正メモ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.補正メモ
				subbean.sendMessageString("補正メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapiepoint_kei_hsk_biko"));
				// はぴｅポイント更新結果リスト.個別審査結果（審査） ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.個別審査結果（審査）
				subbean.sendMessageString("個別審査結果（審査）", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svkei_skekka_cd_jdg"));
				// はぴｅポイント更新結果リスト.個別審査理由 ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.個別審査理由
				subbean.sendMessageString("個別審査理由", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svkei_ska_rsn_cd"));
				// はぴｅポイント更新結果リスト.個別補正メモ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.個別補正メモ
				subbean.sendMessageString("個別補正メモ", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_tg_svkei_hosei_memo"));

				// はぴｅポイント更新結果リスト.チェック要
				if ("02".equals((String)childMap.get("point_kei_skekka_cd")) || "02".equals((String)childMap.get("sksn_trgt_svkei_skekka_cd_jdg")))
				{
					subbean.sendMessageString("チェック要", X31CWebConst.DATABEAN_SET_VALUE, "○");
				}
				else
				{
					subbean.sendMessageString("チェック要", X31CWebConst.DATABEAN_SET_VALUE, "");
				}

				// はぴｅポイント更新結果リスト.はぴｅ番号（既契約）２ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.はぴｅ番号（既契約）
				subbean.sendMessageString("はぴｅ番号（既契約）２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("hapie_no"));
				// はぴｅポイント更新結果リスト.ネットお客様ＩＤ（既契約）２ ← はぴｅポイント契約一覧照会（ダウンロード用）.はぴｅポイント契約一覧照会２明細.ネットお客様ＩＤ（既契約）
				subbean.sendMessageString("ネットお客様ＩＤ（既契約）２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sksn_trgt_svc_kei_no"));

				// はぴｅポイント更新結果リスト.６０作業要
				//使用するワークの定義
				String wPlacePcdJdg = "";						//利用場所郵便番号（審査）
				String wPcdJdg = "";							//郵便番号（審査）
				String wPlacePcdKei = "";						//利用場所郵便番号（既契約）
				String wHapieKeiStatKei = "";					//はぴe契約ステータス（既契約）
				
				//利用場所郵便番号（審査）
				wPlacePcdJdg = (String)childMap.get("kaisen_place_pcd");
				//郵便番号（審査）
				wPcdJdg = (String)childMap.get("hapie_member_pcd_jdg");
				wPcdJdg = wPcdJdg.replace("-","");
				//利用場所郵便番号（既契約）
				wPlacePcdKei = (String)childMap.get("hapie_member_pcd");
				//はぴe契約ステータス（既契約）
				wHapieKeiStatKei = (String)childMap.get("hapie_point_kei_stat");
				
				//●の条件
				if (wPlacePcdJdg.equals(wPcdJdg) &&											//利用場所郵便番号（審査） = 郵便番号（審査）
				    (JKKStrConst.CD00596_UKZM.equals(wHapieKeiStatKei) ||
				     JKKStrConst.CD00596_SVCTK_CHU.equals(wHapieKeiStatKei)) &&				//はぴe契約ステータス（既契約） = （"010"（受付済）,"100"（サービス提供中））
					 wPlacePcdKei.equals(wPcdJdg))											//利用場所郵便番号（既契約）=郵便番号（審査）
				{
					subbean.sendMessageString("６０作業要", X31CWebConst.DATABEAN_SET_VALUE, "●");
				}
				//○の条件
				else if (wPlacePcdJdg.equals(wPcdJdg) &&									//利用場所郵便番号（審査） = 郵便番号（審査）
						!(JKKStrConst.CD00596_UKZM.equals(wHapieKeiStatKei) ||
						  JKKStrConst.CD00596_SVCTK_CHU.equals(wHapieKeiStatKei)) &&		//はぴe契約ステータス（既契約） ≠ （"010"（受付済）,"100"（サービス提供中））
						  wPlacePcdKei.equals(wPcdJdg))										//利用場所郵便番号（既契約）=郵便番号（審査）
				{
					subbean.sendMessageString("６０作業要", X31CWebConst.DATABEAN_SET_VALUE, "○");
				}
					//""の条件
				else if (!wPlacePcdJdg.equals(wPcdJdg) ||									//利用場所郵便番号（審査） ≠ 郵便番号（審査）
						  !wPlacePcdKei.equals(wPcdJdg))									//利用場所郵便番号（既契約）≠ 郵便番号（審査）
				{
					subbean.sendMessageString("６０作業要", X31CWebConst.DATABEAN_SET_VALUE, "");
				}
				else
				{
					subbean.sendMessageString("６０作業要", X31CWebConst.DATABEAN_SET_VALUE, "");
				}
//v25.00.00 2016/03/28 Add End
			}
		}


		return bean;
	}

//v25.00.00 2016/03/28 Del Start
//	// ▼表示形式の編集のため手動での修正 [Start]
//	/**
//	 * "YYYY/MM/DD" 形式に変換する
//	 * @param value
//	 * @return
//	 */
//	private String dateFormatYYYYMM(String value) {
//		
//		String formatstring = "";
//		if(value != null && value.length() == 10)
//		{
//			formatstring = value.substring(0, 4) + value.substring(5, 7);
//		}
//		return formatstring;
//	}
//// ▲表示形式の編集のため手動での修正 [End]
//v25.00.00 2016/03/28 Del End
//v25.00.01 2016/05/11 Add Start
	/**
	 * はぴｅポイント更新結果リストをカスタマイズする
	 * @param  (ArrayList)parentMap.get("EKK0671B003CBSMsg1List")：はぴｅポイント更新結果リスト
	 * @return ArrayList：カスタマイズ後のはぴｅポイント更新結果リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getDownLoadList(ArrayList hapietList)
	{
		// 内部使用変数の定義
		ArrayList hapietSortList = new ArrayList();		// ソート後のはぴｅポイント更新結果リスト
		ArrayList rsltList = new ArrayList();			// カスタマイズ後のはぴｅポイント更新結果リスト
		String wOldBreakKeyHapieNo = "";				// コントロールブレイク用はぴｅ番号（旧）
		String wNewBreakKeyHapieNo = "";				// コントロールブレイク用はぴｅ番号（新）
		ArrayList wEditList = new ArrayList();			// はぴｅ番号単位に格納したはぴｅポイント更新結果リスト
		ArrayList wCustomList = new ArrayList();		// はぴｅ番号単位にカスタマイズしたはぴｅポイント更新結果リスト

		// リストをはぴｅ番号・はぴｅポイント契約番号・お客様ＩＤ単位にソートする
		hapietSortList = sortFirst(hapietList);
		
		// リストをはぴｅポイント番号・はぴｅポイント契約番号単位に分割する
		for(int i = 0; i < hapietSortList.size(); i++)
		{
			HashMap hapietListMap = (HashMap)hapietSortList.get(i);

			// はぴｅポイント番号＋はぴｅポイント契約番号をブレイクキーにする
			wNewBreakKeyHapieNo = (String)hapietListMap.get("hapie_no_jdg") + "," +						// はぴｅ番号（審査）
								  (String)hapietListMap.get("hapie_point_kei_no");						// はぴｅポイント契約番号
			
			// コントロールブレイク判定（１件目は無条件に退避）
			if (wNewBreakKeyHapieNo.equals(wOldBreakKeyHapieNo) || i == 0)
			{
				// 同一はぴｅ番号は格納
				wEditList.add(hapietListMap);
				wOldBreakKeyHapieNo = wNewBreakKeyHapieNo;
			}
			else
			{
				// キーブレイク
				wCustomList = hapieListEdit(wEditList);
				
				// カスタマイズ結果をリストに格納する
				for(int j = 0; j < wCustomList.size(); j++)
				{
					rsltList.add(wCustomList.get(j));
				}
				// 初期化
				wEditList = new ArrayList();
				wCustomList = new ArrayList();
				wOldBreakKeyHapieNo = wNewBreakKeyHapieNo;
				
				// 格納
				wEditList.add(hapietListMap);
			}
		}
		
		// 編集中のリストを処理する
		wCustomList = hapieListEdit(wEditList);
		
		// カスタマイズ結果をリストに格納する
		for(int j = 0; j < wCustomList.size(); j++)
		{
			rsltList.add(wCustomList.get(j));
		}
		
		return rsltList;
	}

	/**
	 * はぴｅポイント更新結果リストを編集する
	 * @param  ArrayList：編集前のはぴｅポイント更新結果リスト
	 * @return ArrayList：編集後のはぴｅポイント更新結果リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList hapieListEdit(ArrayList hapietList)
	{
		// 内部使用変数の定義
		ArrayList workList = new ArrayList();			// 作業用リスト
		ArrayList konkaiJdgLst = new ArrayList();		// 今回審査内容リスト
		ArrayList zenkaiJdgLst = new ArrayList();		// 前回審査内容リスト
		ArrayList rsltList = new ArrayList();			// カスタマイズ後のはぴｅポイント更新結果リスト
		String wOldBreakKeyHapieNo = "";				// コントロールブレイク用はぴｅ番号（旧）
		String wNewBreakKeyHapieNo = "";				// コントロールブレイク用はぴｅ番号（新）
		ArrayList wEditList = new ArrayList();			// はぴｅ番号単位に格納したはぴｅポイント更新結果リスト
		ArrayList wCustomList = new ArrayList();		// はぴｅ番号単位にカスタマイズしたはぴｅポイント更新結果リスト
		
		
		// 今回審査内容に関連する項目をリストに格納
		for(int i = 0; i < hapietList.size(); i++)
		{
			HashMap hapietListMap = (HashMap)hapietList.get(i);
			ArrayList jdgLst = new ArrayList();
			
			jdgLst.add((String)hapietListMap.get("hapie_no_jdg"));						// はぴｅ番号（審査）［ソートキー］
			jdgLst.add((String)hapietListMap.get("svc_kei_no_jdg"));					// ネットお客様ＩＤ（審査）［ソートキー］
			jdgLst.add((String)hapietListMap.get("hapiek_jdg_req_ji_sti_id"));			// ｅｏＩＤ
			jdgLst.add((String)hapietListMap.get("hapie_member_card_nm"));				// 契約者名
			jdgLst.add((String)hapietListMap.get("hapie_member_pcd_jdg"));				// 郵便番号（審査）
			jdgLst.add((String)hapietListMap.get("hapie_member_ad_jdg"));				// 住所（審査）
			jdgLst.add((String)hapietListMap.get("sysid"));								// ＳＹＳＩＤ
			jdgLst.add((String)hapietListMap.get("cust_nm"));							// 契約者名（顧客）
			jdgLst.add((String)hapietListMap.get("svc_kei_stat_jdg"));					// サービス契約ステータス（審査）
			jdgLst.add((String)hapietListMap.get("svc_kei_stat_nm_jdg"));				// サービス契約ステータス名（審査）
			jdgLst.add((String)hapietListMap.get("kaisen_place_pcd"));					// 利用場所郵便番号（審査）
			jdgLst.add((String)hapietListMap.get("kaisen_place_ad"));					// 利用場所住所（審査）
			jdgLst.add((String)hapietListMap.get("point_kei_skekka_cd"));				// 審査結果
			jdgLst.add((String)hapietListMap.get("point_kei_skekka_rsn_cd"));			// 審査理由
			jdgLst.add((String)hapietListMap.get("hapiepoint_kei_hsk_biko"));			// 補正メモ
			jdgLst.add((String)hapietListMap.get("sksn_trgt_svkei_skekka_cd_jdg"));		// 個別審査結果（審査）
			jdgLst.add((String)hapietListMap.get("sksn_trgt_svkei_ska_rsn_cd"));		// 個別審査理由
			jdgLst.add((String)hapietListMap.get("sksn_tg_svkei_hosei_memo"));			// 個別補正メモ
			workList.add(jdgLst);
		}
		
		// 今回審査内容のリストを取得
		konkaiJdgLst = getSortList(workList);
		
		// 前回審査内容に関連する項目をリストに格納
		workList = new ArrayList();
		for(int i = 0; i < hapietList.size(); i++)
		{
			HashMap hapietListMap = (HashMap)hapietList.get(i);
			ArrayList jdgLst = new ArrayList();
			
			jdgLst.add((String)hapietListMap.get("hapie_no"));						// はぴｅ番号（既契約）［ソートキー］
			jdgLst.add((String)hapietListMap.get("sksn_trgt_svc_kei_no"));			// ネットお客様ＩＤ（既契約）［ソートキー］
			jdgLst.add((String)hapietListMap.get("hapie_point_kei_stat"));			// はぴe契約ステータス（既契約）
			jdgLst.add((String)hapietListMap.get("hapie_point_kei_stat_nm"));		// はぴｅ契約ステータス名（既契約）
			jdgLst.add((String)hapietListMap.get("sksn_trgt_svkei_skekka_cd"));		// はぴｅＩＤ２個別審査結果コード
			jdgLst.add((String)hapietListMap.get("sksn_trgt_svkei_skekka_nm"));		// はぴｅＩＤ２個別審査結果
			jdgLst.add((String)hapietListMap.get("svc_kei_stat"));					// サービス契約ステータス（既契約）
			jdgLst.add((String)hapietListMap.get("svc_kei_stat_nm"));				// サービス契約ステータス名（既契約）
			jdgLst.add((String)hapietListMap.get("hapie_member_pcd"));				// 利用場所郵便番号（既契約）
			jdgLst.add((String)hapietListMap.get("hapie_member_ad"));				// 利用場所住所（既契約）
			workList.add(jdgLst);
		}
		
		// 前回審査内容のリストを取得
		zenkaiJdgLst = getSortList(workList);
		
		// 前回審査内容のリストをはぴｅ番号単位に分割
		for(int i = 0; i < zenkaiJdgLst.size(); i++)
		{
			ArrayList wEditMap = (ArrayList)zenkaiJdgLst.get(i);
			
			// はぴｅ番号
			wNewBreakKeyHapieNo = (String)wEditMap.get(0);
			
//v25.00.03 2016/07/25 Mod Start
			if (wNewBreakKeyHapieNo.isEmpty())
			{
				continue;
			}
			// コントロールブレイク判定（１件目は無条件に退避）
//			if (wNewBreakKeyHapieNo.equals(wOldBreakKeyHapieNo) || i == 0)
			if (wNewBreakKeyHapieNo.equals(wOldBreakKeyHapieNo) || wOldBreakKeyHapieNo.isEmpty())
//v25.00.03 2016/07/25 Mod End
			{
				// 同一はぴｅ番号は格納
				wEditList.add(wEditMap);
				wOldBreakKeyHapieNo = wNewBreakKeyHapieNo;
			}
			else
			{
				// はぴｅ番号がブレイクした
				wCustomList = hapieZenkaiKonkaiEdit(konkaiJdgLst , wEditList);
				
				// カスタマイズ結果をリストに格納する
				for(int j = 0; j < wCustomList.size(); j++)
				{
					rsltList.add(wCustomList.get(j));
				}
				// 初期化
				wCustomList = new ArrayList();
				wEditList = new ArrayList();
				wOldBreakKeyHapieNo = wNewBreakKeyHapieNo;
				
				// 格納
				wEditList.add(wEditMap);
			}
		}
		
		// 編集中のリストを処理する
		wCustomList = hapieZenkaiKonkaiEdit(konkaiJdgLst , wEditList);
		
		// カスタマイズ結果をリストに格納する
		for(int j = 0; j < wCustomList.size(); j++)
		{
			rsltList.add(wCustomList.get(j));
		}
		
		return rsltList;
	}

	/**
	 * 今回審査内容と前回審査内容を、お客様IDで結合させた形に成型します。
	 * @param  ArrayList：今回審査内容リスト
	 * @param  ArrayList：前回審査内容リスト
	 * @return ArrayList：成型結果リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList hapieZenkaiKonkaiEdit(ArrayList konkaiJdgLst , ArrayList zenkaiJdgLst)
	{
		// 内部使用変数の定義
		int konkaiCnt = 0;
		int zenkaiCnt = 0;
		ArrayList rsltList = new ArrayList();
		ArrayList lastRsltList = new ArrayList();
		ArrayList konkaiList = new ArrayList();
		ArrayList zenkaiList = new ArrayList();
		ArrayList wList = new ArrayList();
		ArrayList wCheckList = new ArrayList();
		ArrayList mainList = new ArrayList();
		String konkaiSvcKeiNo = "";
		String zenkaiSvcKeiNo = "";
		String wMaxSvcKeiNo = "XXXXXXXXXX";
		HashMap wEditMap = new HashMap();
		
		// 共通部分のリストを作成
		wList = (ArrayList)konkaiJdgLst.get(0);
		mainList.add((String)wList.get(0));						// はぴｅ番号（審査）
		mainList.add((String)wList.get(2));						// ｅｏＩＤ
		mainList.add((String)wList.get(3));						// 契約者名
		mainList.add((String)wList.get(4));						// 郵便番号（審査）
		mainList.add((String)wList.get(5));						// 住所（審査）
		mainList.add((String)wList.get(12));					// 審査結果
		mainList.add((String)wList.get(13));					// 審査理由
		mainList.add((String)wList.get(14));					// 補正メモ
		
		// 前回審査内容が存在しない（はぴｅ番号が取得できない）場合の制御
//v25.00.03 2016/07/25 Mod Start
//		wCheckList = (ArrayList)zenkaiJdgLst.get(0);
//		if (((String)wCheckList.get(0)).length() == 0)
//		{
//			zenkaiSvcKeiNo = wMaxSvcKeiNo;
//		}
		if (zenkaiJdgLst.size() == 0)
		{
			zenkaiSvcKeiNo = wMaxSvcKeiNo;
		}
		else 
		{
			wCheckList = (ArrayList)zenkaiJdgLst.get(0);
			if (((String)wCheckList.get(0)).length() == 0)
			{
				zenkaiSvcKeiNo = wMaxSvcKeiNo;
			}
		}
//v25.00.03 2016/07/25 Mod End
		
		// 今回審査内容と前回審査内容がなくなるまで処理を繰り返す
		while (!(konkaiSvcKeiNo == wMaxSvcKeiNo) || !(zenkaiSvcKeiNo == wMaxSvcKeiNo))	// 処理対象がなくなった
		{
			// 審査内容のサービス契約番号を取得する
			if (!wMaxSvcKeiNo.equals(konkaiSvcKeiNo))
			{
				// 処理対象がなくなっていない
				konkaiList = (ArrayList)konkaiJdgLst.get(konkaiCnt);
				konkaiSvcKeiNo = (String)konkaiList.get(1);				// ネットお客様ＩＤ（審査）
			}
			
			if (!wMaxSvcKeiNo.equals(zenkaiSvcKeiNo))
			{
				// 処理対象がなくなっていない
				zenkaiList = (ArrayList)zenkaiJdgLst.get(zenkaiCnt);
				zenkaiSvcKeiNo = (String)zenkaiList.get(1);				// ネットお客様ＩＤ（既契約）
			}
			
			// お客様ＩＤが一致
			if (konkaiSvcKeiNo.equals(zenkaiSvcKeiNo))						// konkaiSvcKeiNo = zenkaiSvcKeiNo ⇒ 一致
			{
				wEditMap = new HashMap();
				// 【今回の申請内容】の編集
				wEditMap = setKonkaiJdgInfo_01(wEditMap , mainList);
				
				// 【申請されたeoIDに紐付く情報】の編集
				wEditMap = setKonkaiJdgInfo_02(wEditMap , konkaiList);
				
				// 【申請時点でeoIDに紐付いているはぴe情報】の編集
				wEditMap = setZenkaiJdgInfo(wEditMap , zenkaiList);
				
				// 【審査結果（一次）】の編集
				wEditMap = setKonkaiJdgInfo_03(wEditMap , konkaiList);
				
				// 編集結果を格納する
				rsltList.add(wEditMap);
				
				// カウンタを増やす
				konkaiCnt++;
				
				// 最終データの制御
				if (konkaiCnt >= konkaiJdgLst.size())
				{
					konkaiSvcKeiNo = wMaxSvcKeiNo;
				}
				
				zenkaiCnt++;
				
				// 最終データの制御
				if (zenkaiCnt >= zenkaiJdgLst.size())
				{
					zenkaiSvcKeiNo = wMaxSvcKeiNo;
				}
			}
			else if (konkaiSvcKeiNo.compareTo(zenkaiSvcKeiNo) < 0)			// konkaiSvcKeiNo < zenkaiSvcKeiNo ⇒ 今回のみ
			{
				wEditMap = new HashMap();
				// 【今回の申請内容】の編集
				wEditMap = setKonkaiJdgInfo_01(wEditMap , mainList);
				
				// 【申請されたeoIDに紐付く情報】の編集
				wEditMap = setKonkaiJdgInfo_02(wEditMap , konkaiList);
				
				// 【申請時点でeoIDに紐付いているはぴe情報】（空白）の編集
				wEditMap = setZenkaiJdgInfo_Space(wEditMap);
				
				// 【審査結果（一次）】の編集
				wEditMap = setKonkaiJdgInfo_03(wEditMap , konkaiList);
				
				// 編集結果を格納する
				rsltList.add(wEditMap);
				
				// カウンタを増やす
				konkaiCnt++;
				
				// 最終データの制御
				if (konkaiCnt >= konkaiJdgLst.size())
				{
					konkaiSvcKeiNo = wMaxSvcKeiNo;
				}
			}
			else															// konkaiSvcKeiNo > zenkaiSvcKeiNo ⇒ 前回のみ
			{
				wEditMap = new HashMap();
				// 【今回の申請内容】の編集
				wEditMap = setKonkaiJdgInfo_01(wEditMap , mainList);
				
				// 【申請されたeoIDに紐付く情報】（空白）の編集
				wEditMap = setKonkaiJdgInfo_02_Space(wEditMap);
				
				// 【申請時点でeoIDに紐付いているはぴe情報】の編集
				wEditMap = setZenkaiJdgInfo(wEditMap , zenkaiList);
				
				// 【審査結果（一次）】（空白）の編集
				wEditMap = setKonkaiJdgInfo_03_Space(wEditMap);
				
				// 編集結果を格納する
				rsltList.add(wEditMap);
				
				// カウンタを増やす
				zenkaiCnt++;
				
				// 最終データの制御
				if (zenkaiCnt >= zenkaiJdgLst.size())
				{
					zenkaiSvcKeiNo = wMaxSvcKeiNo;
				}
			}
		}
		
		// 今回申請内容のお客様ＩＤでソートする
		lastRsltList = sortLast(rsltList);
		
		
		return lastRsltList;
	}

	/**
	 * 【今回の申請内容】を編集します。
	 * @param  HashMap：リスト
	 * @param  ArrayList：今回審査内容リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setKonkaiJdgInfo_01(HashMap editMapList , ArrayList konkaiList)
	{
		editMapList.put("hapie_no_jdg", (String)konkaiList.get(0));					// はぴｅ番号（審査）
		editMapList.put("hapiek_jdg_req_ji_sti_id", (String)konkaiList.get(1));		// ｅｏＩＤ
		editMapList.put("hapie_member_card_nm", (String)konkaiList.get(2));			// 契約者名
		editMapList.put("hapie_member_pcd_jdg", (String)konkaiList.get(3));			// 郵便番号（審査）
		editMapList.put("hapie_member_ad_jdg", (String)konkaiList.get(4));			// 住所（審査）
		editMapList.put("point_kei_skekka_cd", (String)konkaiList.get(5));			// 審査結果
		editMapList.put("point_kei_skekka_rsn_cd", (String)konkaiList.get(6));		// 審査理由
		editMapList.put("hapiepoint_kei_hsk_biko", (String)konkaiList.get(7));		// 補正メモ
		
		return editMapList;
	}

	/**
	 * 【申請されたeoIDに紐付く情報】を編集します。
	 * @param  HashMap：リスト
	 * @param  ArrayList：今回審査内容リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setKonkaiJdgInfo_02(HashMap editMapList , ArrayList konkaiList)
	{
		editMapList.put("svc_kei_no_jdg", (String)konkaiList.get(1));					// ネットお客様ＩＤ（審査）
		editMapList.put("sysid", (String)konkaiList.get(6));							// ＳＹＳＩＤ
		editMapList.put("cust_nm", (String)konkaiList.get(7));							// 契約者名（顧客）
		editMapList.put("svc_kei_stat_jdg", (String)konkaiList.get(8));					// サービス契約ステータス（審査）
		editMapList.put("svc_kei_stat_nm_jdg", (String)konkaiList.get(9));				// サービス契約ステータス名（審査）
		editMapList.put("kaisen_place_pcd", (String)konkaiList.get(10));				// 利用場所郵便番号（審査）
		editMapList.put("kaisen_place_ad", (String)konkaiList.get(11));					// 利用場所住所（審査）
		
		return editMapList;
	}

	/**
	 * 【申請時点でeoIDに紐付いているはぴe情報】を編集します。
	 * @param  HashMap：リスト
	 * @param  ArrayList：前回審査内容リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setZenkaiJdgInfo(HashMap editMapList , ArrayList zenkaiList)
	{
		editMapList.put("hapie_no", (String)zenkaiList.get(0));						// はぴｅ番号（既契約）
		editMapList.put("sksn_trgt_svc_kei_no", (String)zenkaiList.get(1));			// ネットお客様ＩＤ（既契約）
		editMapList.put("hapie_point_kei_stat", (String)zenkaiList.get(2));			// はぴe契約ステータス（既契約）
		editMapList.put("hapie_point_kei_stat_nm", (String)zenkaiList.get(3));		// はぴｅ契約ステータス名（既契約）
		editMapList.put("sksn_trgt_svkei_skekka_cd", (String)zenkaiList.get(4));	// はぴｅＩＤ２個別審査結果コード
		editMapList.put("sksn_trgt_svkei_skekka_nm", (String)zenkaiList.get(5));	// はぴｅＩＤ２個別審査結果
		editMapList.put("svc_kei_stat", (String)zenkaiList.get(6));					// サービス契約ステータス（既契約）
		editMapList.put("svc_kei_stat_nm", (String)zenkaiList.get(7));				// サービス契約ステータス名（既契約）
		editMapList.put("hapie_member_pcd", (String)zenkaiList.get(8));				// 利用場所郵便番号（既契約）
		editMapList.put("hapie_member_ad", (String)zenkaiList.get(9));				// 利用場所住所（既契約）
		
		return editMapList;
	}

	/**
	 * 【審査結果（一次）】を編集します。
	 * @param  HashMap：リスト
	 * @param  ArrayList：今回審査内容リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setKonkaiJdgInfo_03(HashMap editMapList , ArrayList konkaiList)
	{
		editMapList.put("sksn_trgt_svkei_skekka_cd_jdg", (String)konkaiList.get(15));		// 個別審査結果（審査）
		editMapList.put("sksn_trgt_svkei_ska_rsn_cd", (String)konkaiList.get(16));			// 個別審査理由
		editMapList.put("sksn_tg_svkei_hosei_memo", (String)konkaiList.get(17));			// 個別補正メモ
		
		return editMapList;
	}

	/**
	 * 【申請されたeoIDに紐付く情報】（空白）を編集します。
	 * @param  HashMap：リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setKonkaiJdgInfo_02_Space(HashMap editMapList)
	{
		editMapList.put("svc_kei_no_jdg", "");					// ネットお客様ＩＤ（審査）
		editMapList.put("sysid", "");							// ＳＹＳＩＤ
		editMapList.put("cust_nm", "");							// 契約者名（顧客）
		editMapList.put("svc_kei_stat_jdg", "");				// サービス契約ステータス（審査）
		editMapList.put("svc_kei_stat_nm_jdg", "");				// サービス契約ステータス名（審査）
		editMapList.put("kaisen_place_pcd", "");				// 利用場所郵便番号（審査）
		editMapList.put("kaisen_place_ad", "");					// 利用場所住所（審査）
		
		return editMapList;
	}

	/**
	 * 【申請時点でeoIDに紐付いているはぴe情報】（空白）を編集します。
	 * @param  HashMap：リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setZenkaiJdgInfo_Space(HashMap editMapList)
	{
		editMapList.put("hapie_no", "");						// はぴｅ番号（既契約）
		editMapList.put("sksn_trgt_svc_kei_no", "");			// ネットお客様ＩＤ（既契約）
		editMapList.put("hapie_point_kei_stat", "");			// はぴe契約ステータス（既契約）
		editMapList.put("hapie_point_kei_stat_nm", "");			// はぴｅ契約ステータス名（既契約）
		editMapList.put("sksn_trgt_svkei_skekka_cd", "");		// はぴｅＩＤ２個別審査結果コード
		editMapList.put("sksn_trgt_svkei_skekka_nm", "");		// はぴｅＩＤ２個別審査結果
		editMapList.put("svc_kei_stat", "");					// サービス契約ステータス（既契約）
		editMapList.put("svc_kei_stat_nm", "");					// サービス契約ステータス名（既契約）
		editMapList.put("hapie_member_pcd", "");				// 利用場所郵便番号（既契約）
		editMapList.put("hapie_member_ad", "");					// 利用場所住所（既契約）
		
		return editMapList;
	}

	/**
	 * 【審査結果（一次）】（空白）を編集します。
	 * @param  HashMap：リスト
	 * @return HashMap：リスト
	 */
	@SuppressWarnings("unchecked")
	private HashMap setKonkaiJdgInfo_03_Space(HashMap editMapList)
	{
		editMapList.put("sksn_trgt_svkei_skekka_cd_jdg", "");		// 個別審査結果（審査）
		editMapList.put("sksn_trgt_svkei_ska_rsn_cd", "");			// 個別審査理由
		editMapList.put("sksn_tg_svkei_hosei_memo", "");			// 個別補正メモ
		
		return editMapList;
	}

	/**
	 * ArrayListをソートし、重複データを削除した結果を返却します。
	 * @param  ArrayList：リスト
	 * @return ArrayList：リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getSortList(ArrayList wArrayList)
	{
		// 内部使用変数の定義
		ArrayList rsltList = new ArrayList();
		ArrayList wBeforeList = new ArrayList();
		ArrayList wAfterList = new ArrayList();
		String wBeforeKey = "";
		String wAfterKey = "";
		String wNewBreakKey = "";
		String wOldBreakKey = "";
		
		// ソート
		for(int i = 0; i < wArrayList.size() - 1; i++)
		{
			for(int j = i + 1; j < wArrayList.size(); j++)
			{
				// ArrayListからArrayListを取り出す
				wBeforeList = (ArrayList)wArrayList.get(i);
				wAfterList = (ArrayList)wArrayList.get(j);
				
				// ソート対象項目を結合
				wBeforeKey = (String)wBeforeList.get(0) + (String)wBeforeList.get(1);
				wAfterKey = (String)wAfterList.get(0) + (String)wAfterList.get(1);
				
				if (wBeforeKey.compareTo(wAfterKey) > 0)			// konkaiSvcKeiNo > zenkaiSvcKeiNo ⇒ 昇順に並び替え
				{
					// 項目入れ替え
					wArrayList.set(i, wAfterList);
					wArrayList.set(j, wBeforeList);
				}
			}
			
		}
		
		// 重複データを１つにまとめる
		wOldBreakKey = "";
		for(int i = 0; i < wArrayList.size(); i++)
		{
			ArrayList wList = (ArrayList)wArrayList.get(i);
			wNewBreakKey = getBreakKey(wList);
			
			// キーブレイクした場合にリスト格納
			if (!wNewBreakKey.equals(wOldBreakKey))
			{
				rsltList.add(wList);
				wOldBreakKey = wNewBreakKey;
			}
		}
		
		return rsltList;
	}

	/**
	 * ArrayListの内容を文字列結合した結果を返却します。
	 * @param  ArrayList：リスト
	 * @return String：結合結果
	 */
	@SuppressWarnings("unchecked")
	private String getBreakKey(ArrayList wArrayList)
	{
		// 内部変数の初期化
		String rsltData = "";
		
		for(int i = 0; i < wArrayList.size(); i++)
		{
			rsltData = rsltData + wArrayList.get(i) + ",";
		}
		
		return rsltData;
	}

	/**
	 * ArrayListをリストをはぴｅ番号・はぴｅポイント契約番号・お客様ＩＤ単位にソートします。
	 * @param  ArrayList：リスト
	 * @return ArrayList：リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList sortFirst(ArrayList wArrayList)
	{
		// 内部使用変数の定義
		HashMap wBeforeList = new HashMap();
		HashMap wAfterList = new HashMap();
		String wBeforeKey = "";
		String wAfterKey = "";
		
		// ソート
		for(int i = 0; i < wArrayList.size() - 1; i++)
		{
			for(int j = i + 1; j < wArrayList.size(); j++)
			{
				// ArrayListからHashMapを取り出す
				wBeforeList = (HashMap)wArrayList.get(i);
				wAfterList = (HashMap)wArrayList.get(j);
				
				// ソート対象項目を結合（はぴｅポイント契約番号も後で追加する）
				wBeforeKey = (String)wBeforeList.get("hapie_no_jdg") + (String)wBeforeList.get("hapie_point_kei_no") + (String)wBeforeList.get("svc_kei_no_jdg");
				wAfterKey = (String)wAfterList.get("hapie_no_jdg") + (String)wAfterList.get("hapie_point_kei_no") + (String)wAfterList.get("svc_kei_no_jdg");
				
				if (wBeforeKey.compareTo(wAfterKey) > 0)			// wBeforeKey > wAfterKey ⇒ 昇順に並び替え
				{
					// 項目入れ替え
					wArrayList.set(i, wAfterList);
					wArrayList.set(j, wBeforeList);
				}
			}
		}
		
		return wArrayList;
	}

	/**
	 * ArrayListをソートします。
	 * @param  ArrayList：リスト
	 * @return ArrayList：リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList sortLast(ArrayList wArrayList)
	{
		// 内部使用変数の定義
		HashMap wBeforeList = new HashMap();
		HashMap wAfterList = new HashMap();
		String wBeforeKey = "";
		String wAfterKey = "";
		String wMaxSvcKeiNo = "XXXXXXXXXX";
		
		// ソート
		for(int i = 0; i < wArrayList.size() - 1; i++)
		{
			for(int j = i + 1; j < wArrayList.size(); j++)
			{
				// ArrayListからHashMapを取り出す
				wBeforeList = (HashMap)wArrayList.get(i);
				wAfterList = (HashMap)wArrayList.get(j);
				
				// ソート対象項目を結合
				wBeforeKey = (String)wBeforeList.get("svc_kei_no_jdg");
				if (wBeforeKey == "")
				{
					wBeforeKey =  wMaxSvcKeiNo;
				}
				
				wAfterKey = (String)wAfterList.get("svc_kei_no_jdg");
				if (wAfterKey == "")
				{
					wAfterKey =  wMaxSvcKeiNo;
				}
				
				if (wBeforeKey.compareTo(wAfterKey) > 0)			// konkaiSvcKeiNo > zenkaiSvcKeiNo ⇒ 昇順に並び替え
				{
					// 項目入れ替え
					wArrayList.set(i, wAfterList);
					wArrayList.set(j, wBeforeList);
				}
			}
		}
		
		return wArrayList;
	}

	//v25.00.01 2016/05/11 Add End
}