/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：JBSbatCHNknDelRecKnk
*	ソースファイル名	：JBSbatCHNknDelRecKnk.java
*	作成者				：富士通　
*	作成日				：2013年07月30日
*＜機能概要＞
*　入金削除レコード作成（金庫削除）部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v6.00.00	2013/11/21  FJ)伊藤		新規作成
*********************************************************************/
package eo.business.service;

import java.util.ArrayList;
import java.util.HashMap;

import eo.business.common.JACbatDebugLogUtil;
import eo.business.common.JACbatParamUtil;
import eo.business.common.JBSbatBusinessService;
import eo.business.util.file.JBSbatCHIFM207;
import eo.common.constant.JACStrConst;
import eo.common.util.JPCDateChecker;
import eo.common.util.JPCDateUtil;
import eo.framework.item.JBSbatCommonItem;
import eo.framework.item.JBSbatServiceInterfaceMap;
import eo.framework.item.JBSbatOutputItem;
import eo.framework.file.JBSbatDefFileUtil;
import eo.framework.file.JBSbatInputFileUtil;
import eo.framework.util.JBSbatAplConst;
import eo.framework.util.JBSbatDateUtil;

/**
* (クラスの機能概要) <p>
*<BR>
* @author 富士通
*/
public class JBSbatCHNknDelRecKnk extends JBSbatBusinessService
{
	/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
	
	/** 削除判定となる日付を入力 */
	private String judgeDate = JACStrConst.KARA_MOJI;
	
	/** 金庫削除可否情報マップ */
	private HashMap<String, String> kinkoDeleteInfoMap = new HashMap<String, String>();
	
	/** 遷移元金庫番号情報マップ */
	private HashMap<String, ArrayList<String>> senniMotoKinkoInfoMap = new HashMap<String, ArrayList<String>>();
	
	/** 遷移先金庫番号情報マップ */
	private HashMap<String, ArrayList<String>> senniSakiKinkoInfoMap = new HashMap<String, ArrayList<String>>();
	
	/** 関連金庫番号マップ */
	private HashMap<String, ArrayList<String>> kanrenKinkoNumberMap = new HashMap<String, ArrayList<String>>();
	
	/** 固定値 比較の際に同日を含むフラグ：1*/
	private final String DATE_SAME = "1";

	/** 固定値：履歴「"-2"」 */
	private final String C_HISTORY = "-2";
	
	/** 固定値：削除候補「"-1"」 */
	private final String DEL_KOUHO = "-1";
	
	/** 固定値：削除拒否「"0"」 */
	private final String DEL_NG = "0";
	
	/** 固定値：削除許可「"1"」 */
	private final String DEL_OK = "1";
	
	/** ファイル定義 */
	private final String PARAM_IND = "IND";
	
	/**
	 * 初期処理
	 * @param JBSbatCommonItem commonItem　バッチ共通パラメータ電文
	 * @throws Exception
	 */
	public void initial(JBSbatCommonItem commonItem) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
		
		// 共通パラメータを設定します
		super.setCommonInfo(commonItem);
		
		/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
		
		//条件日をセット
		setJudgeDate(commonItem);
		
		//フリー取得
		String[] freeItems = commonItem.getFreeItem().split(JACStrConst.SEMI_COLON);
		
		//削除候補金庫番号一覧
		ArrayList<String> deleteKouhoKinkoNumbers = new ArrayList<String>();
		
		//
		String kinkoListDef = freeItems[0];
		
		//
		String kinkoListPath = freeItems[1];
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][kinkoListPath=" + freeItems + "]");
		
		//ファイルを全て読み込み、全レコードをマップに代入
		for (JBSbatServiceInterfaceMap inMap : getMaps(kinkoListDef, kinkoListPath))
		{
			//取得マップより各設定値を取得
			
			//金庫番号
			String kinkoNumber = inMap.getString(JBSbatCHIFM207.KNK_NO);
			
			//履歴データフラグ
			String rirekiDataFlag = inMap.getString(JBSbatCHIFM207.RIREKI_DATA_FLG);
			
			//金庫移動コード
			String kinkoMoveCode = inMap.getString(JBSbatCHIFM207.KNK_MOVE_CD);
			
			//金庫移動年月日
			String kinkoIdoYMD = inMap.getString(JBSbatCHIFM207.KNK_IDO_YMD);
			
			//移動元金庫番号
			String idoMotoKinkoNumber = inMap.getString(JBSbatCHIFM207.IDOMOTO_KNK_NO);

			//統合先金庫番号
			String togoSakiKinkoNumber = inMap.getString(JBSbatCHIFM207.TOGO_KNK_NO);

			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][kinkoNumber=" + kinkoNumber + "]");

			//もし履歴データがカレントで
			if(rirekiDataFlag.equals(JACStrConst.KNK_RIREKI_DATA_FLG_CURRENT))
			{
				//条件を満たすレコードだったら
				if(judgeKinkoRecode(kinkoMoveCode,kinkoIdoYMD))
				{
					assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][kinkoNumber=" + kinkoNumber + " : DELETE_KINKO]");
					
					//削除候補でセット
					kinkoDeleteInfoMap.put(kinkoNumber, DEL_KOUHO);
					
					//削除対象リストに追加
					deleteKouhoKinkoNumbers.add(kinkoNumber);
				}
				else
				{
					//削除拒否でセット
					kinkoDeleteInfoMap.put(kinkoNumber, DEL_NG);
				}
			}
			else
			{
				//履歴でセット
				kinkoDeleteInfoMap.put(kinkoNumber, C_HISTORY);
			}

			//移動元金庫番号を所持していたら
			if(idoMotoKinkoNumber != null && ! idoMotoKinkoNumber.isEmpty())
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][idoMotoKinkoNumber=" + idoMotoKinkoNumber + "]");
				
				//移動元金庫番号が持つ、遷移先金庫番号リストを取得
				ArrayList<String> senniSakiList = senniSakiKinkoInfoMap.get(idoMotoKinkoNumber);
				
				//未設定なら新規作成
				if(senniSakiList == null)
					senniSakiList = new ArrayList<String>();
				
				//金庫番号を遷移先金庫番号に追加
				senniSakiList.add(kinkoNumber);
				
				//遷移先金庫マップに設定
				senniSakiKinkoInfoMap.put(idoMotoKinkoNumber,senniSakiList);
				
				//金庫番号が持つ、遷移元金庫番号リストを取得
				ArrayList<String> senniMotoList = senniMotoKinkoInfoMap.get(kinkoNumber);
				
				//未設定なら新規作成
				if(senniMotoList == null)
					senniMotoList = new ArrayList<String>();
				
				//移動元金庫番号を遷移元金庫番号に追加
				senniMotoList.add(idoMotoKinkoNumber);
				
				//遷移元金庫マップに設定
				senniMotoKinkoInfoMap.put(kinkoNumber, senniMotoList);
			}

			//統合先金庫番号を所持していたら
			if(togoSakiKinkoNumber != null && ! togoSakiKinkoNumber.isEmpty())
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][togoSakiKinkoNumber=" + togoSakiKinkoNumber + "]");
				
				//統合先金庫番号が持つ、遷移元金庫番号リストを取得
				ArrayList<String> senniMotoList = senniMotoKinkoInfoMap.get(togoSakiKinkoNumber);
				
				//未設定なら新規作成
				if(senniMotoList == null)
					senniMotoList = new ArrayList<String>();
				
				//金庫番号を遷移元金庫番号として追加
				senniMotoList.add(kinkoNumber);
				
				//遷移元金庫マップに設定
				senniMotoKinkoInfoMap.put(togoSakiKinkoNumber, senniMotoList);
				
				//金庫番号が持つ、遷移先金庫番号リストを取得
				ArrayList<String> senniSakiList = senniSakiKinkoInfoMap.get(kinkoNumber);
				
				//未設定なら新規作成
				if(senniSakiList == null)
					senniSakiList = new ArrayList<String>();
				
				//統合先金庫番号を遷移先金庫番号に追加
				senniSakiList.add(togoSakiKinkoNumber);
				
				//遷移先金庫マップに設定
				senniSakiKinkoInfoMap.put(kinkoNumber,senniSakiList);
			}
		}

		//全削除金庫番号でループ
		for (String deleteKinkoNumber : deleteKouhoKinkoNumbers)
		{
			//削除候補だったら各種処理へ
			if(kinkoDeleteInfoMap.get(deleteKinkoNumber).equals(DEL_KOUHO))
			{
				//削除候補金庫番号の関連金庫番号取得
				setKinkoNumberGroup(deleteKinkoNumber);
				
				///削除候補金庫番号の関連金庫番号の削除可否チェック
				setAndCheckDeleteKinko(deleteKinkoNumber);
			}
		}

		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
		
		senniMotoKinkoInfoMap.clear();
		senniSakiKinkoInfoMap.clear();
		kanrenKinkoNumberMap.clear();
		
	/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 主処理
	 * @param inMap　入力電文
	 * @return JBSbatOutputItem　出力情報
	 * @throws Exception
	 */
	public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
		
		//出力アイテムの設定
		JBSbatOutputItem outputItem = new JBSbatOutputItem();
		
		//金庫番号の取得
		String kinkoNumber = inMap.getString(JBSbatCHIFM207.KNK_NO);
		
		//削除対象かどうかをチェック
		if(kinkoDeleteInfoMap.get(kinkoNumber) == DEL_OK)
		{
			//出力に設定
			inMap.setOutFlg(true);
			outputItem.addOutMapList(inMap);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
		
		return outputItem;
	/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
	}

	/**
	 * 業務サービス終了処理
	 * @throws Exception
	 */
	public void terminal() throws Exception
	{
	/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
		/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
		/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
	/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
	}

	/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
	/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
	
	/**
	 * ファイルから全レコードを取得
	 * 
	 * @param id 定義ファイルID
	 * @return 全レコードマップ
	 * @throws Exception スローされる例外
	 */
	private ArrayList<JBSbatServiceInterfaceMap> getMaps(String id,String filePath) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getMaps]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getMaps][id=" + id + "]");
		
		//全レコードマップを格納するリスト配列を用意
		ArrayList<JBSbatServiceInterfaceMap> inMaps = new ArrayList<JBSbatServiceInterfaceMap>();
		
		//レコードの文字列を保管する変数
		String record = JACStrConst.KARA_MOJI;
		
		//各ファイルを取得
		JBSbatInputFileUtil readFile = new JBSbatInputFileUtil(filePath);
		readFile.setLine(JACStrConst.LINE_LF);
		readFile.setEncode(JACStrConst.ENCODE_SJIS);
		readFile.createReader();
		
		JBSbatDefFileUtil fileDef = getFileDefUtil(id,readFile);
		
		//ファイルのレコードを全て読む
		while (readFile.ready())
		{
			//一行読んで
			record = readFile.readLine();
			

			//マップとして配列に挿入
			inMaps.add(getRecMap(readFile,record,fileDef));
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getMaps]");
		
		return inMaps;
	}
	
	/**
	 * 定義ファイルIDから定義ファイルを取得
	 * 
	 * @param id 定義ファイルID
	 * @return 定義ファイル
	 * @throws Exception スローされる例外
	 */
	private JBSbatDefFileUtil getFileDefUtil(String fileId, JBSbatInputFileUtil inFileObj) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getFileDefUtil]");
		
		//定義ファイルフォルダ＋ID＋.defにする
		String filePath = JBSbatAplConst.getAplConstValue(PARAM_IND) + fileId;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][getFileDefUtil][filePath=" + filePath + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getFileDefUtil]");
		
		//ファイル取得しながらリターン
		return new JBSbatDefFileUtil(filePath, inFileObj);
	}

	/**
	 * ファイルからレコードを取得
	 * 
	 * @param inFileObj 入力ファイルオブジェクト
	 * @param sLine 行文字列
	 * @param fileDef ファイル定義名
	 * @return レコードマップ
	 * @throws Exception スローされる例外
	 */
	private JBSbatServiceInterfaceMap getRecMap(JBSbatInputFileUtil inFileObj, String sLine, JBSbatDefFileUtil fileDefObj) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][getRecMap][record=" + sLine + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][getRecMap]");
		
		//レコードを取得
		return fileDefObj.lineToObject(sLine, inFileObj, 0);
	}
	
	/**
	 * 条件判定日時を設定
	 * @param commonItem バッチ共通パラメータ電文
	 * @throws Exception スローされる例外
	 */
	private void setJudgeDate(JBSbatCommonItem commonItem) throws Exception
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setJudgeDate]");
		
		//バッチ共通パラメータを取得
		JACbatParamUtil paramUtil = new JACbatParamUtil(commonItem);
		
		//何ヶ月戻るかを設定する変数
		int revValue = 0;
		
		try
		{
			//設定された業務パラメータを取得(製造時は25)
			revValue = -1 * Integer.parseInt(paramUtil.getGyoumuParameter(JACStrConst.WKPARA_CH_DEL_CRITERIA_01));
		}
		finally
		{
			//パラメータクローズ
			paramUtil.close();
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setJudgeDate][revValue=" + revValue + "]");
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setJudgeDate][opeDate=" + super.opeDate + "]");
		
		//走行日（バッチ運用日）から業務パラメータ分の月を戻し（製造時は25ヶ月）、末日取得のために年月までにトリミングして取得。
		String judgeYm = JPCDateUtil.addMonth(super.opeDate, revValue).substring(0, 6);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setJudgeDate][judgeYm=" + judgeYm + "]");
		
		//末日を取得し、条件日にセット
		judgeDate = judgeYm + JBSbatDateUtil.getEndOfMonth(judgeYm);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setJudgeDate][judgeDate=" + judgeDate + "]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setJudgeDate]");
	}
	
	/**
	 * 金庫が削除対象かどうかを判定
	 * 
	 * @param kinkoMoveCode 金庫移動コード
	 * @param kinkoIdoYMD 金庫移動年月日
	 * @return
	 */
	private boolean judgeKinkoRecode(String kinkoMoveCode, String kinkoIdoYMD)
	{
		//処理済みか金庫取消のどちらかどうか
		if(kinkoMoveCode.equals(JACStrConst.KINKO_IDO_SYORI_ZUMI) || kinkoMoveCode.equals(JACStrConst.KINKO_IDO_TORIKESI))
		{
			//金庫移動年月日≦条件年月日：true　金庫移動年月日＞条件年月日：false
			return JPCDateChecker.isPastDate(kinkoIdoYMD, judgeDate, DATE_SAME);
		}
		
		return false;
	}
	
	/**
	 * 削除候補金庫番号に紐づく金庫番号を設定します
	 * @param deleteKouhoKinkoNumber 削除候補金庫番号
	 */
	private void setKinkoNumberGroup(String deleteKouhoKinkoNumber)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKinkoNumberGroup][deleteKouhoKinkoNumber="+ deleteKouhoKinkoNumber +"]");
		
		//金庫番号グループを生成
		ArrayList<String> kinkoNumberGroup = new ArrayList<String>();
		
		//まずは削除金庫番号自身を入力（重複防止のため）
		kinkoNumberGroup.add(deleteKouhoKinkoNumber);
		
		//金庫番号グループを金庫番号グループマップに設定
		kanrenKinkoNumberMap.put(deleteKouhoKinkoNumber, kinkoNumberGroup);
		
		//遷移元金庫番号一覧を取得
		ArrayList<String> senniMotoKinkoNumbers = senniMotoKinkoInfoMap.get(deleteKouhoKinkoNumber);
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setKinkoNumberGroup][senniMotoKinkoNumbers="+ senniMotoKinkoNumbers +"]");
		
		//遷移元金庫番号一覧が空でなければ
		if(senniMotoKinkoNumbers != null)
		{
			//全ての遷移元金庫番号に対し
			for(String senniMotoKinkoNumber : senniMotoKinkoNumbers)
			{
				//金庫番号グループに設定
				addKinkoNumberGroup(senniMotoKinkoNumber,deleteKouhoKinkoNumber);
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setKinkoNumberGroup][kinkoNumberGroup="+ kanrenKinkoNumberMap.get(deleteKouhoKinkoNumber) +"]");
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][setKinkoNumberGroup]");
	}
	
	/**
	 * 関連金庫番号に、金庫番号を追加します
	 * @param addKinkoNumber 追加する金庫番号
	 * @param keyKinkoNumber 追加先となるキー金庫番号
	 */
	private void addKinkoNumberGroup(String addKinkoNumber, String keyKinkoNumber)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][addKinkoNumberGroup]");
		
		//追加先金庫番号グループの取得
		ArrayList<String> kinkoNumberGroup = kanrenKinkoNumberMap.get(keyKinkoNumber);
		
		//追加番号がまだ所持していない番号なら
		if(! kinkoNumberGroup.contains(addKinkoNumber))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][addKinkoNumberGroup][addKinkoNumber=" + addKinkoNumber + "]");
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][addKinkoNumberGroup][addKinkoNumberGroupkey=" + keyKinkoNumber + "]");
			
			//グループに追加
			kinkoNumberGroup.add(addKinkoNumber);
		}
		
		//追加番号が所持している金庫番号を取得するための配列を用意
		ArrayList<String> haveKinkoNumbers = new ArrayList<String>();
		
		//遷移先金庫番号一覧を取得し、空でなければ所持番号一覧に追加
		ArrayList<String> senniSakiKinkoNumbers = senniSakiKinkoInfoMap.get(addKinkoNumber);
		if(senniSakiKinkoNumbers != null)
		{
			haveKinkoNumbers.addAll(senniSakiKinkoNumbers);
		}
		
		//遷移元金庫番号一覧を取得し、空でなければ所持番号一覧に追加
		ArrayList<String> senniMotoKinkoNumbers = senniMotoKinkoInfoMap.get(addKinkoNumber);
		if(senniMotoKinkoNumbers != null)
		{
			haveKinkoNumbers.addAll(senniMotoKinkoNumbers);
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][addKinkoNumberGroup][haveKinkoNumbers=" + haveKinkoNumbers + "]");
		
		//所持番号一覧が空でなければ
		if(haveKinkoNumbers != null)
		{
			//全所持番号一覧に対し
			for(String haveKinkoNumber : haveKinkoNumbers)
			{
				//所持番号がまだ追加されていなければ
				if(! kinkoNumberGroup.contains(haveKinkoNumber))
				{
					//金庫番号をグループに追加（回帰処理）
					addKinkoNumberGroup(haveKinkoNumber,keyKinkoNumber);
				}
			}
		}
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][addKinkoNumberGroup]");
	}
	
	/**
	 * 削除金庫番号に紐づく金庫が全て削除対象かどうかをチェックします
	 * @param deleteKouhoKinkoNumber 削除候補金庫番号
	 */
	private void setAndCheckDeleteKinko(String deleteKouhoKinkoNumber)
	{
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setAndCheckDeleteKinko][deleteKouhoKinkoNumber="+ deleteKouhoKinkoNumber +"]");
		
		//削除金庫番号に紐づく金庫番号の一覧を取得
		ArrayList<String> kinkoNumberGroup = kanrenKinkoNumberMap.get(deleteKouhoKinkoNumber);
		
		//設定値(初期値：許可)
		String setValue = DEL_OK;
		
		assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setAndCheckDeleteKinko][deleteKouhoKinkoNumberGroup="+ kinkoNumberGroup +"]");
		
		//全金庫番号に対し
		for(String kinkoNumber : kinkoNumberGroup)
		{
			String deleteFlag = kinkoDeleteInfoMap.get(kinkoNumber);
			
			if(deleteFlag == null || deleteFlag.equals(JACStrConst.KARA_MOJI))
			{
				continue;
			}
			
			//もし金庫が削除拒否なら
			if(deleteFlag.equals(DEL_NG))
			{
				//設定値を削除拒否にしてループから脱出
				setValue = DEL_NG;
				
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setAndCheckDeleteKinko][kinkoNumber=" + kinkoNumber + ": DEL_NG]");
				
				break;
			}
			else if(deleteFlag.equals(C_HISTORY))
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setAndCheckDeleteKinko][kinkoNumber=" + kinkoNumber + ": RIREKI]");
			}
			else
			{
				assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][setAndCheckDeleteKinko][kinkoNumber=" + kinkoNumber + ": DEL_SUSPENSION]");
			}
		}
		
		if(setValue.equals(DEL_OK))
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setAndCheckDeleteKinko][deleteKinkoNumber="+ deleteKouhoKinkoNumber +": DEL_OK]");
		}
		else
		{
			assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][setAndCheckDeleteKinko][deleteKinkoNumber="+ deleteKouhoKinkoNumber +": DEL_NG]");
		}
		
		//全金庫番号に
		for(String kinkoNumber : kinkoNumberGroup)
		{
			//設定値をセット。
			kinkoDeleteInfoMap.put(kinkoNumber, setValue);
		}
	}
}
