/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：CKSV0035_CKSV0035OPDBMapper
*	ソースファイル名：CKSV0035_CKSV0035OPDBMapper.java
*	作成者			：Fujitsu
*	日付			：2012年02月08日
*＜機能概要＞
*	BP（不良顧客情報削除初期表示）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/08	Fujitsu		新規作成
*
**********************************************************************/
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 eo.web.webview.CKW00904SF.CKW00904SFConst;

/**
 * DataBean-BPマッピングをする。
 * 
 */
public class CKSV0035_CKSV0035OPDBMapper {
	
	/**
	 * コンストラクタ
	 */
	public CKSV0035_CKSV0035OPDBMapper(){
	}
	

	/**
	 * 上りマッピングをする
	 * @param bean　[0]：不良顧客情報更新
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setCKSV003501SC(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);

		// 不良顧客番号 → 不良顧客一意照会SCマップ.ＫＥＹ＿不良顧客番号
		parentMap.put("key_huryo_cust_no", bean[0].sendMessageString("不良顧客番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("CKSV003501SC", parentMap);
						
		return outputMap;
	}

	/**
	 * 下りマッピング
	 * @param bean　[0]：不良顧客情報更新
	 * @param outputMap
	 */
	@SuppressWarnings("unchecked")
	public X31SDataBeanAccess[] getCKSV003501SC(X31SDataBeanAccess[] bean, HashMap outputMap){

		HashMap parentMap = null;
		if(outputMap.containsKey("CKSV003501SC")){
			parentMap = (HashMap)outputMap.get("CKSV003501SC");
		}

		ArrayList childList = null;
		
		// ツールでは生成できないため手作成
		
		if(parentMap.containsKey("ECK0061A010CBSMsg1List"))
		{
			childList = (ArrayList)parentMap.get("ECK0061A010CBSMsg1List");
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				// 不良顧客登録コード(表示用)
//				String addCd = (String)childMap.get("huryo_cust_add_cd");
				String addCdNm = (String)childMap.get("huryo_cust_add_cd_nm");
				
				bean[0].sendMessageString(CKW00904SFConst.DISP_CUST_ADD_CD, X31CWebConst.DATABEAN_SET_VALUE, addCdNm);
				
				// 加入者交換出力開始年月
				bean[0].sendMessageString(CKW00904SFConst.KNYSHA_KOKAN_OUTPUT_STA_YM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap
						.get("knysha_kokan_output_sta_ym"));
				
				// SYSID
				bean[0].sendMessageString(CKW00904SFConst.SYSID, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("sysid"));
				
				// 請求契約番号
				bean[0].sendMessageString(CKW00904SFConst.SEIKY_KEI_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("seiky_kei_no"));
				
				// 顧客番号
				bean[0].sendMessageString(CKW00904SFConst.CUST_NO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("cust_no"));
				
				// 多重申込グループコード(表示用)
				bean[0].sendMessageString(CKW00904SFConst.DISP_TAJU_MSKM_GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("taju_mskm_grp_cd"));
				
				// 契約者タイプ(表示用)
//				String keiTypeCd = (String)childMap.get("keisha_type_cd");
				String keiTypeCdNm = (String)childMap.get("keisha_type_cd_nm");
//				String setVal1 = "";
//				if(null != keiTypeCd && !"".equals(keiTypeCd))
//				{
//					setVal1 = keiTypeCd + "." + keiTypeCdNm;
//				}
				bean[0].sendMessageString(CKW00904SFConst.DISP_KEISHA_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, keiTypeCdNm);
				
				// 不良顧客名
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_NM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_nm"));
				
				// 不良顧客カナ名
				bean[0].sendMessageString(CKW00904SFConst.HYRYO_CUST_KANA, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_kana"));
				
				// 不良顧客性別コード
//				String sexCd = (String)childMap.get("huryo_cust_sex_cd");
				String sexCdNm = (String)childMap.get("huryo_cust_sex_cd_nm");
//				String setVal2 = "";
//				if(null != sexCd && !"".equals(sexCd))
//				{
//					setVal2 = sexCd + "." + sexCdNm;
//				}
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_SEX_CD, X31CWebConst.DATABEAN_SET_VALUE, sexCdNm);
				
				// 不良顧客生年月日（年）yyyymmdd
				String birthDay = (String)childMap.get("huryo_cust_birthd");
				if(birthDay != null && !"".equals(birthDay))
				{
					String year = birthDay.substring(0, 4);
					bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_BIRTHD_YEAR, X31CWebConst.DATABEAN_SET_VALUE, year);
					
					// 不良顧客生年月日（月）
					String month = birthDay.substring(4, 6);
					bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_BIRTHD_MON, X31CWebConst.DATABEAN_SET_VALUE, month);
					
					// 不良顧客生年月日（日）
					String day = birthDay.substring(6, 8);
					bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_BIRTHD_DAY, X31CWebConst.DATABEAN_SET_VALUE, day);
				}
				
				// 不良顧客電話番号
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_telno"));
				
				// 不良顧客移動電話番号
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_MOVE_TELNO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_move_telno"));
				
				// 不良顧客住所コード1 11222333444
				String adCd = (String)childMap.get("huryo_cust_ad_cd");
				if(adCd != null && !"".equals(adCd))
				{
					String adCd1 = adCd.substring(0, 2);
					bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_AD_CD_1, X31CWebConst.DATABEAN_SET_VALUE, adCd1);
					
					// 不良顧客住所コード2
					String adCd2 = adCd.substring(2, 5);
					bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_AD_CD_2, X31CWebConst.DATABEAN_SET_VALUE, adCd2);
					
					// 不良顧客住所コード3
					String adCd3 = adCd.substring(5, 8);
					bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_AD_CD_3, X31CWebConst.DATABEAN_SET_VALUE, adCd3);
					
					// 不良顧客住所コード4
					String adCd4 = adCd.substring(8, 11);
					bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_AD_CD_4, X31CWebConst.DATABEAN_SET_VALUE, adCd4);
					
				}
				// 不良顧客郵便番号1（上3桁）
				String pCd = (String)childMap.get("huryo_cust_pcd");
				if(pCd != null && !"".equals(pCd))
				{
					String pCd1 = pCd.substring(0, 3);
					bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_PCD_1, X31CWebConst.DATABEAN_SET_VALUE, pCd1);
					
					// 不良顧客郵便番号2（下4桁）
					String pCd2 = pCd.substring(3, 7);
					bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_PCD_2, X31CWebConst.DATABEAN_SET_VALUE, pCd2);
				}
				
				// 不良顧客都道府県名(制御用)
				bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_STATE, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_state_nm"));
				
				// 不良顧客市区町村名(制御用)
				bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_CITY, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_city_nm"));
				
				// 不良顧客大字通称名(制御用)
				bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_OAZTSU, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_oaztsu_nm"));
				
				// 不良顧客字丁目名(制御用)
				bean[0].sendMessageString(CKW00904SFConst.CTR_HURYO_CUST_AZCHO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_azcho_nm"));
				
				// 不良顧客番地号
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_BNCHIGO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_bnchigo"));
				
				// 不良顧客住所補記・建物名
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_ADRTTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_adrttm"));
				
				// 不良顧客住所補記・部屋番号
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_ADRRM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_adrrm"));
				
				// 職業コード
//				String jobCd = (String)childMap.get("shokugyo_cd");
				String jobCdNm = (String)childMap.get("shokugyo_cd_nm");
//				String setVal3 = "";
//				if(null != jobCd && !"".equals(jobCd))
//				{
//					setVal3 = jobCd + "." + jobCdNm;
//				}
				bean[0].sendMessageString(CKW00904SFConst.JOB_CD, X31CWebConst.DATABEAN_SET_VALUE, jobCdNm);
				
				// 続柄コード
//				String zkgrCd = (String)childMap.get("sksha_zokugara_cd");
				String zkgrCdNm = (String)childMap.get("sksha_zokugara_cd_nm");
//				String setVal4 = "";
//				if(null != zkgrCd && !"".equals(zkgrCd))
//				{
//					setVal4 = zkgrCd + "." + zkgrCdNm;
//				}
				bean[0].sendMessageString(CKW00904SFConst.ZOKUGARA_CD, X31CWebConst.DATABEAN_SET_VALUE, zkgrCdNm);
				
				// 滞納金額
				bean[0].sendMessageString(CKW00904SFConst.NONPAY_AMNT, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("nonpay_amnt"));
				
				// 事業者コード(表示用)
//				String jgsyaCd = (String)childMap.get("huryo_cust_jigyosha_cd");
				String jgsyaCdNm = (String)childMap.get("huryo_cust_jigyosha_cd_nm");
//				String setVal5 = "";
//				if(null != jgsyaCd && !"".equals(jgsyaCd))
//				{
//					setVal5 = jgsyaCd + "." + jgsyaCdNm;
//				}
				bean[0].sendMessageString(CKW00904SFConst.DISP_JIGYOSHA_CD, X31CWebConst.DATABEAN_SET_VALUE, jgsyaCdNm);
				
				// 備考
				bean[0].sendMessageString(CKW00904SFConst.BIKO, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("huryo_cust_hsk_biko"));
				
				// 登録年月日
				String addDtm = ((String)childMap.get("add_dtm")).substring(0, 8);
				bean[0].sendMessageString(CKW00904SFConst.HURYO_CUST_BIRTHD, X31CWebConst.DATABEAN_SET_VALUE, addDtm);
				
				// 最終更新年月日時分秒
				bean[0].sendMessageString(CKW00904SFConst.LAST_UPD_DTM, X31CWebConst.DATABEAN_SET_VALUE, (String)childMap.get("last_upd_dtm"));
				
				// 不良顧客住所手動入力フラグ
				if("1".equals(childMap.get("hrycst_ad_man_input_flg")))
				{
					bean[0].sendMessageBoolean(CKW00904SFConst.REIGAI, X31CWebConst.DATABEAN_SET_VALUE, true);					
				}
				else
				{
					bean[0].sendMessageBoolean(CKW00904SFConst.REIGAI, X31CWebConst.DATABEAN_SET_VALUE, false);
				}
			}
		}
		return bean;
	}

}
