/*********************************************************************
*	All Right reserved,Copyright (c) Fujitsu, 2012
**********************************************************************
*＜プログラム内容＞
*	システム名		：IMRC
*	モジュール名	：CCSV0007_CCSV0007OPDBMapper
*	ソースファイル名：CCSV0007_CCSV0007OPDBMapper.java
*	作成者			：FJ
*	日付			：2012年01月31日
*＜機能概要＞
*	BP（統合認証システム連携）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/01/31	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;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CCSV0007_CCSV0007OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CCSV0007_CCSV0007OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：統合認証システム連携
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCCSV000701SC(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);

		// ユーザーID → 統合認証システム連携マップ.ユーザーID
		parentMap.put("user_id", bean[0].sendMessageString("ユーザーID", X31CWebConst.DATABEAN_GET_VALUE));
		// パスワード → 統合認証システム連携マップ.パスワード
		parentMap.put("password", bean[0].sendMessageString("パスワード", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CCSV000701SC", parentMap);
						
		return outputMap;
	}


	/**
	 * 下りマッピング
	 * @param bean　[0]：統合認証システム連携
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCCSV000701SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CCSV000701SC")){
			parentMap = (HashMap)outputMap.get("CCSV000701SC");
		}

		ArrayList childList = null;
		
		// 認証結果 ← 統合認証システム連携マップ.認証結果
		bean[0].sendMessageString("認証結果", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("ninsho_stat"));
		// 初期パスワードフラグ ← 統合認証システム連携マップ.初期パスワードフラグ
		bean[0].sendMessageString("初期パスワードフラグ", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("shk_password_flg"));
		// パスワード有効期限 ← 統合認証システム連携マップ.パスワード有効期限
		bean[0].sendMessageString("パスワード有効期限", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("password_yk_kigen"));
		// 従業員管理区分CD ← 統合認証システム連携マップ.従業員管理区分CD
		bean[0].sendMessageString("従業員管理区分CD", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("worker_kanri_div_cd"));
		// 漢字氏名（姓） ← 統合認証システム連携マップ.漢字氏名（姓）
		bean[0].sendMessageString("漢字氏名（姓）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kanji_nm_fmlnm"));
		// 漢字氏名（名） ← 統合認証システム連携マップ.漢字氏名（名）
		bean[0].sendMessageString("漢字氏名（名）", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("kanji_nm_fstnm"));
		// 所属コード ← 統合認証システム連携マップ.所属コード
		bean[0].sendMessageString("所属コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("syozk_cd"));
		// 職位コード ← 統合認証システム連携マップ.職位コード
		bean[0].sendMessageString("職位コード", X31CWebConst.DATABEAN_SET_VALUE, (String)parentMap.get("syokui_cd"));

		X31SDataBeanAccessArray listCCSV000701SC_ECCTGN00001CBSMsg1List_ECCTGN00001CBSMsg1List = bean[0].getDataBeanArray("兼務情報明細");
		childList = null;
		if(parentMap.containsKey("ECCTGN00001CBSMsg1List")){
			childList = (ArrayList)parentMap.get("ECCTGN00001CBSMsg1List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCCSV000701SC_ECCTGN00001CBSMsg1List_ECCTGN00001CBSMsg1List.getCount() -1 >= i){
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg1List_ECCTGN00001CBSMsg1List.getDataBean(i);
				}else{
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg1List_ECCTGN00001CBSMsg1List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
			
				// 兼務情報明細.兼務所属コード ← 統合認証システム連携マップ.兼務情報明細.兼務所属コード
				subbean.sendMessageString("兼務所属コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kenmu_syozk_cd"));
				// 兼務情報明細.兼務職位コード ← 統合認証システム連携マップ.兼務情報明細.兼務職位コード
				subbean.sendMessageString("兼務職位コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("kenmu_syokui_cd"));
			}
		}


		X31SDataBeanAccessArray listCCSV000701SC_ECCTGN00001CBSMsg2List_ECCTGN00001CBSMsg2List = bean[0].getDataBeanArray("ワークグループ組織コード・立場コード明細");
		childList = null;
		if(parentMap.containsKey("ECCTGN00001CBSMsg2List")){
			childList = (ArrayList)parentMap.get("ECCTGN00001CBSMsg2List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCCSV000701SC_ECCTGN00001CBSMsg2List_ECCTGN00001CBSMsg2List.getCount() -1 >= i){
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg2List_ECCTGN00001CBSMsg2List.getDataBean(i);
				}else{
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg2List_ECCTGN00001CBSMsg2List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
			
				// ワークグループ組織コード・立場コード明細.ワークグループ上位組織コード ← 統合認証システム連携マップ.ワークグループ組織コード・立場コード明細.ワークグループ上位組織コード
				subbean.sendMessageString("ワークグループ上位組織コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wkgrp_joi_org_cd"));
				// ワークグループ組織コード・立場コード明細.ワークグループ組織コード ← 統合認証システム連携マップ.ワークグループ組織コード・立場コード明細.ワークグループ組織コード
				subbean.sendMessageString("ワークグループ組織コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wkgrp_org_cd"));
				// ワークグループ組織コード・立場コード明細.ワークグループ立場コード ← 統合認証システム連携マップ.ワークグループ組織コード・立場コード明細.ワークグループ立場コード
				subbean.sendMessageString("ワークグループ立場コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("wkgrp_position_cd"));
			}
		}


		X31SDataBeanAccessArray listCCSV000701SC_ECCTGN00001CBSMsg3List_ECCTGN00001CBSMsg3List = bean[0].getDataBeanArray("中間組織コード・立場コード明細");
		childList = null;
		if(parentMap.containsKey("ECCTGN00001CBSMsg3List")){
			childList = (ArrayList)parentMap.get("ECCTGN00001CBSMsg3List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCCSV000701SC_ECCTGN00001CBSMsg3List_ECCTGN00001CBSMsg3List.getCount() -1 >= i){
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg3List_ECCTGN00001CBSMsg3List.getDataBean(i);
				}else{
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg3List_ECCTGN00001CBSMsg3List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
			
				// 中間組織コード・立場コード明細.中間上位組織コード ← 統合認証システム連携マップ.中間組織コード・立場コード明細.中間上位組織コード
				subbean.sendMessageString("中間上位組織コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chukan_joi_org_cd"));
				// 中間組織コード・立場コード明細.中間組織コード ← 統合認証システム連携マップ.中間組織コード・立場コード明細.中間組織コード
				subbean.sendMessageString("中間組織コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chukan_org_cd"));
				// 中間組織コード・立場コード明細.中間立場コード ← 統合認証システム連携マップ.中間組織コード・立場コード明細.中間立場コード
				subbean.sendMessageString("中間立場コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("chukan_position_cd"));
			}
		}


		X31SDataBeanAccessArray listCCSV000701SC_ECCTGN00001CBSMsg4List_ECCTGN00001CBSMsg4List = bean[0].getDataBeanArray("特別権限組織コード・立場コード明細");
		childList = null;
		if(parentMap.containsKey("ECCTGN00001CBSMsg4List")){
			childList = (ArrayList)parentMap.get("ECCTGN00001CBSMsg4List");

			for(int i = 0; i < childList.size(); i++){
				X31SDataBeanAccess subbean = null;
				if(listCCSV000701SC_ECCTGN00001CBSMsg4List_ECCTGN00001CBSMsg4List.getCount() -1 >= i){
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg4List_ECCTGN00001CBSMsg4List.getDataBean(i);
				}else{
					subbean = listCCSV000701SC_ECCTGN00001CBSMsg4List_ECCTGN00001CBSMsg4List.addDataBean();
				}
				HashMap childMap = (HashMap)childList.get(i);
			
				// 特別権限組織コード・立場コード明細.特別権限組織コード ← 統合認証システム連携マップ.特別権限組織コード・立場コード明細.特別権限組織コード
				subbean.sendMessageString("特別権限組織コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("spcl_org_cd"));
				// 特別権限組織コード・立場コード明細.特別権限立場コード ← 統合認証システム連携マップ.特別権限組織コード・立場コード明細.特別権限立場コード
				subbean.sendMessageString("特別権限立場コード", X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("spcl_position_cd"));
			}
		}


		return bean;
	}


}