/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：TUSV0043_TUSV0043OPDBMapper
*	ソースファイル名：TUSV0043_TUSV0043OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年07月20日
*＜機能概要＞
*	BP（事業者間戻し一覧帳票出力）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/07/20	FJ)楠神		新規作成
*
**********************************************************************/
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.web.webview.TUW00901SF.TUW00901SFConst;
import eo.web.webview.common.JTUWebCommon;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class TUSV0043_TUSV0043OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public TUSV0043_TUSV0043OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：読込済事業者間調整依頼確認
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setTUSV004301CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		X31SDataBeanAccessArray arraybean = null;
		X31SDataBeanAccess beanTemp = null;
		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);


		beanTemp = bean[0];
		arraybean = beanTemp.getDataBeanArray("事業者間戻し一覧照会明細");
		if(parentMap.containsKey("ETU0031B010CBSMsg1List")){
			list = (ArrayList)parentMap.get("ETU0031B010CBSMsg1List");
		}else{
			list = new ArrayList();
		}
		if(arraybean != null && arraybean.getCount() > 0){
			for(int i = 0; i < arraybean.getCount(); i++){
				X31SDataBeanAccess subbean = arraybean.getDataBean(i);
				
				if(!subbean.sendMessageBoolean(TUW00901SFConst.CHOICE_01, X31CWebConst.DATABEAN_GET_VALUE))
				{
					continue;
				}
				
				HashMap childMap = null;
				if(list.size() -1 >= i){
					childMap = (HashMap)list.get(i);
				}else{
					childMap = new HashMap();
				}

				// 事業者間戻し一覧照会明細.事業者間戻し番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し番号
				if (subbean != null) {
					childMap.put("jgshak_rtrn_no", subbean.sendMessageString("事業者間戻し番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.世代登録年月日時分秒 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.世代登録年月日時分秒
				if (subbean != null) {
					childMap.put("gene_add_dtm", subbean.sendMessageString("世代登録年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.ＮＴＴ依頼オーダ種別コード → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.ＮＴＴ依頼オーダ種別コード
				if (subbean != null) {
					childMap.put("ntt_req_odr_sbt_cd", subbean.sendMessageString("ＮＴＴ依頼オーダ種別コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.ＮＴＴ依頼オーダ種別コード名称 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.ＮＴＴ依頼オーダ種別コード名称
				if (subbean != null) {
					childMap.put("ntt_req_odr_sbt_cd_nm", subbean.sendMessageString("ＮＴＴ依頼オーダ種別コード名称", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.調整識別番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.調整識別番号
				if (subbean != null) {
					childMap.put("adj_skbt_no", subbean.sendMessageString("調整識別番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.親オーダ調整識別番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.親オーダ調整識別番号
				if (subbean != null) {
					childMap.put("oya_order_adj_skbt_no", subbean.sendMessageString("親オーダ調整識別番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.事業者間戻し申込タイプコード → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し申込タイプコード
				if (subbean != null) {
					childMap.put("jgshak_rn_mskm_type_cd", subbean.sendMessageString("事業者間戻し申込タイプコード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.事業者間戻し申込タイプコード名称 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し申込タイプコード名称
				if (subbean != null) {
					childMap.put("jgshak_rn_mskm_type_cd_nm", subbean.sendMessageString("事業者間戻し申込タイプコード名称", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.お客様申込年月日 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.お客様申込年月日
				if (subbean != null) {
					childMap.put("cust_mskm_ymd", subbean.sendMessageString("お客様申込年月日", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.複数回線番号ポータビリティー数 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.複数回線番号ポータビリティー数
				if (subbean != null) {
					childMap.put("hukusu_kaisen_bmp_cnt", subbean.sendMessageString("複数回線番号ポータビリティー数", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.ＮＴＴ契約者カナ名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.ＮＴＴ契約者カナ名
				if (subbean != null) {
					childMap.put("ntt_ksh_kana", subbean.sendMessageString("ＮＴＴ契約者カナ名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.ＮＴＴ契約者名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.ＮＴＴ契約者名
				if (subbean != null) {
					childMap.put("ntt_keisha_nm", subbean.sendMessageString("ＮＴＴ契約者名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.日中連絡先電話番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.日中連絡先電話番号
				if (subbean != null) {
					childMap.put("dt_rrks_telno", subbean.sendMessageString("日中連絡先電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.ＮＴＴ契約電話回線番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.ＮＴＴ契約電話回線番号
				if (subbean != null) {
					childMap.put("ntt_kei_tel_kaisen_no", subbean.sendMessageString("ＮＴＴ契約電話回線番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.設置場所郵便番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.設置場所郵便番号
				if (subbean != null) {
					childMap.put("setplace_pcd", subbean.sendMessageString("設置場所郵便番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.設置場所都道府県市町村名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.設置場所都道府県市町村名
				if (subbean != null) {
					childMap.put("setplace_state_city_nm", subbean.sendMessageString("設置場所都道府県市町村名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.設置場所字丁目番地号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.設置場所字丁目番地号
				if (subbean != null) {
					childMap.put("setplace_azcho_bnchigo", subbean.sendMessageString("設置場所字丁目番地号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.設置場所補記・ビルフロア名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.設置場所補記・ビルフロア名
				if (subbean != null) {
					childMap.put("setplace_hoki_bflr_nm", subbean.sendMessageString("設置場所補記・ビルフロア名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.事業者間戻し工事希望年月日 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し工事希望年月日
				if (subbean != null) {
					childMap.put("jgsk_rn_koji_kibo_ymd", subbean.sendMessageString("事業者間戻し工事希望年月日", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.事業者間戻し工事希望時間帯コード → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し工事希望時間帯コード
				if (subbean != null) {
					childMap.put("jgsk_rn_koji_kibo_time_cd", subbean.sendMessageString("事業者間戻し工事希望時間帯コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.事業者間戻し工事希望時間帯コード名称 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.事業者間戻し工事希望時間帯コード名称
				if (subbean != null) {
					childMap.put("jgsk_rn_koji_kibo_time_cd_nm", subbean.sendMessageString("事業者間戻し工事希望時間帯コード名称", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.申込事業者申込年月日時分 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.申込事業者申込年月日時分
				if (subbean != null) {
					childMap.put("mskmjig_mskm_ymdhm", subbean.sendMessageString("申込事業者申込年月日時分", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.申込事業者コード → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.申込事業者コード
				if (subbean != null) {
					childMap.put("mskmjig_cd", subbean.sendMessageString("申込事業者コード", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.通信事業者名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.通信事業者名
				if (subbean != null) {
					childMap.put("tsjgs_nm", subbean.sendMessageString("通信事業者名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.調整申込記事欄 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.調整申込記事欄
				if (subbean != null) {
					childMap.put("adj_mskm_kijiran", subbean.sendMessageString("調整申込記事欄", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.申込事業者担当者名 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.申込事業者担当者名
				if (subbean != null) {
					childMap.put("mskmjig_tntsha_nm", subbean.sendMessageString("申込事業者担当者名", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.申込事業者電話番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.申込事業者電話番号
				if (subbean != null) {
					childMap.put("mskmjig_telno", subbean.sendMessageString("申込事業者電話番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.申込事業者ＦＡＸ番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.申込事業者FAX番号
				if (subbean != null) {
					childMap.put("mskmjig_fax_no", subbean.sendMessageString("申込事業者ＦＡＸ番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.サービス契約内訳番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.サービス契約内訳番号
				if (subbean != null) {
					childMap.put("svc_kei_ucwk_no", subbean.sendMessageString("サービス契約内訳番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.サービス契約番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.サービス契約番号
				if (subbean != null) {
					childMap.put("svc_kei_no", subbean.sendMessageString("サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.調整受付番号 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.調整受付番号
				if (subbean != null) {
					childMap.put("adj_uk_no", subbean.sendMessageString("調整受付番号", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.印刷処理済フラグ → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.印刷処理済フラグ
				if (subbean != null) {
					childMap.put("print_trn_zumi_flg", subbean.sendMessageString("印刷処理済フラグ", X31CWebConst.DATABEAN_GET_VALUE));
				}
				// 事業者間戻し一覧照会明細.更新年月日時分秒 → 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.更新前更新年月日時分秒
				if (subbean != null) {
					childMap.put("upd_dtm_bf", subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_GET_VALUE));
				}


				list.add(childMap);
			}
		}
		parentMap.put("ETU0031B010CBSMsg1List", list);

		outputMap.put("TUSV004301CC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：読込済事業者間調整依頼確認
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getTUSV004301CC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("TUSV004301CC")){
			parentMap = (HashMap)outputMap.get("TUSV004301CC");
		}

		ArrayList childList = null;

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray("事業者間戻し一覧照会明細");
		childList = null;
		if(arraybean != null && parentMap != null && parentMap.containsKey("ETU0031B010CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ETU0031B010CBSMsg1List");
			
			String wk_key = "";

			for(int i = 0; i < arraybean.getCount(); i++){
					X31SDataBeanAccess subbean = arraybean.getDataBean(i);
					
					if(!subbean.sendMessageBoolean(TUW00901SFConst.CHOICE_01, X31CWebConst.DATABEAN_GET_VALUE)
							|| JTUWebCommon.isNull(subbean.sendMessageString(TUW00901SFConst.JGSHAK_RTRN_NO_01, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						continue;
					}
					
					wk_key = subbean.sendMessageString(TUW00901SFConst.JGSHAK_RTRN_NO_01, X31CWebConst.DATABEAN_GET_VALUE);
					
					for(int j = 0; j < childList.size(); j++)
					{
						HashMap childMap = (HashMap)childList.get(j);
						if(wk_key.equals((String)childMap.get("jgshak_rtrn_no")))
						{
							// 事業者間戻し一覧照会明細.更新年月日時分秒 ← 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.更新年月日時分秒
							subbean.sendMessageString("更新年月日時分秒", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_dtm"));
							// 事業者間戻し一覧照会明細.更新オペレータアカウント ← 事業者間戻し一覧帳票出力マップ.事業者間戻し一覧照会明細.更新オペレータアカウント
							subbean.sendMessageString("更新オペレータアカウント", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("upd_opeacnt"));
							
							// マップしたものは削除
							childList.remove(j);
							break;
						}
					}
			}
			
		}


		return bean;
	}


}
