/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：契約内容通知書詳細更新
*   ソースファイル名：KKW21502SFLogic.java
*   作成者          ：富士通
*   日付            ：2016年09月07日
*＜機能概要＞
*   未送信の契約内容通知書を更新する。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v27.00      2016/09/07   FJ）栗秋    ANK-2985-00-00 消費者保護ルール見直し追加対応STEP3
*	v27.00.01	2016/10/25	 FJ）栗秋    IT2-2016-0000056 契約内容通知書PDFの表示不正
*	v48.00.00	2020/02/20	 FJ）麻生    ANK-3639-00-00 契約内容通知書の修正可能項目追加
**********************************************************************/
package eo.web.webview.KKW21502SF;

import java.util.HashMap;
import java.util.ArrayList;

import com.fujitsu.futurity.common.JSYwebLog;
import com.fujitsu.futurity.web.x00.JCCBusinessException;
import com.fujitsu.futurity.web.x00.JCCWebServiceException;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JZMStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.mapping.KKSV0845_KKSV0845OPDBMapper;
import eo.web.webview.mapping.KKSV0830_KKSV0830OPDBMapper;


/**
 * 未送信の契約内容通知書を更新する。<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW21502SFLogic extends JCCWebBusinessLogic 
{
	/** 処理区分:参照 **/
	public static final String TRAN_DIV_DTL = "1";
	/** 処理区分:更新 **/
	public static final String TRAN_DIV_UPD = "2";
	
	/** 郵便記号 **/
	public static final String PCD_KIGO = "〒";

	/** 字丁目の設定がある場合の番地号の桁数 **/
	public static final int BNCHIGO_AZCHO_LEN = 15;
	/** 大字通称名の設定があり、字丁目の設定がない場合の番地号の桁数 **/
	public static final int BNCHIGO_OAZTSU_LEN = 27;
	/** 市区町村の設定があり、大字通称名の設定がない場合の番地号の桁数 **/
	public static final int BNCHIGO_CITY_LEN = 45;

	/** 帳票定義体ID 契約内容通知書 */
	public static final String CHOHYO_KNYTCS = "PFUZ00000000007";

	/** ダウンロードダイアログに表示するファイル名*/
	private static final String DOWNLOAD_FILE_NM = "Knytcs";

	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionInit() throws Exception
	{
	
		// 引き継ぎの情報MAPを取得する。 
		JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// 初期表示サービス呼出処理
		executeInitSvc(paramBean);
		
		// 処理区分取得
		String tran_div = paramBean[0].sendMessageString(KKW21502SFConst.TRAN_DIV, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (TRAN_DIV_UPD.equals(tran_div)) 
		{
			// サービスフォームBean設定:更新
			setUpdInitBean(paramBean);
		}else{
			// サービスフォームBean設定：参照
			setDtlInitBean(paramBean);
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	/**
	 * 更新確認ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionUpd() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// サービスフォームBean設定
		setUpdInfoBean(paramBean);
		
		boolean retErr = true;

		// 送付先_番地・号
		String SOHUS_bnchigo = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE);
		// 送付先＿字丁目
		String SOHUS_azcho_nm = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_AZCHO, X31CWebConst.DATABEAN_GET_VALUE);
		// 送付先＿大字通称
		String SOHUS_oaztsu_nm = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_OAZTSU, X31CWebConst.DATABEAN_GET_VALUE);
		// 送付先＿市区町村
		String SOHUS_city_nm = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_CITY, X31CWebConst.DATABEAN_GET_VALUE);

		// 送付先_番地・号が入力されている場合にチェック
		if (SOHUS_bnchigo != null && !"".equals(SOHUS_bnchigo)) 
		{
			// 番地号の文字数をチェック
			if(!isBnchigoChk(SOHUS_city_nm, SOHUS_oaztsu_nm, SOHUS_azcho_nm, SOHUS_bnchigo, 
					KKW21502SFConst.SOHUS_BNCHIGO))
			{
				// メッセージについては関数内で設定済み
				retErr = false;
			}
		}

		// 全ての住所をチェックしたのち、
		if(!retErr)
		{
			return retErr;
		}

		//送信済みチェック
		if(!chkSendYmd(paramBean))
		{
			return false;
		}

		// 渡す情報をHashMapに設定する
		HashMap<String, Object> paramMap1 = new HashMap<String, Object>();
		
		// 更新確認サービス呼出処理
		String errFlg = executeUpdSvc(paramBean, JPCModelConstant.FUNC_CD_2 , paramMap1);
		
		// エラーフラグが"1"の場合
		if (errFlg.equals("1"))
		{
			String[] str = {"契約内容通知書送信バッチが実行中の", "更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, str);
			return false;
		}
		else
		{
			// 確認メッセージの設定
			String[] str = {"契約内容通知書詳細の更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, str);
			
			// 遷移先情報の設定　確認画面
			X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
					JKKScreenConst.SCREEN_ID_KKW21503);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
					JKKScreenConst.SCREEN_NAME_KKW21503);

		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
			
		return true;
	}
	
	/**
	 * 戻るボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionBack() throws Exception
	{
		
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getScreenId(this));

		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
		
	}

	/**
	 * 確定ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionFix() throws Exception
	{
		
		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		//送信済みチェック
		if(!chkSendYmd(paramBean))
		{
			return false;
		}

		HashMap<String, Object> paramMap1 = new HashMap<String, Object>();

		// 更新確認サービス呼出処理
		String errFlg = executeUpdSvc(paramBean, JPCModelConstant.FUNC_CD_1 , paramMap1);
		// エラーフラグが"1"の場合
		if (errFlg.equals("1"))
		{
			String[] str = {"契約内容通知書送信バッチが実行中の", "更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, str);
		}
		else
		{
			// 確認メッセージの設定
			String[] str = {"契約内容通知書詳細の更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, str);
			
			// 遷移先情報の設定　完了画面
			X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
					JKKScreenConst.SCREEN_ID_KKW21504);
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
					JKKScreenConst.SCREEN_NAME_KKW21504);
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}

	
	/**
	 * 修正ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionShusei() throws Exception
	{
		
		// 遷移先情報の設定　登録画面
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_ID_KKW21502);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, 
				JKKScreenConst.SCREEN_NAME_KKW21502);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true; 
	}

	/**
	 * 完了ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @exception Exceptionがスローされます。
	 */
	public boolean actionFin() throws Exception
	{
		
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, 
				JCCWebCommon.getScreenId(this));
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 送付先住所検索ボタン処理を行います。
	 * <br>
	 * @return true:正常
	 * @throws Exceptionがスローされます。
	 */
	public boolean actionSohusAdSearch() throws Exception
	{
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// サービスフォームBeanの値を取得
		String setplace_ad_pcd_1 = bean.sendMessageString(KKW21502SFConst.SOHUS_PCD1, X31CWebConst.DATABEAN_GET_VALUE);
		String setplace_ad_pcd_2 = bean.sendMessageString(KKW21502SFConst.SOHUS_PCD2, X31CWebConst.DATABEAN_GET_VALUE);
		String setplace_state_nm = bean.sendMessageString(KKW21502SFConst.SOHUS_STATE,  X31CWebConst.DATABEAN_GET_VALUE);
		String setplace_city_nm = bean.sendMessageString(KKW21502SFConst.SOHUS_CITY,  X31CWebConst.DATABEAN_GET_VALUE);
		String setplace_oaztsu_nm = bean.sendMessageString(KKW21502SFConst.SOHUS_OAZTSU,  X31CWebConst.DATABEAN_GET_VALUE);
		String setplace_azcho_nm = bean.sendMessageString(KKW21502SFConst.SOHUS_AZCHO,  X31CWebConst.DATABEAN_GET_VALUE);
		
		// 渡す情報をHashMapに設定する
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(JZMStrConst.key_pcd_1, setplace_ad_pcd_1);
		paramMap.put(JZMStrConst.key_pcd_2, setplace_ad_pcd_2);
		paramMap.put(JZMStrConst.key_ad_cd_1, "");
		paramMap.put(JZMStrConst.key_ad_cd_2, "");
		paramMap.put(JZMStrConst.key_ad_cd_3, "");
		paramMap.put(JZMStrConst.key_ad_cd_4, "");
		paramMap.put(JZMStrConst.key_state_nm, setplace_state_nm);
		paramMap.put(JZMStrConst.key_city_nm, setplace_city_nm);
		paramMap.put(JZMStrConst.key_oaztsu_nm, setplace_oaztsu_nm);
		paramMap.put(JZMStrConst.key_azcho_nm, setplace_azcho_nm);
		
		// 住所検索画面ID設定
		setNextScreenAd(paramMap);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 送付先住所検索画面からの戻り処理を行います。
	 * <br>
	 * @return true:正常
	 * @throws Exceptionがスローされます。
	 */
	public boolean actionSohusAdSearchRtn() throws Exception
	{
		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 住所検索画面からの情報を取得
		HashMap<String, Object> map = JCCWebCommon.getScreenInfo(this);
		
		// サービスフォームBeanへセットする
		bean.sendMessageString(KKW21502SFConst.SOHUS_PCD1,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_pcd_1));
		bean.sendMessageString(KKW21502SFConst.SOHUS_PCD2,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_pcd_2));
		bean.sendMessageString(KKW21502SFConst.SOHUS_STATE,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_state_nm));
		bean.sendMessageString(KKW21502SFConst.SOHUS_CITY,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_city_nm));
		bean.sendMessageString(KKW21502SFConst.SOHUS_OAZTSU,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_oaztsu_nm));
		bean.sendMessageString(KKW21502SFConst.SOHUS_AZCHO,  X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(JZMStrConst.ret_azcho_nm));
		
		// 遷移先画面ID
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW21502);
		
		// 遷移先画面名
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21502);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}		
	
	
	/**
	 * 契約内容通知書詳細照会サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @exception Exceptionがスローされます。
	 */
	private void executeInitSvc(X31SDataBeanAccess[] paramBean) throws Exception
	{
		
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// 契約内容通知書詳細照会サービス
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0830");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0830_KKSV0830OPDBMapper mapper = new KKSV0830_KKSV0830OPDBMapper();

		mapper.setKKSV083001SC(paramBean, inputMap,JPCModelConstant.FUNC_CD_1);

		// サービス呼び出し
		invokeService(paramMap, inputMap, outputMap);

		// 取得情報の下りマッピング
		mapper.getKKSV083001SC(paramBean, outputMap);

	}
	
	/**
	 * サービスフォームBean初期値設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setDtlInitBean(X31SDataBeanAccess[] paramBean)
	{	
		// 郵便番号編集処理
		// 送付先＿郵便番号を取得
		setEditPcd(paramBean, KKW21502SFConst.SOHUS_PCD, KKW21502SFConst.SOHUS_PCD_HY);

	}
	
	/**
	 * サービスフォームBean初期値設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setUpdInitBean(X31SDataBeanAccess[] paramBean)
	{
		
		// 郵便番号項目の設定
		setPcdBean(paramBean);
	}	
		
	/**
	 * サービスコンポーネント設定情報の格納処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setUpdInfoBean(X31SDataBeanAccess[] paramBean)
	{
		
		// 制御項目のクリア
		clearBean(paramBean);
		
		// 郵便番号項目の結合
		setConcatPcdBean(paramBean);
		
	}
	
	
	/**
	 * 契約内容通知書詳細更新確認サービス実行処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @param func_code  機能コード
	 * @param warnFlg    警告フラグ
	 */
	@SuppressWarnings("unchecked")
	private String executeUpdSvc(X31SDataBeanAccess[] paramBean, String func_code , HashMap<String, Object> paramMap1)
	{
		// 変数の定義
		HashMap<String, Object> paramMap = null;
		HashMap<String, Object> inputMap = null;
		HashMap<String, Object> outputMap = null;
		
		// 契約内容通知書詳細更新確認サービス
		paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		inputMap = new HashMap<String, Object>();		// 入力用マップ
		outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0845");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0845_KKSV0845OPDBMapper mapper = new KKSV0845_KKSV0845OPDBMapper();
		
		// ディレイド処理依頼結果参照SC
		mapper.setKKSV084501SC(paramBean, inputMap, "1");
		
		// 契約内容通知書更新SC
// ANK-3639-00-00 MOD START
//		mapper.setKKSV084502SC(paramBean, inputMap, func_code);	
		mapper.setKKSV084501CC(paramBean, inputMap, func_code);
// ANK-3639-00-00 MOD END
		
		// サービス実行
		invokeService(paramMap, inputMap, outputMap);
		
		// ディレイド処理依頼結果参照SCからエラーフラグの値を取得する
		HashMap errFlgMap = (HashMap) outputMap.get("KKSV084501SC");
		
		String errFlg = (String) errFlgMap.get("err_flg");

		return errFlg;
	}		
	
	/**
	 * 郵便番号項目設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setPcdBean(X31SDataBeanAccess[] paramBean)
	{
		// 送付先＿郵便番号を取得
		String SOHUS_pcd = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD, X31CWebConst.DATABEAN_GET_VALUE);
	
		// 送付先＿郵便番号
		paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD1, X31CWebConst.DATABEAN_SET_VALUE, 
				JPCUtilCommon.toTopThreeDigitFromPcd(SOHUS_pcd));
		paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD2, X31CWebConst.DATABEAN_SET_VALUE, 
				JPCUtilCommon.toUnderFourDigitFromPcd(SOHUS_pcd));
		
	}	
		
	/**
	 * 郵便番号項目設定処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void setConcatPcdBean(X31SDataBeanAccess[] paramBean)
	{
		
		// 送付先＿郵便番号を取得
		String SOHUS_pcd1 = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD1, X31CWebConst.DATABEAN_GET_VALUE);
		String SOHUS_pcd2 = paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD2, X31CWebConst.DATABEAN_GET_VALUE);
		// 送付先＿郵便番号
		paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD, X31CWebConst.DATABEAN_SET_VALUE, 
				JPCUtilCommon.concatPcd(SOHUS_pcd1, SOHUS_pcd2));

		// 送付先＿郵便番号を取得
		setEditPcd(paramBean, KKW21502SFConst.SOHUS_PCD, KKW21502SFConst.SOHUS_PCD_HY);

	}		
	
	/**
	 * 郵便番号の編集処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 * @param key_pcd 取得する郵便番号のKey
	 * @param key_hy 編集する郵便番号のKey
	 */
	private void setEditPcd(X31SDataBeanAccess[] paramBean, String key_pcd, String key_hy)
	{
		
		// 郵便番号を取得
		String pcd = paramBean[0].sendMessageString(key_pcd, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 郵便番号の編集
		String pcd_hy = JPCUtilCommon.hyhunPcd(pcd);
		if ("".equals(pcd_hy)) 
		{
			paramBean[0].sendMessageString(key_hy, X31CWebConst.DATABEAN_SET_VALUE, "");
		}
		else
		{
			paramBean[0].sendMessageString(key_hy, X31CWebConst.DATABEAN_SET_VALUE, PCD_KIGO + pcd_hy);
		}
		
	}
	
	/**
	 * サービスフォームBean情報クリア処理
	 * <br>
	 * @param paramBean DataBean項目の配列
	 */
	private void clearBean(X31SDataBeanAccess[] paramBean)
	{

		// 送付先＿郵便番号
		paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD, X31CWebConst.DATABEAN_SET_VALUE, "");

		// 送付先＿郵便番号
		paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_PCD_HY, X31CWebConst.DATABEAN_SET_VALUE, "");
		
	}
	
	
	/**
	 * 住所検索画面情報設定処理
	 * <br>
	 * @param paramMap DataBean項目の配列
	 */
	private void setNextScreenAd(HashMap<String, Object> paramMap)
	{
		
		// 渡す情報を設定する
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW10601, paramMap);
		// 画面IDを渡す
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW10601, JKKScreenConst.SCREEN_ID_KKW21502);
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW10601);
		
		// 遷移先画面名を設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW10601);

	}
	
	/**
	 * 番地号文字数チェック
	 * <br>
	 * @param city_nm 市区町村名
	 * @param oaztsu_nm 大字通称名
	 * @param azcho_nm 字丁目
	 * @param bnchigo 番地号
	 * @param taisyo チェック対象名称
	 * @return boolean 文字数オーバーしていなければtrue
	 */
	private boolean isBnchigoChk(String city_nm, String oaztsu_nm, String azcho_nm, String bnchigo, String taisyo)
	{
		if(azcho_nm != null && !"".equals(azcho_nm))
		{
			if(bnchigo.length() > BNCHIGO_AZCHO_LEN)
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0030_TW, 
						new String[]{taisyo, JKKKeiNewCmnLogicUtil.MSG_FWC, Integer.toString(BNCHIGO_AZCHO_LEN)});

				return false;
			}
		}
		// 大字通称名の設定があり、字丁目の設定がない場合・番地号に28文字以上入力
		else if(oaztsu_nm != null  && !"".equals(oaztsu_nm) &&
				(azcho_nm == null || "".equals(azcho_nm)))
		{
			if(bnchigo.length() > BNCHIGO_OAZTSU_LEN)
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0030_TW, 
						new String[]{taisyo, JKKKeiNewCmnLogicUtil.MSG_FWC, Integer.toString(BNCHIGO_OAZTSU_LEN)});

				return false;
			}
		}
		// 市区町村の設定があり、大字通称名の設定がない場合・番地号に46文字以上入力
		else if(city_nm != null  && !"".equals(city_nm) &&
				(oaztsu_nm == null || "".equals(oaztsu_nm)))
		{
			if(bnchigo.length() > BNCHIGO_CITY_LEN)
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0030_TW, 
						new String[]{taisyo, JKKKeiNewCmnLogicUtil.MSG_FWC, Integer.toString(BNCHIGO_CITY_LEN)});

				return false;
			}
		}
		
		return true;
	
	}

	/**
	 * データダウンロード画面 ダウンロードボタン押下処理。
     * <BR>
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean fileDownLoad()
	{

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};

		//共有フォームBean
		X31SDataBeanAccess beanCF = getCommonInfoBean();
		
		// パラメタ設定用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		// ユースケースID格納用マップを生成
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 検索結果格納用マップを生成。
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		// 添付ファイル格納マップを生成。
		HashMap<String, Object> attachMap = new HashMap<String, Object>();
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "FUSV0296");

		// マッピング
		setFUSV029601CC(paramBean,inputMap, "2");

		// ●サービスの呼び出し
		try
		{
			invokeService(paramMap, inputMap, outputMap, attachMap);
		}
		catch (JCCWebServiceException se)
		{
			throw new JCCBusinessException(JFUStrConst.ERROR_CODE_0002);
		}

		// ●下りマッピング
		// なし

		// ● 受信ファイル取得
		ArrayList list = (ArrayList)attachMap.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE_LIST);
		HashMap map = (HashMap)list.get(0);
		byte[] downloadData = (byte[])map.get(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE);

		// ●ダウンロード処理

		// ダウンロードファイル名を設定
		String fileName = getDownloadFileNm(bean);

		// 閲覧制限をかけないPDFファイルをブラウザ内への表示せずに、
		// ダウンロードダイアログを表示して、Adobe Readerで表示する場合、
		// 「setPdfDownloadDlgMode(true)」を呼び出す
		setPdfDownloadDlgMode(true);
		JCCWebCommon.setTempDownloadFile(this, downloadData, fileName);

		// -------------------------------------------------- //
		// 共有フォームBeanの設定
		// -------------------------------------------------- //
		//画面ID
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		//画面名
		beanCF.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW21502);
		
		return true;
	}

	/**
	 * ダウンロードファイル名取得
	 * <br/>
	 * ダウンロードダイアログに表示するファイル名を取得します。
	 *
	 * @param bean サービスフォームBean
	 * @return ダウンロードファイル名
	 */
	private String getDownloadFileNm(X31SDataBeanAccess bean)
	{
		return DOWNLOAD_FILE_NM + JFUStrConst.KIGOU_PERIOD_HALF + JFUStrConst.CHOHYO_EXTENSION_PDF;
	}
	/**
	 * 改行コードを除去し返却します。
	 * 
	 * <br>
	 * @param str 文字列
	 * @return 改行コードを除去した文字列

	 */
	public String delKaigyo(String str)
	{
		// 入力パラメータ検査
		if (str == null)
		{
			return JFUStrConst.EMPTY;
		}

		// 出力用領域
		String outPutStr = str;

		// 改行コードを空文字に変換
		outPutStr = outPutStr.replace(JFUStrConst.RETURN_CODE, "");

		// 文字列を返却
		return outPutStr;
	}

	/**
	 * サービス呼び出し前チェック
	 * 
	 * <br>
	 * @param str 文字列
	 * @return 改行コードを除去した文字列

	 */
	@SuppressWarnings("unchecked")
	private Boolean chkSendYmd(X31SDataBeanAccess[] paramBean)
	{
		// 契約内容通知書詳細照会サービス
		HashMap<String, Object> paramMap = new HashMap<String, Object>();		// パラメタ設定用マップ
		HashMap<String, Object> inputMap = new HashMap<String, Object>();		// 入力用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();		// 結果格納用マップ
		
		// パラメタ設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0830");
		
		// 上りマッピング(サービス項目-DataBean項目マッピング)
		KKSV0830_KKSV0830OPDBMapper mapper = new KKSV0830_KKSV0830OPDBMapper();

		mapper.setKKSV083001SC(paramBean, inputMap,JPCModelConstant.FUNC_CD_1);
		
		// サービス呼び出し
		invokeService(paramMap, inputMap, outputMap);

		// サービスの処理結果より取得
		HashMap<String, Object> resultMap = (HashMap<String, Object>)outputMap.get("KKSV083001CC");

		// 送信年月日が設定されている場合、送信済みとする
		String send_ymd = (String)resultMap.get("knytcs_print_reqymd");

		//送信済みの場合エラーとする。
		if (send_ymd != null && !"".equals(send_ymd)) {
			// 送信年月日
			paramBean[0].sendMessageString(KKW21502SFConst.SEND_YMD,X31CWebConst.DATABEAN_SET_VALUE,send_ymd);
			String[] str = {"既に送信済の", "更新"};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0930_NW, 	str);
			return false;
		}
		return true;
	}

	/**
	 * 上りマッピングをします。
	 *
	 * <br>
	 * @param paramBean　[0]：契約内容通知書作成　[1]：共有フォームビーン
	 * @param outputMap
	 * @param func_code　機能コード
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setFUSV029601CC(X31SDataBeanAccess[] paramBean, HashMap outputMap, String func_code)
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		parentMap.put("func_code", func_code);

		// ＳＹＳＩＤ
		parentMap.put("sys_id", paramBean[0].sendMessageString(KKW21502SFConst.SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// IT2-2016-0000056 MOD START
//		// 契約内容通知書についての注記文言
//		parentMap.put("keiyaku_chuki", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.KNYTCS_MNGO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 契約成立年月日
//		parentMap.put("keiyaku_ymd", paramBean[0].sendMessageString(KKW21502SFConst.KEI_SEIRT_YMD, X31CWebConst.DATABEAN_GET_VALUE));
//		// 氏名
//		parentMap.put("name", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.SOHUS_NM, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 契約者住所
//		parentMap.put("address", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.CUST_KEISHA_AD, X31CWebConst.DATABEAN_GET_VALUE)));
//		// サービス利用場所住所
//		parentMap.put("svc_ry_add", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.RYOBSY_AD, X31CWebConst.DATABEAN_GET_VALUE)));
//		// サービス提供開始時期
//		parentMap.put("svc_tk_kis", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.SVC_TK_STA_JIKI, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込番号（ネット契約）
//		parentMap.put("mskm_no_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// コース（ネット契約）
//		parentMap.put("course_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_CORSE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス（ネット契約）
//		parentMap.put("wrib_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// オプションサービス（ネット契約）
//		parentMap.put("opti_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 適用キャンペーン（ネット契約）
//		parentMap.put("cp_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 契約内容変更・解除等に関する条項（ネット契約）
//		parentMap.put("joko_net_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_KNYHEN_CAN, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込番号（電話契約）
//		parentMap.put("mskm_no_tel_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// コース（電話契約）
//		parentMap.put("course_tel_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_CORSE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス（電話契約）
//		parentMap.put("wrib_tel_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 適用キャンペーン（電話契約）
//		parentMap.put("cp_tel_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 電話番号（電話契約1番号目）
//		parentMap.put("telno_tel1_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL1_TEL_NO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// オプションサービス（電話契約1番号目）
//		parentMap.put("opti_tel1_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL1_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 電話番号（電話契約2番号目）
//		parentMap.put("telno_tel2_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL2_TEL_NO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// オプションサービス（電話契約2番号目）
//		parentMap.put("opti_tel2_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL2_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込番号（テレビ契約）
//		parentMap.put("mskm_no_tv_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス（テレビ契約）
//		parentMap.put("wrib_tv_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 適用キャンペーン（テレビ契約）
//		parentMap.put("cp_tv_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
//		// オプションサービス（テレビ契約）
//		parentMap.put("opti_tv_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題1（テレビ契約）
//		parentMap.put("mskm_dai_tv1_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース名1（テレビ契約）
//		parentMap.put("mskm_course_tv1_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題2（テレビ契約）
//		parentMap.put("mskm_dai_tv2_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース名2（テレビ契約）
//		parentMap.put("mskm_course_tv2_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題3（テレビ契約）
//		parentMap.put("mskm_dai_tv3_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース名3（テレビ契約）
//		parentMap.put("mskm_course_tv3_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題4（テレビ契約）
//		parentMap.put("mskm_dai_tv4_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース名4（テレビ契約）
//		parentMap.put("mskm_course_tv4_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題5（テレビ契約）
//		parentMap.put("mskm_dai_tv5_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース名5（テレビ契約）
//		parentMap.put("mskm_course_tv5_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 契約内容変更・解除等に関する条項（テレビ契約）
//		parentMap.put("joko_tv_kei", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_KYNYH_JYOKO, X31CWebConst.DATABEAN_GET_VALUE)));
//		// お支払い方法
//		parentMap.put("pay", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.PAY_WAY, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 基本料金（ネット）
//		parentMap.put("kihon_cost_net", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_KIHONPRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 標準工事費（ネット）
//		parentMap.put("hyojn_koji_net", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 手数料（ネット）
//		parentMap.put("tesuryo_net", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス料金（ネット）
//		parentMap.put("wrib_cost_net", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// キャンペーン料金（ネット）
//		parentMap.put("cp_cost_net", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 基本料金（電話）
//		parentMap.put("kihon_cost_tel", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_KIHONPRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 標準工事費（電話）
//		parentMap.put("hyojn_koji_tel", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 手数料（電話）
//		parentMap.put("tesuryo_tel", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス料金（電話）
//		parentMap.put("wrib_cost_tel", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// キャンペーン料金（電話）
//		parentMap.put("cp_cost_tel", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題1（テレビ料金）
//		parentMap.put("mskm_stb_tv1_ryo", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込料金1（テレビ料金）
//		parentMap.put("kihon_cost_tv1", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題2（テレビ料金）
//		parentMap.put("mskm_stb_tv2_ryo", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込料金2（テレビ料金）
//		parentMap.put("kihon_cost_tv2", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題3（テレビ料金）
//		parentMap.put("mskm_stb_tv3_ryo", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込料金3（テレビ料金）
//		parentMap.put("kihon_cost_tv3", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題4（テレビ料金）
//		parentMap.put("mskm_stb_tv4_ryo", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込料金4（テレビ料金）
//		parentMap.put("kihon_cost_tv4", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込コース表題5（テレビ料金）
//		parentMap.put("mskm_stb_tv5_ryo", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 申込料金5（テレビ料金）
//		parentMap.put("kihon_cost_tv5", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 標準工事費（テレビ）
//		parentMap.put("hyojn_koji_tv", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 手数料（テレビ）
//		parentMap.put("tesuryo_tv", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
//		// 割引サービス料金（テレビ）
//		parentMap.put("wrib_cost_tv", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
//		// キャンペーン料金（テレビ）
//		parentMap.put("cp_cost_tv", delKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約内容通知書についての注記文言
		parentMap.put("keiyaku_chuki", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.KNYTCS_MNGO, X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約成立年月日
		parentMap.put("keiyaku_ymd", editDate(paramBean[0].sendMessageString(KKW21502SFConst.KEI_SEIRT_YMD, X31CWebConst.DATABEAN_GET_VALUE)));
		// お客さま_お客さま名
		parentMap.put("name", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.CUST_CUST_NM, X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約者住所
		parentMap.put("address", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.CUST_KEISHA_AD, X31CWebConst.DATABEAN_GET_VALUE)));
		// サービス利用場所住所
		parentMap.put("svc_ry_add", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.RYOBSY_AD, X31CWebConst.DATABEAN_GET_VALUE)));
		// サービス提供開始時期
		parentMap.put("svc_tk_kis", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.SVC_TK_STA_JIKI, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込番号（ネット契約）
		parentMap.put("mskm_no_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
		// コース（ネット契約）
		parentMap.put("course_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_CORSE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス（ネット契約）
		parentMap.put("wrib_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// オプションサービス（ネット契約）
		parentMap.put("opti_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 適用キャンペーン（ネット契約）
		parentMap.put("cp_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約内容変更・解除等に関する条項（ネット契約）
		parentMap.put("joko_net_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_KNYHEN_CAN, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込番号（電話契約）
		parentMap.put("mskm_no_tel_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
		// コース（電話契約）
		parentMap.put("course_tel_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_CORSE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス（電話契約）
		parentMap.put("wrib_tel_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 適用キャンペーン（電話契約）
		parentMap.put("cp_tel_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
		// 電話番号（電話契約1番号目）
		parentMap.put("telno_tel1_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL1_TEL_NO, X31CWebConst.DATABEAN_GET_VALUE)));
		// オプションサービス（電話契約1番号目）
		parentMap.put("opti_tel1_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL1_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 電話番号（電話契約2番号目）
		parentMap.put("telno_tel2_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL2_TEL_NO, X31CWebConst.DATABEAN_GET_VALUE)));
		// オプションサービス（電話契約2番号目）
		parentMap.put("opti_tel2_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL2_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込番号（テレビ契約）
		parentMap.put("mskm_no_tv_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス（テレビ契約）
		parentMap.put("wrib_tv_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_WRIB_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 適用キャンペーン（テレビ契約）
		parentMap.put("cp_tv_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_APLY_CP, X31CWebConst.DATABEAN_GET_VALUE)));
		// オプションサービス（テレビ契約）
		parentMap.put("opti_tv_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_OP_SVC, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題1（テレビ契約）
		parentMap.put("mskm_dai_tv1_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース名1（テレビ契約）
		parentMap.put("mskm_course_tv1_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題2（テレビ契約）
		parentMap.put("mskm_dai_tv2_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース名2（テレビ契約）
		parentMap.put("mskm_course_tv2_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題3（テレビ契約）
		parentMap.put("mskm_dai_tv3_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース名3（テレビ契約）
		parentMap.put("mskm_course_tv3_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題4（テレビ契約）
		parentMap.put("mskm_dai_tv4_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース名4（テレビ契約）
		parentMap.put("mskm_course_tv4_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題5（テレビ契約）
		parentMap.put("mskm_dai_tv5_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース名5（テレビ契約）
		parentMap.put("mskm_course_tv5_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 契約内容変更・解除等に関する条項（テレビ契約）
		parentMap.put("joko_tv_kei", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_KYNYH_JYOKO, X31CWebConst.DATABEAN_GET_VALUE)));
		// お支払い方法
		parentMap.put("pay", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.PAY_WAY, X31CWebConst.DATABEAN_GET_VALUE)));
		// 基本料金（ネット）
		parentMap.put("kihon_cost_net", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_KIHONPRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 標準工事費（ネット）
		parentMap.put("hyojn_koji_net", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
		// 手数料（ネット）
		parentMap.put("tesuryo_net", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス料金（ネット）
		parentMap.put("wrib_cost_net", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// キャンペーン料金（ネット）
		parentMap.put("cp_cost_net", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.NET_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 基本料金（電話）
		parentMap.put("kihon_cost_tel", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_KIHONPRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 標準工事費（電話）
		parentMap.put("hyojn_koji_tel", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
		// 手数料（電話）
		parentMap.put("tesuryo_tel", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス料金（電話）
		parentMap.put("wrib_cost_tel", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// キャンペーン料金（電話）
		parentMap.put("cp_cost_tel", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TEL_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題1（テレビ料金）
		parentMap.put("mskm_stb_tv1_ryo", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込料金1（テレビ料金）
		parentMap.put("kihon_cost_tv1", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV1_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題2（テレビ料金）
		parentMap.put("mskm_stb_tv2_ryo", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込料金2（テレビ料金）
		parentMap.put("kihon_cost_tv2", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV2_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題3（テレビ料金）
		parentMap.put("mskm_stb_tv3_ryo", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込料金3（テレビ料金）
		parentMap.put("kihon_cost_tv3", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV3_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題4（テレビ料金）
		parentMap.put("mskm_stb_tv4_ryo", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込料金4（テレビ料金）
		parentMap.put("kihon_cost_tv4", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV4_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込コース表題5（テレビ料金）
		parentMap.put("mskm_stb_tv5_ryo", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_PRC_TITLE, X31CWebConst.DATABEAN_GET_VALUE)));
		// 申込料金5（テレビ料金）
		parentMap.put("kihon_cost_tv5", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV5_PRC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// 標準工事費（テレビ）
		parentMap.put("hyojn_koji_tv", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_STDARD_KOJIHI, X31CWebConst.DATABEAN_GET_VALUE)));
		// 手数料（テレビ）
		parentMap.put("tesuryo_tv", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_COMMISION, X31CWebConst.DATABEAN_GET_VALUE)));
		// 割引サービス料金（テレビ）
		parentMap.put("wrib_cost_tv", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_PRC_WRIBSVC_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// キャンペーン料金（テレビ）
		parentMap.put("cp_cost_tv", changeKaigyo(paramBean[0].sendMessageString(KKW21502SFConst.TV_PRC_CP_DTL, X31CWebConst.DATABEAN_GET_VALUE)));
		// IT2-2016-0000056 MOD END
		// 契約内容通知書番号
		parentMap.put("knytcs_no", paramBean[0].sendMessageString(KKW21502SFConst.KNYTCS_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 異動区分
		parentMap.put("ido_div", paramBean[0].sendMessageString(KKW21502SFConst.IDO_DIV, X31CWebConst.DATABEAN_GET_VALUE));

		// 帳票定義体の電子ファイル管理番号
		parentMap.put("in_chohyo_teigi_no", CHOHYO_KNYTCS);
		
		outputMap.put("FUSV029601CC", parentMap);


		return outputMap;
	}

	// IT2-2016-0000056 ADD START
	/**
	 * 年月日（YYYYMMDD）を"YYYY年MM月DD日"形式に編集します。<br>
	 * <p>
	 * <b>処理フロー</b><br>
	 * <pre>
	 * 1.年月日を"YYYY年MM月DD日"形式にします。<br>
	 *
	 * </pre>
	 * <p>
	 * @param data　編集する年月日。
	 * @return String　編集後年月日。
	 */
	private String editDate(String data)
	{
		StringBuffer value = new StringBuffer();
		
		if (data == null || data.length() < 8)
		{
			return "";
		}
		
		value.append(data.subSequence(0, 4));
		value.append("年");
		value.append((Integer.parseInt((String) data.subSequence(4, 6))));
		value.append("月");
		value.append((Integer.parseInt((String) data.subSequence(6, 8))));
		value.append("日");
		
		return value.toString();
	}

	/**
	 * 改行コード"\r\n"を"<br/>に変換します。
	 * @param Object
	 * @return String
	 */
	private String changeKaigyo(Object value)
	{
		if (JKKCommonUtil.isNull(value))
		{
			return JFUStrConst.EMPTY;
		}

		String replaceValue = (String)value;

		// \r\nを<br/>に置換
		replaceValue = replaceValue.replaceAll(JFUStrConst.RETURN_CODE, JFUStrConst.RETURN_CODE_BR);
		// \nを<br/>に置換
		replaceValue = replaceValue.replaceAll(JFUStrConst.S_LINE_SEPARAOR_LF, JFUStrConst.RETURN_CODE_BR);
		// \rを<br/>に置換
		replaceValue = replaceValue.replaceAll(JFUStrConst.S_LINE_SEPARAOR_CR, JFUStrConst.RETURN_CODE_BR);

		return replaceValue;
	}
	// IT2-2016-0000056 ADD END
}
