/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：KKW13501SFLogic
*   ソースファイル名：KKW13501SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年11月11日
*＜機能概要＞
*   工事完了チェック画面 Viewロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/11/11   FJ）宇野    新規作成
*   v4.00.00    2013/02/07   FJ）間瀬    【IT1-2013-0000132】対応
*   v4.01.00    2013/03/06   FJ）間瀬    【IT1-2013-0000484】対応
*   v4.02.00    2013/04/08   FJ）間瀬    【IT1-2013-0000796】対応
*   v5.00.01    2013/07/08   FJ）宇野    【IT1-2013-0009999】対応
**********************************************************************/

package eo.web.webview.KKW13501SF;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;


import eo.common.constant.JPCOnlineMessageConstant;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW13501SF.KKW13501SFConst;
import eo.web.webview.common.JCCUploadRestrictionCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.mapping.KKSV0552_KKSV0552OPDBMapper;

public class KKW13501SFLogic extends JCCWebBusinessLogic
{
    
	/**
	 * ファイルキー
	 */
	private static final String SESSION_KEY_FILE = "fileKey";
	
	/** キャリッジリターン */
	private static final String LINE_CODE_CR = "\r";

	/** ラインフィード */
	private static final String LINE_CODE_LF = "\n";

	/* ++++++++++ v4.01.00 削除開始 ++++++++++ */
	/** 改行コード */
//	private static final String LINE_SEPARATOR = LINE_CODE_CR + LINE_CODE_LF;
	/* ++++++++++ v4.01.00 削除開始 ++++++++++ */
	
	/** カンマ */
	private static final String CANMA = ",";
	
	private List<HashMap<String, Object>> koji_list = null;
	
	/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
	/** KEY upload.properties ファイルアップロード上限サイズ */
	private static final String KEY_FILEUPLOAD_DEFAULT_SIZE = "FILEUPLOAD_DEFAULT_SIZE";

	/** upload.properties ファイルアップロード上限サイズ 単位 */
	private static final String FILE_UPLOAD_SIZE_UNIT = "Mバイト";

	/** ファイル選択 画面 項目ID */
	private static final String CHOICE_FILE_NM = "choice_file_nm";

	/** 一時ファイル情報取得 KEY 結果 */
	private static final String KEY_FILE_UPLOAD_RET_CODE = "resultCode";
	
	/** 一時ファイル情報取得 正常時 */
	private static final String FILE_INFO_OK = "FILE_INFO_OK";
	
	/** 一時ファイル情報取得 拡張子 NG */
	private static final String FILE_EXTENSION_ERROR = "FILE_EXTENSION_ERROR";
	
	/** 一時ファイル情報取得 0バイトファイル */
	private static final String FILE_SIZE_ZERO = "FILE_SIZE_ZERO";
	
	/** 一時ファイル情報取得 ファイルサイズ超過 */
	private static final String FILE_SIZE_OVER = "FILE_SIZE_NG";
	
	/** 一時ファイル情報取得 ファイルが存在しない */
	private static final String FILE_NOT_EXIST = "FILE_NOT_EXIST";
	
	/** 一時ファイル情報取得 ファイル情報取得失敗 */
	private static final String FILE_INFO_READ_ERROR = "FILE_INFO_READ_ERROR";
	
	/** 一時ファイル情報取得 設定ファイルの読み込み失敗 */
	private static final String PROPERTY_READ_ERROR = "PROPERTY_READ_ERROR";
	/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
	
	/**
	 * 工事完了チェック画面 初期表示処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean init() throws Exception
	{
		
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13501);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13501);

		return true;
	}
	/**
	 * チェック開始ボタンを処理します。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean chkKaisi() throws Exception
	{
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 取得したファイルを文字列に変換します。
		String file = this.getFileAsString();
		/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
		if(file.equals("false")){
			return false;
		}
		/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
		if(file == null){
			
			JCCWebCommon.setMessageInfo(this, "EKB0750-KW", "choice_file_nm");
			return false;
		}
		
		/* ++++++++++ v4.01.00 追加開始 ++++++++++ */
		String[] lines = convStringArray(file);
		/* ++++++++++ v4.01.00 追加終了 ++++++++++ */
		
		// ファイル内容の半角英数字のチェックをします
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//		if (!this.isValidColumns(file))
		if (!this.isValidColumns(lines))
		/* ++++++++++ v4.01.00 修正終了 ++++++++++ */
		{
			// 一時ファイルの削除
			JCCWebCommon.deleteCache( this );
			return false;
		}
		
		
		X31SDataBeanAccess[] paramBean = {serviceBean};
		callService_KKSV0552(paramBean);

		/* ++++++++++ v4.01.00 削除開始 ++++++++++ */
//		String[] lines = file.split(LINE_SEPARATOR);
		/* ++++++++++ v4.01.00 削除終了 ++++++++++ */
		// 調査件数の転記
		serviceBean.sendMessageString(KKW13501SFConst.CHOSA_CNT, X31CWebConst.DATABEAN_SET_VALUE, Integer.toString(lines.length));
		
		// 一時ファイルの削除
		JCCWebCommon.deleteCache( this );
		
		// ■ 画面項目の制御
		// 実行件数が0件の場合ダウンロードボタンを非活性に設定
		if ("0".equals(serviceBean.sendMessageString(KKW13501SFConst.RUN_CNT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceBean.sendMessageBoolean(KKW13501SFConst.DOWNLOAD_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
		else
		{
			serviceBean.sendMessageBoolean(KKW13501SFConst.DOWNLOAD_BTN_FLG, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13502);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13502);
		return true;
	}
	/**
	 * ファイルの内容を文字列で取得します。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	private String getFileAsString() throws Exception
	{
		// 指定したファイル情報を取得する。
		ArrayList<HashMap<String, Object>>  fileInfoList  = JCCWebCommon.getFileInfoArray(this);
		
		HashMap fileInfoMap = fileInfoList.get(0);
		
		/* ++++++++++ v4.00.00 修正開始 ++++++++++ */
		// 共有フォームBean取得
		X31SDataBeanAccess commonBean = getCommonInfoBean();
		String retCode = (String)fileInfoMap.get(KEY_FILE_UPLOAD_RET_CODE);
		
		if(!FILE_INFO_OK.equals(retCode))
		{
			
			String msgId = "";
			String[] strMsg = null;
			
			if(FILE_EXTENSION_ERROR.equals(retCode))
			{
				
				// 拡張子 NG の場合 メッセージID:EKB8870_TW
				msgId = JPCOnlineMessageConstant.EKB8870_TW;
			}
			else if(FILE_SIZE_ZERO.equals(retCode))
			{
				
				// 0バイトファイルの場合 メッセージID:EKB0750-KW
				msgId = JPCOnlineMessageConstant.EKB0750_KW;
			}
			else if(FILE_SIZE_OVER.equals(retCode))
			{
				
				// ファイルサイズ超過の場合 メッセージID:EKBB030-KW
				msgId = JPCOnlineMessageConstant.EKBB030_KW;
				
				// 置換え文字列セット
				strMsg = new String[] {JCCUploadRestrictionCache.getValue(KEY_FILEUPLOAD_DEFAULT_SIZE) + FILE_UPLOAD_SIZE_UNIT};
			}
			else if(FILE_NOT_EXIST.equals(retCode) || FILE_INFO_READ_ERROR.equals(retCode) || PROPERTY_READ_ERROR.equals(retCode))
			{
				
				// ファイルが存在しない場合
				// ファイル情報取得失敗の場合
				// 設定ファイルの読み込み失敗の場合 メッセージID:EKB0680-KW
				msgId = JPCOnlineMessageConstant.EKB0680_KW;
				
			}
			
			// メッセージセット
			if(strMsg == null)
			{
				JCCWebCommon.setMessageInfo(this, msgId, CHOICE_FILE_NM);
			}
			else
			{
				JCCWebCommon.setMessageInfo(this, msgId, strMsg, CHOICE_FILE_NM);
			}
			// 戻り先セット
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13501);
			commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13501);
			return "false";
		}
		/* ++++++++++ v4.00.00 修正終了 ++++++++++ */
		// アップロード一時ファイルが存在しない場合
		else if(fileInfoMap.get(SESSION_KEY_FILE) != null)
		{
		
			String renbanKey = fileInfoMap.get(SESSION_KEY_FILE).toString();
		
			byte[] fileByte = JCCWebCommon.getFile(this, renbanKey);
		
			return new String(fileByte);
		}
		else
		{
			return null;
		}
	}

	/**
	 * ファイルを行毎に読み込み配列にします。
	 * <BR>
	 * @author 富士通
	 * @param file 精査するファイル
	 * @return strArray:配列
	 */
	private String[] convStringArray(String file) throws IOException
	{
		
		BufferedReader br = new BufferedReader(new StringReader(file));
		List<String> list = new LinkedList<String>();
		String[] strArray;
		
		String str;
		
		while((str = br.readLine()) != null){
			
			list.add(str);
			
		}
		
		strArray = (String[])list.toArray(new String[]{});
		
		return strArray;
	}

	/**
	 * ファイルの行毎に期待される項目内容をチェックします。
	 * <BR>
	 * @author 富士通
	 * @param file 精査するファイル
	 * @return true:エラーなし false:エラーあり
	 */
	/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//	private boolean isValidColumns(String file)
	private boolean isValidColumns(String[] lines)
	/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
	{
		boolean err = true;
		
		// サービスフォームBean
		X31SDataBeanAccess srvBean = getServiceFormBean();

		/* ++++++++++ v4.01.00 削除開始 ++++++++++ */
		// ファイルから取得したデータを改行コードで分割する
//		String[] lines = file.split(LINE_SEPARATOR);
		/* ++++++++++ v4.01.00 削除開始 ++++++++++ */
		HashMap<String, Object> koji_data = null;
		koji_list = new ArrayList<HashMap<String, Object>>();
		
		for (int i = 0; i < lines.length; i++)
		{
			
			String line = lines[i].replaceAll("\"", "");
			String [] columns = line.split(CANMA);
			String[] msg = {line};
			koji_data = new HashMap<String, Object>();
			
			/* ++++++++++ v5.00.01 修正開始 ++++++++++ */
			/**
			 * v5.00.01 修正
			 * 2カラム目「工事案件番号」が空白の場合、項目数が"1"になってしまうため
			 * 後続処理を変更する。
			 */
			// レコードの項目数
			// データのレコードの項目数が2以外の場合エラー
//			if (columns.length != 2)
//			{
//				JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
//				err = false;
//				continue;
//			}
//			
//			// お客様IDが設定されている場合、以下のチェックを行う。
//			if (columns[0].length() > 0 && !"".equals(columns[0].trim()))
//			{
//				
//				// お客様IDが10桁でない場合エラー
//				if (columns[0].length() != 10)
//				{
//					JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
//					err = false;
//					continue;
//				}
//				
//				// お客様IDが半角英数字でない場合エラー
//				if (!isValidColumnData(columns[0]))
//				{
//					JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
//					err = false;
//					continue;
//				}
//					
//				// 工事案件番号が設定されている場合、以下のチェックを行う。
//				if (columns[1].length() > 0 && !"".equals(columns[1].trim()))
//				{
//					// 工事案件番号が10桁でない場合エラー
//					if (columns[1].length() != 10)
//					{
//						JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
//						err = false;
//						continue;
//					}
//					// 工事案件番号が半角英数字でない場合エラー
//					if (!isValidColumnData(columns[1]))
//					{
//						JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
//						err = false;
//						continue;
//					}
//				}
//				koji_data.put("svc_kei_no", columns[0]);
//				koji_data.put("kojiak_no", columns[1]);
//				koji_list.add(koji_data);
//			}
			
			// レコードの項目数
			// データのレコードの項目数が1の場合(工事案件番号未設定を想定
			if (columns.length == 1 || columns.length == 2)
			{
				
				for(int j=0; j < columns.length; j++)
				{
					if(!isColumnCheck(columns[j], msg))
					{
						err = false;
						continue;
					}
				}
			}
			else
			{
				JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
				err = false;
				continue;
			}
			
			// 不正チェック時エラーなら処理中断
			if(err == false)
			{
				continue;
			}
			
			// koji_data にサービス契約番号をセット
			koji_data.put("svc_kei_no", columns[0]);
			
			// koji_data に工事案件番号または空白をセット
			String kojiak_no = "";
			if(columns.length == 2)
			{
				kojiak_no = columns[1];
			}
			koji_data.put("kojiak_no", kojiak_no);
			
			// 結果を koji_listにセット
			koji_list.add(koji_data);
		/* ++++++++++ v5.00.01 修正完了 ++++++++++ */
			
		}
		
		return err;
	}
	
	/* ++++++++++ v5.00.01 追加開始 ++++++++++ */
	/**
	 * 対象項目の単項目チェックを行います。
	 * <br>
	 * @param target
	 * @param msg
	 * @return
	 */
	private boolean isColumnCheck(String target, String[] msg)
	{
		boolean err = true;
		
		// 対象項目が10桁でない場合エラー
		if (target.length() != 10)
		{
			JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
			err = false;
		}
		
		// 対象項目が半角英数字でない場合エラー
		if (!isValidColumnData(target))
		{
			JCCWebCommon.setMessageInfo(this, "EKB8880-NW", msg, "choice_file_nm");
			err = false;
		}
		
		return err;
	}
	/* ++++++++++ v5.00.01 追加完了 ++++++++++ */
	
	/**
	 * ファイル内容のチェック(半角英数字チェック)
	 * <BR>
	 * @author 富士通
	 * @param column 精査する文字列
	 * @return true:エラーなし false:エラーあり
	 */
	private boolean isValidColumnData(String column)
	{
		// 文字列が半角英数字のみか判定する
		if (column.matches("[0-9A-Z]+"))
		{
			return true;
		}
		
		return false;
	}
	/**
	 * サービス（KKSV0552）の呼び出しを行います。
	 * <br>
	 * @param paramBean パラメータとなるBean情報
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private boolean callService_KKSV0552(X31SDataBeanAccess[] paramBean) throws Exception
	{
		// 共有フォームBeanのアクセスクラス取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		// サービスフォームビーン
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		
		//(2) 3.1.1 サービス呼出処理(callService)実行
		
		// 検索処理のユースケースID格納用マップを生成
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "KKSV0552");
		
		// データBeanとBPをマッピングするインスタンスを生成
		KKSV0552_KKSV0552OPDBMapper mapper = new KKSV0552_KKSV0552OPDBMapper();
		
		// 検索条件格納用マップを生成
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		// 処理結果格納用マップを生成
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 検索処理パターン
		mapper.setKKSV055201CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		HashMap<String, Object> temMap = (HashMap<String, Object>)inputMap.get("KKSV055201CC");
		temMap.put("koji_chk_list", koji_list);
		
		inputMap.put("KKSV055201CC", temMap);
		
		
		
		// サービスの呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理
		if(msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}
		
		// サービス結果の転記
		mapper.getKKSV055201CC(paramBean, outputMap);
		
		return true;
	}

	/**
	 * ダウンロード処理
	 * <BR>
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	public boolean download() throws Exception
	{
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// サービスフォームBean
		X31SDataBeanAccess bean = getServiceFormBean();
		
		// 選択したデータのCSVファイルを作成する
		// ダウンロードファイ名の作成をする
		String fileNm = "KOJI_FIN_CHK_" + JCCWebCommon.getSysDateTime() + ".csv";
/* ++++++++++ v4.02.00 修正開始 ++++++++++ */
		// 生成データをバイトでセット
//		JCCWebCommon.setTempDownloadFile(this, kojicsvFile(bean).getBytes(), fileNm);
		JCCWebCommon.setTempDownloadFile(this, kojicsvFile(bean).getBytes("Windows-31J"), fileNm);
/* ++++++++++ v4.02.00 修正終了 ++++++++++ */
		
		
		return true;
	}
	/**
	 * 工事完了チェックリストのデータファイルを生成します。
	 * <BR>
	 * @param paramBean パラメータとなるBean情報
	 * @return String 工事完了チェックリストデータファイル
	 */
	private String kojicsvFile(X31SDataBeanAccess serviceBean)
	{
		X31SDataBeanAccessArray csvList = serviceBean.getDataBeanArray(KKW13501SFConst.KOJIFIN_CHK_LIST);
		
		// csvファイルのヘッダー部を作成する
		StringBuffer csvRecord = new StringBuffer();
		
		// データ部を作成する
		for(int i = 0; i < csvList.getCount(); i++)
		{
			dataRecordSuccess(csvList.getDataBean(i),csvRecord);
		}
		
		csvRecord.insert(0, headerRecordSuccess().toString());
		
		return csvRecord.toString();
	}
	/**
	 *  工事完了チェックリストファイルのデータ部をCSV形式で作成します。
	 * <BR>
	 * @param paramBean パラメータとなるBean情報
	 * @return StringBuffer 工事完了チェックリストファイルのデータ部
	 */
	private void dataRecordSuccess(X31SDataBeanAccess serviceBean, StringBuffer strbuf)
	{
		
		
		String str = serviceBean.sendMessageString(KKW13501SFConst.NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		strbuf.append(addDubleQ(str));
		strbuf.append(CANMA);
		str = serviceBean.sendMessageString(KKW13501SFConst.CUST_ID_02, X31CWebConst.DATABEAN_GET_VALUE);
		strbuf.append(addDubleQ(str));
		strbuf.append(CANMA);
		str = serviceBean.sendMessageString(KKW13501SFConst.KOJIAK_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
		strbuf.append(addDubleQ(str));
		strbuf.append(CANMA);
		str = serviceBean.sendMessageString(KKW13501SFConst.STAT_02, X31CWebConst.DATABEAN_GET_VALUE);
		strbuf.append(addDubleQ(str));
		strbuf.append(System.getProperty("line.separator"));
		
	}
	/**
	 * 工事完了チェックリスト.csvのヘッダ行を生成します。
	 * <BR>
	 * @return StringBuffer 工事完了チェックリストファイルのデータ部
	 */
	private StringBuffer headerRecordSuccess()
	{
		StringBuffer strbuf = new StringBuffer();
		
		strbuf.append(addDubleQ("No."));
		strbuf.append(CANMA);
		strbuf.append(addDubleQ("お客様ID"));
		strbuf.append(CANMA);
		strbuf.append(addDubleQ("工事案件番号"));
		strbuf.append(CANMA);
		strbuf.append(addDubleQ("状態"));
		strbuf.append(System.getProperty("line.separator"));
		
		return strbuf;
	}
	
	/**
	 * 文字列をダブルクォーで囲む
	 * @param src 囲まれる文字列
	 * @return \"囲まれる文字列\"
	 */
	private String addDubleQ(String src)
	{
		return String.format("\"%s\"", src);
	}
	/**
	 * 戻るボタン押下処理。
     * <BR>
	 * @return boolean
	 * @throws Exception 
	 */
	public boolean back() throws Exception
	{
		// サービスフォームBeanのアクセスクラス取得
		X31SDataBeanAccess serviceBean = super.getServiceFormBean();
		
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();

		// セッションへ詰め込むHashMap生成
		HashMap<String,Object> paramMap = new HashMap<String,Object>();
		
		serviceBean.getDataBeanArray(KKW13501SFConst.KOJIFIN_CHK_LIST).clearArray();
		
		
		// 呼出し元画面IDを取得
		String parentScreenId = JCCWebCommon.getScreenId(this);
		
		// 呼出し元画面に渡す情報のセット
		JCCWebCommon.setScreenInfo(this, parentScreenId, paramMap);
		
		// 工事完了チェック画面へ画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_ID_KKW13501);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JKKScreenConst.SCREEN_NAME_KKW13501);

		return true;
	}

}
