/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0704_KKSV0704OPDBMapper
*	ソースファイル名：KKSV0704_KKSV0704OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年09月23日
*＜機能概要＞
*	BP（回線内訳紐付変更登録初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v4.00.00	2012/09/23	FJ)磯俣		新規作成
*   v4.00.01	2012/11/06	FJ)磯俣		IT1-1993(併合元に同一情報が出る)
*   v4.00.02	2012/11/06	FJ)磯俣		IT1-2105(回線に紐付く元情報を取得)
*   v4.00.03	2012/12/03	FJ)磯俣		IT2-1934(サービス毎に最終更新年月日取得)
*   v4.00.04	2012/12/25	FJ)磯俣		IT2-2565(ステータスにより取得する)
*   v4.00.05	2013/02/18	FJ)磯俣		ST2-2013-902(住所チェック用項目取得)
*   v6.00.00	2013/12/13	FJ)磯俣	   【OM-2013-0004356】整理番号を取得
*   v7.00.00	2014/03/13	FJ)磯俣	   【OM-2014-0000887】締結済時のチェック項目取得追加
*
**********************************************************************/
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.JPCUtilCommon;
import eo.common.util.JZMCommonUtil;
import eo.web.webview.common.JKKCommonConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class KKSV0704_KKSV0704OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public KKSV0704_KKSV0704OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV070401SC(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);

		// SYSID → お客様一意照会マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → お客様一意照会マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		
		outputMap.put("KKSV070401SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV070402SC(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);

		// サービス契約番号 → サービス契約回線内訳一覧照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		

		outputMap.put("KKSV070402SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV070403SC(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);

		// サービス契約番号 → サービス契約一意照会マップ.ＫＥＹ＿サービス契約番号
		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// 基準日 → サービス契約一意照会マップ.ＫＥＹ＿業務パラメータＩＤ
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));
		
		
		outputMap.put("KKSV070403SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV070404CC(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);
		
		// 料金グループのネット・テレビ・電話のコードを編集する
		StringBuilder prcGroupCd = new StringBuilder();
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_02).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_03).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_04).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_10).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_11).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_12).append(",");
		prcGroupCd.append(JKKCommonConst.PRC_GRP_CD_13);

		// サービス契約番号 → 併合先回線内訳一覧検索マップ.ＫＥＹ＿サービス契約番号
//		parentMap.put("key_svc_kei_no", bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
		// SYSID → 併合先回線内訳一覧検索マップ.ＫＥＹ＿SYSID
		parentMap.put("key_sysid", bean[0].sendMessageString("ＳＹＳＩＤ", X31CWebConst.DATABEAN_GET_VALUE));
		// 料金グループコード → 併合先回線内訳一覧検索マップ.ＫＥＹ＿料金グループコード
		parentMap.put("key_prc_grp_cd", prcGroupCd.toString());
		// 基準日 → 併合先回線内訳一覧検索マップ.ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", bean[0].sendMessageString("基準日", X31CWebConst.DATABEAN_GET_VALUE));

		
		outputMap.put("KKSV070404CC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV070401SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV070401SC")){
			parentMap = (HashMap)outputMap.get("KKSV070401SC");
		}

		
		// eoID ← お客様一意照会マップ.eoID
		bean[0].sendMessageString("ｅｏＩＤ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("eoid"));
		// お客様カナ名 ← お客様一意照会マップ.お客様カナ名
		bean[0].sendMessageString("お客様カナ名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_kana"));
		// お客様名 ← お客様一意照会マップ.お客様名
		bean[0].sendMessageString("お客様名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("cust_nm"));
		


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV070402SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV070402SC")){
			parentMap = (HashMap)outputMap.get("KKSV070402SC");
		}

		
		// サービス契約回線内訳番号 ← サービス契約回線内訳一覧照会マップ.サービス契約回線内訳番号
		bean[0].sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("svc_kei_kaisen_ucwk_no"));
		// 回線場所住所コード ← サービス契約回線内訳一覧照会マップ.回線場所住所コード
		bean[0].sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd((String)parentMap.get("kaisen_place_ad_cd")));
		// 回線場所住所 ← サービス契約回線内訳一覧照会マップ.回線場所住所
		bean[0].sendMessageString("回線場所住所", X31CWebConst.DATABEAN_SET_VALUE, setAdInfo(parentMap));
		// 使用開始年月日 ← サービス契約回線内訳一覧照会マップ.使用開始年月日
		bean[0].sendMessageString("使用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("use_staymd"));
		
		// 回線場所番地号 ← サービス契約回線内訳一覧照会マップ.回線場所番地号
		bean[0].sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kaisen_place_bnchigo"));
		// 回線場所住所建物名 ← サービス契約回線内訳一覧照会マップ.回線場所住所補記・建物名
		bean[0].sendMessageString("回線場所住所建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kaisen_place_adrttm"));
		// 回線場所住所部屋番号 ← サービス契約回線内訳一覧照会マップ.回線場所住所補記・部屋番号
		bean[0].sendMessageString("回線場所住所部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kaisen_place_adrrm"));


		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV070403SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV070403SC")){
			parentMap = (HashMap)outputMap.get("KKSV070403SC");
		}

		
		// 料金グループ名 ← サービス契約回線内訳一覧照会.料金グループ名
		bean[0].sendMessageString("料金グループ名", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("prc_grp_cd_nm"));
		// 最終更新年月日時分秒 ← お客様一意照会マップ.最終更新年月日時分秒
		bean[0].sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("last_upd_dtm"));

		
		
		return bean;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：回線内訳紐付変更登録
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getKKSV070404CC(X31SDataBeanAccess[] bean, HashMap outputMap, boolean authority){

		HashMap parentMap = null;
		if(outputMap.containsKey("KKSV070404CC")){
			parentMap = (HashMap)outputMap.get("KKSV070404CC");
		}

	
		ArrayList childList = null;
		// 背景色用変数
		int color = -1;
		// サービス契約回線内訳番号退避用変数
		String uchiwkNoBk = "";
		
		// 併合元のサービス契約回線内訳番号を取得する
		HashMap kksv070402scMap = null;
		if(outputMap.containsKey("KKSV070402SC")){
			kksv070402scMap = (HashMap)outputMap.get("KKSV070402SC");
		}
		
		// サービス契約回線内訳番号 ← サービス契約回線内訳一覧照会マップ.サービス契約回線内訳番号
		String svcKaisenUwMt =  (String)kksv070402scMap.get("svc_kei_kaisen_ucwk_no");
		// エラーフラグ
		String errFlg =  (String)kksv070402scMap.get("err_flg");
		
// ++++++++++ v7.00.00 変更開始 ++++++++++
		// サービス契約ステータス状態フラグ
		boolean statFlg = false;
// ++++++++++ v7.00.00 変更終了 ++++++++++
		
		X31SDataBeanAccessArray listKKSV070404CC_heigo_sk_kisnuw_list = bean[0].getDataBeanArray("併合先回線内訳明細リスト");
		listKKSV070404CC_heigo_sk_kisnuw_list.clearArray();
		childList = null;
		if(listKKSV070404CC_heigo_sk_kisnuw_list != null && parentMap != null && parentMap.containsKey("EKK0251B006CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0251B006CBSMsg1List");
			
			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				
				HashMap childMap = (HashMap)childList.get(i);
				
				// サービス契約回線内訳番号
				String repSvcKaisenUwSk =  (String)childMap.get("svc_kei_kaisen_ucwk_no");
				
				if(repSvcKaisenUwSk != null && (svcKaisenUwMt != null && !svcKaisenUwMt.equals(repSvcKaisenUwSk)))
				{
					
					
					subbean = listKKSV070404CC_heigo_sk_kisnuw_list.addDataBean();
					
					// 併合先回線内訳明細リスト.サービス契約回線内訳番号 ← 併合先回線内訳一覧検索マップ.サービス契約回線内訳番号
					if (childMap != null) {
						subbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_kaisen_ucwk_no"));
					} else {
						subbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.サービス契約番号 ← 併合先回線内訳一覧検索マップ.サービス契約番号
					if (childMap != null) {
						subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_no"));
					} else {
						subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.料金グループ名 ← 併合先回線内訳一覧検索マップ.料金グル―プ名
					if (childMap != null) {
						subbean.sendMessageString("料金グループ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_nm"));
					} else {
						subbean.sendMessageString("料金グループ名", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.料金グループコード ← 併合先回線内訳一覧検索マップ.料金グループコード
					if (childMap != null) {
						subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd"));
					} else {
						subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.回線場所住所コード ← 併合先回線内訳一覧検索マップ.回線場所郵便住所コード
					if (childMap != null) {
						subbean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd((String)childMap.get("kaisen_place_ad_cd")));
					} else {
						subbean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.回線場所住所 ← 併合先回線内訳一覧検索マップ.回線場所都道府県名
					if (childMap != null) {
						subbean.sendMessageString("回線場所住所", X31CWebConst.DATABEAN_SET_VALUE, setAdInfo(childMap));
					} else {
						subbean.sendMessageString("回線場所住所", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
					// 併合先回線内訳明細リスト.回線場所番地号 ← 併合先回線内訳一覧検索マップ.回線場所番地号
					if (childMap != null) {
						subbean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_bnchigo"));
					} else {
						subbean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.回線場所住所建物名 ← 併合先回線内訳一覧検索マップ.回線場所住所補記・建物名
					if (childMap != null) {
						subbean.sendMessageString("回線場所住所建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrttm"));
					} else {
						subbean.sendMessageString("回線場所住所建物名", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.回線場所住所部屋番号 ← 併合先回線内訳一覧検索マップ.回線場所住所補記・部屋番号
					if (childMap != null) {
						subbean.sendMessageString("回線場所住所部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm"));
					} else {
						subbean.sendMessageString("回線場所住所部屋番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
					// 併合先回線内訳明細リスト.最終更新年月日時分秒 ← 併合先回線内訳一覧検索マップ.最終更新年月日時分秒
					if (childMap != null) {
						subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
					} else {
						subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 併合先回線内訳明細リスト.使用開始年月日 ← 併合先回線内訳一覧検索マップ.使用開始年月日
					if (childMap != null) {
						subbean.sendMessageString("使用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("use_staymd"));
					} else {
						subbean.sendMessageString("使用開始年月日", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
					
					// サービス契約ステータス
					if (childMap != null) {
						subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
						
// ++++++++++ v7.00.00 変更開始 ++++++++++
						// サービス提供中の場合
						if("100".equals(childMap.get("svc_kei_stat")))
						{
							statFlg = true;
						}
// ++++++++++ v7.00.00 変更終了 ++++++++++
					} else {
						subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// サービスコード
					if (childMap != null) {
						subbean.sendMessageString("サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd"));
					} else {
						subbean.sendMessageString("サービスコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 料金コースコード
					if (childMap != null) {
						subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
					} else {
						subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 料金プランコード
					if (childMap != null) {
						subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
					} else {
						subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					// 整理番号
					if (childMap != null) {
						subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no"));
					} else {
						subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, new String());
					}
					
					// ラジオボタンSPAN用フラグ
					String selRadioFlg = "";
					
					// 同一のサービス契約回線内訳番号でない場合
					if(!uchiwkNoBk.equals(repSvcKaisenUwSk))
					{
						selRadioFlg = sameUchiwkNo(childList, repSvcKaisenUwSk);
						
						// 明細でSPAN表示するための設定
						subbean.sendMessageString("選択", X31CWebConst.DATABEAN_SET_VALUE, selRadioFlg);
						
						color++;
					}
					else
					{
						// 明細でSPAN表示するための設定
						subbean.sendMessageString("選択", X31CWebConst.DATABEAN_SET_VALUE, "0");
						
						if(!authority){
							color++;
						}
					}
					
					// 背景色設定
					if (color % 2 == 1)
					{
						subbean.sendMessageString("背景色", X31CWebConst.DATABEAN_SET_VALUE, "even");
					}
					else
					{
						subbean.sendMessageString("背景色", X31CWebConst.DATABEAN_SET_VALUE, "odd");
					}
					
					// サービス契約回線内訳番号を退避する
					uchiwkNoBk = repSvcKaisenUwSk;
				}
			}
		}
		
		// 併合先がない場合のフラグ設定
		if(listKKSV070404CC_heigo_sk_kisnuw_list == null || listKKSV070404CC_heigo_sk_kisnuw_list.getCount() == 0)
		{
			parentMap.put("err_flg", "E");
		}
// ++++++++++ v7.00.00 変更開始 ++++++++++
		else
		{
			// サービス提供中のデータがなければエラー
			if(!statFlg)
			{
				parentMap.put("err_flg", "E");
			}
			// サービス契約ステータス
			bean[0].sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("svc_kei_stat"));
			// 事案件ステータス
			bean[0].sendMessageString("工事案件ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kojiak_stat"));

		}
// ++++++++++ v7.00.00 変更終了 ++++++++++
		
		// 初期値設定
		// サービス契約番号
		bean[0].sendMessageString("サービス契約番号＿２", X31CWebConst.DATABEAN_SET_VALUE, "");
		
		// 料金グループ名
		bean[0].sendMessageString("料金グループ名＿２", X31CWebConst.DATABEAN_SET_VALUE, "");

		// 遷移元パラメタサービス契約番号
		String prmSvckei = bean[0].sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE);
		
		// 表示している併合元情報以外の内訳情報があればその他の併合元情報として確認画面へ表示する
		X31SDataBeanAccessArray listKKSV070404CC_heigo_mt_kisnuw_info_list = bean[0].getDataBeanArray("併合元回線内訳情報リスト");
		listKKSV070404CC_heigo_mt_kisnuw_info_list.clearArray();
		childList = null;
		
		
		// 併合元カウント
		int mtCount = 0;
		
		
		
		if(listKKSV070404CC_heigo_mt_kisnuw_info_list != null && parentMap != null && parentMap.containsKey("EKK0251B006CBSMsg1List")){
			childList = (ArrayList)parentMap.get("EKK0251B006CBSMsg1List");

			color = 0;
			
			
			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				
				HashMap childMap = (HashMap)childList.get(i);
				
				if (childMap != null) {
					
					// サービス契約回線内訳番号
					String repSvcKaisenUwSk =  (String)childMap.get("svc_kei_kaisen_ucwk_no");
					
					// サービス契約番号
					String repSvcKeiNo =  (String)childMap.get("svc_kei_no");
					
					// 併合元情報で表示している同一回線内訳番号がある場合
					if(svcKaisenUwMt != null && svcKaisenUwMt.equals(repSvcKaisenUwSk))
					{
						subbean = listKKSV070404CC_heigo_mt_kisnuw_info_list.addDataBean();
						
						// 併合元回線内訳情報リスト.サービス契約回線内訳番号 ← 併合先回線内訳一覧検索マップ.サービス契約回線内訳番号
						subbean.sendMessageString("サービス契約回線内訳番号", X31CWebConst.DATABEAN_SET_VALUE, repSvcKaisenUwSk);
						
						// 併合元回線内訳情報リスト.サービス契約番号 ← 併合先回線内訳一覧検索マップ.サービス契約番号
						subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_SET_VALUE, repSvcKeiNo);
						
						// 併合元回線内訳情報リスト.料金グループ名 ← 併合先回線内訳一覧検索マップ.料金グル―プ名
						subbean.sendMessageString("料金グループ名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_nm"));
						
						// 併合元回線内訳情報リスト.料金グループコード ← 併合先回線内訳一覧検索マップ.料金グループコード
						subbean.sendMessageString("料金グループコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_cd"));
						
						// 併合元回線内訳情報リスト.回線場所住所コード ← 併合先回線内訳一覧検索マップ.回線場所郵便住所コード
						subbean.sendMessageString("回線場所住所コード", X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.hyhunAdCd((String)childMap.get("kaisen_place_ad_cd")));
						
						// 併合元回線内訳情報リスト.回線場所住所 ← 併合先回線内訳一覧検索マップ.回線場所都道府県名
						subbean.sendMessageString("回線場所住所", X31CWebConst.DATABEAN_SET_VALUE, setAdInfo(childMap));
						
						// 回線場所番地号 ← サービス契約回線内訳一覧照会マップ.回線場所番地号
						subbean.sendMessageString("回線場所番地号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_bnchigo"));
						// 回線場所住所建物名 ← サービス契約回線内訳一覧照会マップ.回線場所住所補記・建物名
						subbean.sendMessageString("回線場所住所建物名", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrttm"));
						// 回線場所住所部屋番号 ← サービス契約回線内訳一覧照会マップ.回線場所住所補記・部屋番号
						subbean.sendMessageString("回線場所住所部屋番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kaisen_place_adrrm"));
						
						// 併合元回線内訳情報リスト.更新年月日時分秒 ← 併合先回線内訳一覧検索マップ.更新年月日時分秒
						subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
						
						// 併合元回線内訳情報リスト.サービス契約ステータス
						subbean.sendMessageString("サービス契約ステータス", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_kei_stat"));
						
						// 併合元回線内訳情報リスト.サービスコード
						subbean.sendMessageString("サービスコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("svc_cd"));
						
						// 併合元回線内訳情報リスト.料金コースコード
						subbean.sendMessageString("料金コースコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pcrs_cd"));
						
						// 併合元回線内訳情報リスト.料金プランコード
						subbean.sendMessageString("料金プランコード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("pplan_cd"));
						
						// 併合元回線内訳情報リスト.最終更新年月日時分秒
						subbean.sendMessageString("最終更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("ekk0081a010_last_upd_dtm"));
						
						// 併合元回線内訳情報リスト.整理番号
						subbean.sendMessageString("整理番号", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiri_no"));
						
						
						// ヘッダ部の１件目データでないサービスの場合
						if(!prmSvckei.equals(repSvcKeiNo))
						{
							// 併合元は最大2件しかない
							// サービス契約番号
							bean[0].sendMessageString("サービス契約番号＿２", X31CWebConst.DATABEAN_SET_VALUE, repSvcKeiNo);
							
							// 料金グループ名
							bean[0].sendMessageString("料金グループ名＿２", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("prc_grp_nm"));
						}
						
						// 背景色設定
						if (mtCount % 2 == 1)
						{
							subbean.sendMessageString("背景色", X31CWebConst.DATABEAN_SET_VALUE, "even");
						}
						else
						{
							subbean.sendMessageString("背景色", X31CWebConst.DATABEAN_SET_VALUE, "odd");
						}
						
						mtCount++;
						if(mtCount >= 3)
						{
							parentMap.put("err_flg", "EKB5380");
						}
					}
				}
			}
		}
		
		// 併合元情報がない場合エラーにする
		if(errFlg != null && "E_EKBC350".equals(errFlg) && mtCount == 0)
		{
			parentMap.put("err_flg", "E");
		}
		
		

		return bean;
	}

	/**
	 * 同一の内訳情報が存在しているかチェックを行います。
	 * <br>
	 * @param childList  検索結果情報
	 * @param String     サービス契約内訳番号
	 * <br>
	 * @return String 編集後文字列
	 */
	@SuppressWarnings("unchecked")
	private String sameUchiwkNo(ArrayList childList, String pUchiwkNo)
	{
		// 戻り値
		int count = 0;
		
		for(int i = 0; i < childList.size(); i++)
		{
			HashMap childMap = (HashMap)childList.get(i);
			
			// サービス契約回線内訳番号
			String repSvcKaisenUw =  (String)childMap.get("svc_kei_kaisen_ucwk_no");
			
			if(pUchiwkNo.equals(repSvcKaisenUw))
			{
				count++;
			}
		}
		
		
		
		return String.valueOf(count);
	}
	
	/**
	 * 契約者住所の編集をします。
	 * <br>
	 * @param map  編集元情報
	 * <br>
	 * @return String 編集後文字列
	 */
	@SuppressWarnings("unchecked")
	private String setAdInfo(HashMap childMap)
	{
		return JZMCommonUtil.getPtn01((String)childMap.get("kaisen_place_state_nm"),
											(String)childMap.get("kaisen_place_city_nm"),
											(String)childMap.get("kaisen_place_oaztsu_nm"),
											(String)childMap.get("kaisen_place_azcho_nm"),
											(String)childMap.get("kaisen_place_bnchigo"),
											(String)childMap.get("kaisen_place_adrttm"),
											(String)childMap.get("kaisen_place_adrrm"));
	}
}
