/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JKKOtokTeianHaneiCC
*   ソースファイル名：JKKOtokTeianHaneiCC.java
*   作成者          ：FJ
*   日付            ：2021年06月09日
*＜機能概要＞
*   お得情報提案結果反映の共通コンポーネント
*＜修正履歴＞
*   バージョン  修正日      修正者     修正内容
*   v53.00.00   2021/06/09  FJ)寺川    【ANK-4047-00-00】新規作成
*   v53.01.00   2021/07/02  FJ)加藤    【OM-2021-0001020】
**********************************************************************/
package com.fujitsu.futurity.bp.custom.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.bp.x21.bpm.ServiceComponentRequestInvoker;
import com.fujitsu.futurity.bp.x21.bpm.db.SessionHandle;
import com.fujitsu.futurity.bp.x21.bpm.exception.RequestParameterException;
import com.fujitsu.futurity.bp.x21.bpm.parameter.IRequestParameterReadWrite;
import com.fujitsu.futurity.bp.x21.cc.AbstractCommonComponent;
import com.fujitsu.futurity.bp.x21.cc.exception.SCCallException;
import com.fujitsu.futurity.common.JCMConstants;
import com.fujitsu.futurity.common.x01.sc.SCControlMapKeys;
import com.fujitsu.futurity.mapping.bp.common.TemplateErrorUtil;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.model.common.check.CharacterCheck;
import com.fujitsu.futurity.model.common.check.DatetimeCheck;
import com.fujitsu.futurity.model.common.check.EmsizeCharCheck;
import com.fujitsu.futurity.model.common.check.HalfCharCheck;
import com.fujitsu.futurity.model.common.check.LengthCheck;

import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JKKStringUtil;
import eo.ejb.cbs.cbsmsg.ECK0281A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.ECK0281C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3311A010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3311A010CBSMsg1List;
import eo.ejb.cbs.cbsmsg.EKK3311C010CBSMsg;
import eo.ejb.cbs.cbsmsg.EKK3311D010CBSMsg;

/**
 * お得情報提案結果反映の共通コンポーネントクラスです。
 * <br>
 * @author 富士通
 *
 */
public class JKKOtokTeianHaneiCC extends AbstractCommonComponent
{
	/** テンプレートID(EKK3311A010) 提案結果一意照会 */
	private static final String TEMPLATE_ID_EKK3311A010 = "EKK3311A010";
	/** テンプレートID(EKK3311C010) 提案結果更新 */
	private static final String TEMPLATE_ID_EKK3311C010 = "EKK3311C010";
	/** テンプレートID(EKK3311D010) 提案結果登録 */
	private static final String TEMPLATE_ID_EKK3311D010 = "EKK3311D010";

	/** SYSID */
	private static final String SYSID = "SYSID";
	/** お得区分 */
	private static final String OTOKDIV = "otokuClass";
	/** 提案チャネル */
	private static final String TEIANCHANEL = "suggestionChannel";
	/** 項目1 */
	private static final String ITEM01 = "item01";
	/** 項目2 */
	private static final String ITEM02 = "item02";
	/** 項目3 */
	private static final String ITEM03 = "item03";
	/** 項目4 */
	private static final String ITEM04 = "item04";
	/** 項目5 */
	private static final String ITEM05 = "item05";
	/** 項目6 */
	private static final String ITEM06 = "item06";
	/** 項目7 */
	private static final String ITEM07 = "item07";
	/** 項目8 */
	private static final String ITEM08 = "item08";
	/** 項目9 */
	private static final String ITEM09 = "item09";
	/** 項目10 */
	private static final String ITEM10 = "item10";
	/** 項目11 */
	private static final String ITEM11 = "item11";
	/** 項目12 */
	private static final String ITEM12 = "item12";
	/** 項目13 */
	private static final String ITEM13 = "item13";
	/** 項目14 */
	private static final String ITEM14 = "item14";
	/** 項目15 */
	private static final String ITEM15 = "item15";
	/** 項目16 */
	private static final String ITEM16 = "item16";
	/** 項目17 */
	private static final String ITEM17 = "item17";
	/** 項目18 */
	private static final String ITEM18 = "item18";
	/** 項目19 */
	private static final String ITEM19 = "item19";
	/** 項目20 */
	private static final String ITEM20 = "item20";
	/** 項目21 */
	private static final String ITEM21 = "item21";
	/** 項目22 */
	private static final String ITEM22 = "item22";
	/** 項目23 */
	private static final String ITEM23 = "item23";
	/** 項目24 */
	private static final String ITEM24 = "item24";
	/** 項目25 */
	private static final String ITEM25 = "item25";
	/** 項目26 */
	private static final String ITEM26 = "item26";
	/** 項目27 */
	private static final String ITEM27 = "item27";
	/** 項目28 */
	private static final String ITEM28 = "item28";
	/** 項目29 */
	private static final String ITEM29 = "item29";
	/** 項目30 */
	private static final String ITEM30 = "item30";
	/** 項目31 */
	private static final String ITEM31 = "item31";
	/** 項目32 */
	private static final String ITEM32 = "item32";
	/** 項目33 */
	private static final String ITEM33 = "item33";
	/** 項目34 */
	private static final String ITEM34 = "item34";
	/** 項目35 */
	private static final String ITEM35 = "item35";
	/** 項目36 */
	private static final String ITEM36 = "item36";
	/** 項目37 */
	private static final String ITEM37 = "item37";
	/** 項目38 */
	private static final String ITEM38 = "item38";
	/** 項目39 */
	private static final String ITEM39 = "item39";
	/** 項目40 */
	private static final String ITEM40 = "item40";
	/** 項目41 */
	private static final String ITEM41 = "item41";
	/** 項目42 */
	private static final String ITEM42 = "item42";
	/** 項目43 */
	private static final String ITEM43 = "item43";
	/** 項目44 */
	private static final String ITEM44 = "item44";
	/** 項目45 */
	private static final String ITEM45 = "item45";
	/** 項目46 */
	private static final String ITEM46 = "item46";
	/** 項目47 */
	private static final String ITEM47 = "item47";
	/** 項目48 */
	private static final String ITEM48 = "item48";
	/** 項目49 */
	private static final String ITEM49 = "item49";
	/** 項目50 */
	private static final String ITEM50 = "item50";
	/** 項目51 */
	private static final String ITEM51 = "item51";
	/** 項目52 */
	private static final String ITEM52 = "item52";
	/** 項目53 */
	private static final String ITEM53 = "item53";
	/** 項目54 */
	private static final String ITEM54 = "item54";
	/** 項目55 */
	private static final String ITEM55 = "item55";
	/** 項目56 */
	private static final String ITEM56 = "item56";
	/** 項目57 */
	private static final String ITEM57 = "item57";
	/** 項目58 */
	private static final String ITEM58 = "item58";
	/** 項目59 */
	private static final String ITEM59 = "item59";
	/** 項目60 */
	private static final String ITEM60 = "item60";
	/** 項目61 */
	private static final String ITEM61 = "item61";
	/** 項目62 */
	private static final String ITEM62 = "item62";
	/** 項目63 */
	private static final String ITEM63 = "item63";
	/** 項目64 */
	private static final String ITEM64 = "item64";
	/** 項目65 */
	private static final String ITEM65 = "item65";
	/** 項目66 */
	private static final String ITEM66 = "item66";
	/** 項目67 */
	private static final String ITEM67 = "item67";
	/** 項目68 */
	private static final String ITEM68 = "item68";
	/** 項目69 */
	private static final String ITEM69 = "item69";
	/** 項目70 */
	private static final String ITEM70 = "item70";
	/** 項目71 */
	private static final String ITEM71 = "item71";
	/** 項目72 */
	private static final String ITEM72 = "item72";
	/** 項目73 */
	private static final String ITEM73 = "item73";
	/** 項目74 */
	private static final String ITEM74 = "item74";
	/** 項目75 */
	private static final String ITEM75 = "item75";
	/** 項目76 */
	private static final String ITEM76 = "item76";
	/** 項目77 */
	private static final String ITEM77 = "item77";
	/** 項目78 */
	private static final String ITEM78 = "item78";
	/** 項目79 */
	private static final String ITEM79 = "item79";
	/** 項目80 */
	private static final String ITEM80 = "item80";
	/** 項目81 */
	private static final String ITEM81 = "item81";
	/** 項目82 */
	private static final String ITEM82 = "item82";
	/** 項目83 */
	private static final String ITEM83 = "item83";
	/** 項目84 */
	private static final String ITEM84 = "item84";
	/** 項目85 */
	private static final String ITEM85 = "item85";
	/** 項目86 */
	private static final String ITEM86 = "item86";
	/** 項目87 */
	private static final String ITEM87 = "item87";
	/** 項目88 */
	private static final String ITEM88 = "item88";
	/** 項目89 */
	private static final String ITEM89 = "item89";
	/** 項目90 */
	private static final String ITEM90 = "item90";
	/** 項目91 */
	private static final String ITEM91 = "item91";
	/** 項目92 */
	private static final String ITEM92 = "item92";
	/** 項目93 */
	private static final String ITEM93 = "item93";
	/** 項目94 */
	private static final String ITEM94 = "item94";
	/** 項目95 */
	private static final String ITEM95 = "item95";
	/** 項目96 */
	private static final String ITEM96 = "item96";
	/** 項目97 */
	private static final String ITEM97 = "item97";
	/** 項目98 */
	private static final String ITEM98 = "item98";
	/** 項目99 */
	private static final String ITEM99 = "item99";

	/** お得リスト */
	private static final String OTOKLIST = "otokuList";

	/** 処理結果 */
	private static final String RESULT = "result";

	/** 処理結果(0:正常終了) */
	private static final String RESULT_OK = "0";

	/** CCパラメータ エラー情報 */
	private static final String ERROR_INFO = "ERROR_INFO";
	/** CCパラメータ エラーコード */
	private static final String ERROR_CODE = "errCode";
	/** CCパラメータ エラーメッセージ */
	private static final String ERROR_MESSAGE = "errMessage";

	/** 必須チェック 必須（NOT NULL ＝ ○） */
	private static final String HISSU_CHK_HISSU = "1";
	/** 必須チェック 任意（NOT NULL ≠ ○） */
	private static final String HISSU_CHK_NINI = "0";
	/** 属性チェック 半角数字1 */
	private static final String ZOKU_CHK_NUMBER1 = "1";
	/** 属性チェック チェックなし */
	private static final String ZOKU_CHK_NO_CHECK = "8";
	/** 桁数チェック 最小値 */
	private static final int LEN_CHK_MIN = 0;
	/** 桁数チェック 最大値 */
	private static final int LEN_CHK_MAX = 1;

	/**
	 * お得情報提案結果反映を行う。
	 * <br>
	 * @param handle セッションハンドル
	 * @param param リクエストパラメータ
	 * @param fixedText ユーザ定義文字列
	 * @return リクエストパラメータ
	 * @throws Throwable 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	public IRequestParameterReadWrite execute(SessionHandle handle, IRequestParameterReadWrite param, String fixedText)
	throws Throwable
	{
		String dataMapKey = fixedText;

		// お得情報提案結果反映CCマップ
		HashMap<String, Object> ccMsg = (HashMap<String, Object>)param.getData(dataMapKey);
		// レスポンス
		HashMap<String, Object> responseMsg = new HashMap<String,Object>();

		try
		{
			// SC呼び出し部品のインスタンス生成（引数にはログに出力するクラス名を渡す。空文字を設定した場合はログに出力されない）
			ServiceComponentRequestInvoker scCall = new ServiceComponentRequestInvoker();
			
			// SYSID
			String sysid = (String)ccMsg.get(SYSID);
			
			// お得リスト
			ArrayList<Map<String, String>> otokuList = (ArrayList)ccMsg.get(OTOKLIST);
			
			for (int i = 0; i < otokuList.size(); i++){
				HashMap<String, Object> otokuInfo = (HashMap)otokuList.get(i);
				// お得区分
				String otokDiv = (String)otokuInfo.get(OTOKDIV);
				// 提案チャネル
				String teianCh = (String)otokuInfo.get(TEIANCHANEL);
				
				otokuInfo.put(SYSID, sysid);
				
				// 単項目チェック
				if (!checkUnitParam(otokuInfo))
				{
					ccMsg.put(ERROR_INFO, otokuInfo.get(ERROR_INFO));
					param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_5000);
					param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
					
					return param;
				}
				
				// 提案結果存在チェック
				// 提案結果一意照会の上りマッピング
				Object[][] ekk3311a010In =
				{
					{EKK3311A010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3311A010},
					{EKK3311A010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
					{EKK3311A010CBSMsg.KEY_SYSID, sysid},
					{EKK3311A010CBSMsg.KEY_OTOK_DIV, otokDiv},
					{EKK3311A010CBSMsg.KEY_TEIAN_CHANNEL, teianCh}
				};
				
				// サービスIF実行
				CAANMsg ekk3311a010Msg = callSC(handle, scCall, param, dataMapKey, ekk3311a010In, new EKK3311A010CBSMsg().getContents());

				// 提案結果一意照会明細
				CAANMsg[] ekk3311a010Msg1List = ekk3311a010Msg.getCAANMsgList(EKK3311A010CBSMsg.EKK3311A010CBSMSG1LIST);

				// 提案結果情報が存在しない場合
				if (ekk3311a010Msg.getCAANMsgList(EKK3311A010CBSMsg.EKK3311A010CBSMSG1LIST) == null || ekk3311a010Msg.getCAANMsgList(EKK3311A010CBSMsg.EKK3311A010CBSMSG1LIST).length == 0)
				{
					// 提案結果登録処理を行う
					addTeianRsltInfo(otokuInfo, handle, scCall, param, dataMapKey, responseMsg);
				} else {
					// 提案結果一意照会明細の数分繰り返し
					for(CAANMsg caanMsg : ekk3311a010Msg1List){
						// 提案結果更新処理を行う
						updTeianRsltInfo(otokuInfo, handle, scCall, param, dataMapKey, caanMsg);
					}
				}
				// レスポンス 処理結果 
				responseMsg.put(RESULT, RESULT_OK);
				
				// レスポンスを返却する
				param.setData(dataMapKey, responseMsg);
			}
			
			// 正常終了
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_0000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, null);
		}
		// サービスインターフェース呼び出しでエラーが発生した場合
		catch (SCCallException scCallEx)
		{
			// システムエラーを設定する
			param.setControlMapData(SCControlMapKeys.RETURN_CODE, JKKStrConst.RETURN_CD_9000);
			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, JKKStrConst.RETURN_MESSAGE_SYSTEM_ERROR);
		}
		return param;
	}

	/**
	 * SC(サービスインターフェイス）を呼び出す。
	 * @param handle セッションハンドル
	 * @param scCall SC呼び出し部品
	 * @param param リクエストパラメータ
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return CAANMsg
	 * @throws Throwable 例外が発生した場合
	 */
	@SuppressWarnings("unchecked")
	private CAANMsg callSC(SessionHandle handle, ServiceComponentRequestInvoker scCall, IRequestParameterReadWrite param, String dataMapKey,
			Object[][] mappingData, Object[][] contents)
	throws Throwable
	{
		HashMap<String, Object> paramMap = editInMsg(param, mappingData);

		Map<?, ?> result = scCall.run(paramMap, handle);

		CAANMsg[] templates = (CAANMsg[])result.get(JCMConstants.TEMPLATE_LIST_KEY);

		CAANMsg msg = templates[0];

		// リターンコード取得
		Object return_code = result.get(JCMConstants.RET_CD_INT_KEY);

		editErrorInfo(param, templates, (Integer)return_code, dataMapKey, mappingData, contents);

		// エラー情報のマップを取得
		ArrayList<Object> errList = (ArrayList<Object>)param.getControlMapData(SCControlMapKeys.ERROR_INFO);

		if (null == errList)
		{
			errList = new ArrayList<Object>();
		}

		// コントロールマップに設定
		param.setControlMapData(SCControlMapKeys.ERROR_INFO, TemplateErrorUtil.getErrorInfo(result, errList));

		// SCCallExceptionはスローしない

		return msg;
	}

	/**
	 * 共通項目のメッセージを作成する。
	 * @param param リクエストパラメータ
	 * @param mappingData マッピングデータ
	 * @return HashMap<String, Object>
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	private HashMap<String, Object> editInMsg(IRequestParameterReadWrite param, Object[][] mappingData) throws RequestParameterException
	{
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// 【取得元：電文ヘッダ(ヘッダ)】
		// 電文ID
		paramMap.put(JCMConstants.TRANZACTION_ID_KEY, param.getTelegramID());

		// ユースケースID
		paramMap.put(JCMConstants.USECASE_ID_KEY, param.getUsecaseID());

		// オペレーションID
		paramMap.put(JCMConstants.OPERATION_ID_KEY, param.getOperationID());

		// サービス呼び出し区分
		paramMap.put(JCMConstants.CALL_TYPE_KEY, param.getCallType());

		// 【取得元：ユーザエリア(コントロールマップ)】
		// 依頼先ホスト名
		paramMap.put(JCMConstants.CLIENT_HOST_NAME_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTNAME));

		// 依頼元IPアドレス
		paramMap.put(JCMConstants.CLIENT_IP_ADDRESS_KEY, param.getControlMapData(SCControlMapKeys.REQ_HOSTIP));

		// 依頼元画面ID
		paramMap.put(JCMConstants.INVOKE_GAMEN_ID_KEY, param.getControlMapData(SCControlMapKeys.REQ_VIEWID));

		// オペレータID
		paramMap.put(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		String svcIf = (String)mappingData[0][1];

		CAANMsg template = new CAANMsg(String.format("eo.ejb.cbs.cbsmsg.%sCBSMsg", svcIf));

		// オペレータID
		template.set(JCMConstants.OPERATOR_ID_KEY, param.getControlMapData(SCControlMapKeys.OPERATOR_ID));

		// 運用日付
		template.set(JCMConstants.OPERATE_DATE_KEY, param.getControlMapData(SCControlMapKeys.OPE_DATE));

		// 運用日時
		template.set(JCMConstants.OPERATE_DATETIME_KEY, param.getControlMapData(SCControlMapKeys.OPE_TIME));

		for (int i = 0; i < mappingData.length; i++)
		{
			if ("".equals(mappingData[i][1]))
			{
				template.setNull((String)mappingData[i][0]);
			}
			else
			{
				template.set((String)mappingData[i][0], mappingData[i][1]);
			}
		}

		CAANMsg[] templates = new CAANMsg[1];

		templates[0] = template;

		paramMap.put(JCMConstants.TEMPLATE_LIST_KEY, templates);

		return paramMap;
	}

	/**
	 * エラー情報を取得する。
	 * @param param リクエストパラメータ
	 * @param templates CAANMsgクラス
	 * @param returnCode リターンコード
	 * @param dataMapKey パラメータキー
	 * @param mappingData マッピングデータ
	 * @param contents CAANMsgのコンテンツ
	 * @return IRequestParameterReadWrite
	 * @throws RequestParameterException リクエストパラメータの操作でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private IRequestParameterReadWrite editErrorInfo(IRequestParameterReadWrite param, CAANMsg[] templates, int returnCode, String dataMapKey,
			Object[][] mappingData, Object[][] contents)
	throws RequestParameterException
	{
		CAANMsg template = templates[0];

		int templateStatus = template.getInt(JCMConstants.STATUS_INT_KEY);

		if (0 != returnCode)
		{
			templateStatus = 9000;
		}

		if (null == JCMAPLConstMgr.getString("RETURN_MESSAGE_" + String.format("%1$04d", templateStatus)))
		{
			templateStatus = 0;
		}

		int bpStatus = 0;

		Object obj = param.getControlMapData(SCControlMapKeys.RETURN_CODE);

		if (null == obj)
		{
			bpStatus = -1;
		}
		else
		{
			bpStatus = Integer.parseInt((String)param.getControlMapData(SCControlMapKeys.RETURN_CODE));
		}

		if (templateStatus > bpStatus)
		{
			// BPにサービスコンポーネントのステータスを設定する。
			String formatStatus = String.format("%1$04d", templateStatus);

			String message = JCMAPLConstMgr.getString("RETURN_MESSAGE_" + formatStatus);

			param.setControlMapData(SCControlMapKeys.RETURN_CODE, formatStatus);

			param.setControlMapData(SCControlMapKeys.RETURN_MESSAGE, message);
		}

		Map<String, String> inMap = null;
		
		// ユーザデータ情報
		inMap = (Map<String, String>)param.getData(dataMapKey);

		for (int i = 0; null != contents && i < contents.length ; i++)
		{
			String itemNm = (String)contents[i][0];
			if (itemNm.endsWith("_err"))
			{
				String errCd = (String)template.getString(itemNm);
				if (!JKKStringUtil.isNullBlank(errCd))
				{
					inMap.put(itemNm, errCd);
				}
			}
		}
		return param;
	}

	/**
	 * 単項目チェックを行う。
	 * @param ccMsg 識別コードマップ
	 * @return チェックの判定
	 * @throws Exception
	 */
	private boolean checkUnitParam(HashMap<String, Object> ccMsg)
	throws Exception
	{
		// エラーリスト
		List<Map<String, String>> errList = new ArrayList<Map<String, String>>();

		// SYSID 必須あり 属性：半角数字1 桁(最小)：10 桁(最大)：10
		singleItemChk(ccMsg, SYSID, HISSU_CHK_HISSU, ZOKU_CHK_NUMBER1, new int[] { 10, 10 }, errList);
		// お得区分 必須あり 属性：半角数字1 桁(最小)：2 桁(最大)：2
		singleItemChk(ccMsg, OTOKDIV, HISSU_CHK_HISSU, ZOKU_CHK_NUMBER1, new int[] { 2, 2 }, errList);
		// 提案チャネル 必須あり 属性：半角数字1 桁(最小)：2 桁(最大)：2
		singleItemChk(ccMsg, TEIANCHANEL, HISSU_CHK_HISSU, ZOKU_CHK_NUMBER1, new int[] { 2, 2 }, errList);
		// 項目1 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM01, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目2 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM02, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目3 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM03, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目4 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM04, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目5 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM05, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目6 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM06, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目7 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM07, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目8 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM08, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目9 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM09, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目10 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM10, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目11 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM11, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目12 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM12, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目13 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM13, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目14 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM14, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目15 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM15, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目16 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM16, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目17 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM17, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目18 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM18, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目19 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM19, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目20 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM20, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目21 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM21, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目22 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM22, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目23 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM23, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目24 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM24, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目25 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM25, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目26 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM26, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目27 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM27, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目28 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM28, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目29 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM29, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目30 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM30, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目31 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM31, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目32 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM32, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目33 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM33, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目34 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM34, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目35 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM35, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目36 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM36, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目37 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM37, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目38 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM38, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目39 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM39, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目40 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM40, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目41 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM41, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目42 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM42, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目43 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM43, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目44 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM44, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目45 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM45, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目46 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM46, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目47 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM47, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目48 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM48, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目49 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM49, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目50 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM50, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目51 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM51, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目52 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM52, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目53 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM53, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目54 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM54, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目55 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM55, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目56 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM56, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目57 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM57, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目58 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM58, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目59 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM59, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目60 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM60, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目61 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM61, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目62 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM62, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目63 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM63, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目64 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM64, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目65 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM65, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目66 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM66, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目67 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM67, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目68 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM68, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目69 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM69, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目70 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM70, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目71 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM71, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目72 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM72, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目73 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM73, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目74 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM74, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目75 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM75, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目76 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM76, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目77 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM77, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目78 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM78, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目79 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM79, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目80 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM80, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目81 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM81, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目82 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM82, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目83 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM83, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目84 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM84, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目85 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM85, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目86 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM86, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目87 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM87, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目88 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM88, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目89 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM89, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目90 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM90, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目91 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM91, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目92 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM92, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目93 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM93, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目94 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM94, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目95 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM95, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目96 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM96, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目97 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM97, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目98 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM98, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);
		// 項目99 必須なし 属性：チェックなし 桁(最小)：1 桁(最大)：30
		singleItemChk(ccMsg, ITEM99, HISSU_CHK_NINI, ZOKU_CHK_NO_CHECK, new int[] { 1, 500 }, errList);

		// エラーが存在する場合
		if (errList.size() > 0)
		{
			ccMsg.put(ERROR_INFO, errList);
			return false;
		}

		return true;
	}

	/**
	 * 必須・属性・桁数チェック
	 * @param ccMsg 識別コードマップ
	 * @param itemName 項目名
	 * @param hissuChkKbn 1：必須項目 0：任意項目
	 * @param zokuChkKbn 属性
	 * @param lenChkKbn lenCheck[0]：最小値 lenCheck[1]最大値
	 * @param errList エラーリスト
	 */
	private void singleItemChk(HashMap<String, Object> ccMsg,
								String itemName,
								String hissuChkKbn,
								String zokuChkKbn,
								int lenChkKbn[],
								List<Map<String, String>> errList)
	{
		// チェック対象の値を取得
		String itemValue = (String)ccMsg.get(itemName);
		
		// 必須チェック・値の存在チェック
		if ( itemValue == null || "".equals(itemValue) )
		{
			// 必須チェック（必須項目の場合必須チェックエラー）
			if(HISSU_CHK_HISSU.equals(hissuChkKbn))
			{
				// 必須チェックエラー
				errList.add(getReqErrInfMap(itemName));
				return;
			}
			// 任意項目の場合は後続の処理を行わない
			else
			{
				return;
			}
		}
		
		// 属性チェック
		if(ZOKU_CHK_NUMBER1.equals(zokuChkKbn))
		{
			// 半角数字1
			// OM-2021-0001020 2021/07/02 MOD START
//			if(!HalfCharCheck.isNumber1Check(itemValue))
			if(!HalfCharCheck.isEnNumber1Check(itemValue))
			// OM-2021-0001020 2021/07/02 MOD END
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}
		else if(ZOKU_CHK_NO_CHECK.equals(zokuChkKbn))
		{
			// チェックなし
			if(!CharacterCheck.isUnusedCharCheck(itemValue))
			{
				// 属性チェックエラー
				errList.add(getFormErrInfMap(itemName, itemValue));
				return;
			}
		}

		
		// 桁数チェック
		int min = lenChkKbn[LEN_CHK_MIN];
		int max = lenChkKbn[LEN_CHK_MAX];
		
		if(min == max)
		{
			// 桁数1
			if(!LengthCheck.isLength1Check(itemValue, max))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(itemName, itemValue));
				return;
			}
		}
		else
		{
			// 桁数2
			if(!LengthCheck.isLength2Check(itemValue, min, max))
			{
				// 桁数チェックエラー
				errList.add(getLenErrInfMap(itemName, itemValue));
				return;
			}
		}
	}

	/**
	 * 提案結果登録処理を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param responseMsg レスポンス
	 * @throws Throwable
	 */
	private void addTeianRsltInfo(HashMap<String, Object> otokuInfo,
									SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									HashMap<String, Object> responseMsg) throws Throwable
	{
		// 提案結果登録の上りマッピング
		Object[][] ekk3311D010In =
		{
			{EKK3311D010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3311D010},
			{EKK3311D010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK3311D010CBSMsg.SYSID, getNullToStr((String)otokuInfo.get(SYSID))},
			{EKK3311D010CBSMsg.OTOK_DIV, getNullToStr((String)otokuInfo.get(OTOKDIV))},
			{EKK3311D010CBSMsg.TEIAN_CHANNEL, getNullToStr((String)otokuInfo.get(TEIANCHANEL))},
			{EKK3311D010CBSMsg.KMK_01, getNullToStr((String)otokuInfo.get(ITEM01))},
			{EKK3311D010CBSMsg.KMK_02, getNullToStr((String)otokuInfo.get(ITEM02))},
			{EKK3311D010CBSMsg.KMK_03, getNullToStr((String)otokuInfo.get(ITEM03))},
			{EKK3311D010CBSMsg.KMK_04, getNullToStr((String)otokuInfo.get(ITEM04))},
			{EKK3311D010CBSMsg.KMK_05, getNullToStr((String)otokuInfo.get(ITEM05))},
			{EKK3311D010CBSMsg.KMK_06, getNullToStr((String)otokuInfo.get(ITEM06))},
			{EKK3311D010CBSMsg.KMK_07, getNullToStr((String)otokuInfo.get(ITEM07))},
			{EKK3311D010CBSMsg.KMK_08, getNullToStr((String)otokuInfo.get(ITEM08))},
			{EKK3311D010CBSMsg.KMK_09, getNullToStr((String)otokuInfo.get(ITEM09))},
			{EKK3311D010CBSMsg.KMK_10, getNullToStr((String)otokuInfo.get(ITEM10))},
			{EKK3311D010CBSMsg.KMK_11, getNullToStr((String)otokuInfo.get(ITEM11))},
			{EKK3311D010CBSMsg.KMK_12, getNullToStr((String)otokuInfo.get(ITEM12))},
			{EKK3311D010CBSMsg.KMK_13, getNullToStr((String)otokuInfo.get(ITEM13))},
			{EKK3311D010CBSMsg.KMK_14, getNullToStr((String)otokuInfo.get(ITEM14))},
			{EKK3311D010CBSMsg.KMK_15, getNullToStr((String)otokuInfo.get(ITEM15))},
			{EKK3311D010CBSMsg.KMK_16, getNullToStr((String)otokuInfo.get(ITEM16))},
			{EKK3311D010CBSMsg.KMK_17, getNullToStr((String)otokuInfo.get(ITEM17))},
			{EKK3311D010CBSMsg.KMK_18, getNullToStr((String)otokuInfo.get(ITEM18))},
			{EKK3311D010CBSMsg.KMK_19, getNullToStr((String)otokuInfo.get(ITEM19))},
			{EKK3311D010CBSMsg.KMK_20, getNullToStr((String)otokuInfo.get(ITEM20))},
			{EKK3311D010CBSMsg.KMK_21, getNullToStr((String)otokuInfo.get(ITEM21))},
			{EKK3311D010CBSMsg.KMK_22, getNullToStr((String)otokuInfo.get(ITEM22))},
			{EKK3311D010CBSMsg.KMK_23, getNullToStr((String)otokuInfo.get(ITEM23))},
			{EKK3311D010CBSMsg.KMK_24, getNullToStr((String)otokuInfo.get(ITEM24))},
			{EKK3311D010CBSMsg.KMK_25, getNullToStr((String)otokuInfo.get(ITEM25))},
			{EKK3311D010CBSMsg.KMK_26, getNullToStr((String)otokuInfo.get(ITEM26))},
			{EKK3311D010CBSMsg.KMK_27, getNullToStr((String)otokuInfo.get(ITEM27))},
			{EKK3311D010CBSMsg.KMK_28, getNullToStr((String)otokuInfo.get(ITEM28))},
			{EKK3311D010CBSMsg.KMK_29, getNullToStr((String)otokuInfo.get(ITEM29))},
			{EKK3311D010CBSMsg.KMK_30, getNullToStr((String)otokuInfo.get(ITEM30))},
			{EKK3311D010CBSMsg.KMK_31, getNullToStr((String)otokuInfo.get(ITEM31))},
			{EKK3311D010CBSMsg.KMK_32, getNullToStr((String)otokuInfo.get(ITEM32))},
			{EKK3311D010CBSMsg.KMK_33, getNullToStr((String)otokuInfo.get(ITEM33))},
			{EKK3311D010CBSMsg.KMK_34, getNullToStr((String)otokuInfo.get(ITEM34))},
			{EKK3311D010CBSMsg.KMK_35, getNullToStr((String)otokuInfo.get(ITEM35))},
			{EKK3311D010CBSMsg.KMK_36, getNullToStr((String)otokuInfo.get(ITEM36))},
			{EKK3311D010CBSMsg.KMK_37, getNullToStr((String)otokuInfo.get(ITEM37))},
			{EKK3311D010CBSMsg.KMK_38, getNullToStr((String)otokuInfo.get(ITEM38))},
			{EKK3311D010CBSMsg.KMK_39, getNullToStr((String)otokuInfo.get(ITEM39))},
			{EKK3311D010CBSMsg.KMK_40, getNullToStr((String)otokuInfo.get(ITEM40))},
			{EKK3311D010CBSMsg.KMK_41, getNullToStr((String)otokuInfo.get(ITEM41))},
			{EKK3311D010CBSMsg.KMK_42, getNullToStr((String)otokuInfo.get(ITEM42))},
			{EKK3311D010CBSMsg.KMK_43, getNullToStr((String)otokuInfo.get(ITEM43))},
			{EKK3311D010CBSMsg.KMK_44, getNullToStr((String)otokuInfo.get(ITEM44))},
			{EKK3311D010CBSMsg.KMK_45, getNullToStr((String)otokuInfo.get(ITEM45))},
			{EKK3311D010CBSMsg.KMK_46, getNullToStr((String)otokuInfo.get(ITEM46))},
			{EKK3311D010CBSMsg.KMK_47, getNullToStr((String)otokuInfo.get(ITEM47))},
			{EKK3311D010CBSMsg.KMK_48, getNullToStr((String)otokuInfo.get(ITEM48))},
			{EKK3311D010CBSMsg.KMK_49, getNullToStr((String)otokuInfo.get(ITEM49))},
			{EKK3311D010CBSMsg.KMK_50, getNullToStr((String)otokuInfo.get(ITEM50))},
			{EKK3311D010CBSMsg.KMK_51, getNullToStr((String)otokuInfo.get(ITEM51))},
			{EKK3311D010CBSMsg.KMK_52, getNullToStr((String)otokuInfo.get(ITEM52))},
			{EKK3311D010CBSMsg.KMK_53, getNullToStr((String)otokuInfo.get(ITEM53))},
			{EKK3311D010CBSMsg.KMK_54, getNullToStr((String)otokuInfo.get(ITEM54))},
			{EKK3311D010CBSMsg.KMK_55, getNullToStr((String)otokuInfo.get(ITEM55))},
			{EKK3311D010CBSMsg.KMK_56, getNullToStr((String)otokuInfo.get(ITEM56))},
			{EKK3311D010CBSMsg.KMK_57, getNullToStr((String)otokuInfo.get(ITEM57))},
			{EKK3311D010CBSMsg.KMK_58, getNullToStr((String)otokuInfo.get(ITEM58))},
			{EKK3311D010CBSMsg.KMK_59, getNullToStr((String)otokuInfo.get(ITEM59))},
			{EKK3311D010CBSMsg.KMK_60, getNullToStr((String)otokuInfo.get(ITEM60))},
			{EKK3311D010CBSMsg.KMK_61, getNullToStr((String)otokuInfo.get(ITEM61))},
			{EKK3311D010CBSMsg.KMK_62, getNullToStr((String)otokuInfo.get(ITEM62))},
			{EKK3311D010CBSMsg.KMK_63, getNullToStr((String)otokuInfo.get(ITEM63))},
			{EKK3311D010CBSMsg.KMK_64, getNullToStr((String)otokuInfo.get(ITEM64))},
			{EKK3311D010CBSMsg.KMK_65, getNullToStr((String)otokuInfo.get(ITEM65))},
			{EKK3311D010CBSMsg.KMK_66, getNullToStr((String)otokuInfo.get(ITEM66))},
			{EKK3311D010CBSMsg.KMK_67, getNullToStr((String)otokuInfo.get(ITEM67))},
			{EKK3311D010CBSMsg.KMK_68, getNullToStr((String)otokuInfo.get(ITEM68))},
			{EKK3311D010CBSMsg.KMK_69, getNullToStr((String)otokuInfo.get(ITEM69))},
			{EKK3311D010CBSMsg.KMK_70, getNullToStr((String)otokuInfo.get(ITEM70))},
			{EKK3311D010CBSMsg.KMK_71, getNullToStr((String)otokuInfo.get(ITEM71))},
			{EKK3311D010CBSMsg.KMK_72, getNullToStr((String)otokuInfo.get(ITEM72))},
			{EKK3311D010CBSMsg.KMK_73, getNullToStr((String)otokuInfo.get(ITEM73))},
			{EKK3311D010CBSMsg.KMK_74, getNullToStr((String)otokuInfo.get(ITEM74))},
			{EKK3311D010CBSMsg.KMK_75, getNullToStr((String)otokuInfo.get(ITEM75))},
			{EKK3311D010CBSMsg.KMK_76, getNullToStr((String)otokuInfo.get(ITEM76))},
			{EKK3311D010CBSMsg.KMK_77, getNullToStr((String)otokuInfo.get(ITEM77))},
			{EKK3311D010CBSMsg.KMK_78, getNullToStr((String)otokuInfo.get(ITEM78))},
			{EKK3311D010CBSMsg.KMK_79, getNullToStr((String)otokuInfo.get(ITEM79))},
			{EKK3311D010CBSMsg.KMK_80, getNullToStr((String)otokuInfo.get(ITEM80))},
			{EKK3311D010CBSMsg.KMK_81, getNullToStr((String)otokuInfo.get(ITEM81))},
			{EKK3311D010CBSMsg.KMK_82, getNullToStr((String)otokuInfo.get(ITEM82))},
			{EKK3311D010CBSMsg.KMK_83, getNullToStr((String)otokuInfo.get(ITEM83))},
			{EKK3311D010CBSMsg.KMK_84, getNullToStr((String)otokuInfo.get(ITEM84))},
			{EKK3311D010CBSMsg.KMK_85, getNullToStr((String)otokuInfo.get(ITEM85))},
			{EKK3311D010CBSMsg.KMK_86, getNullToStr((String)otokuInfo.get(ITEM86))},
			{EKK3311D010CBSMsg.KMK_87, getNullToStr((String)otokuInfo.get(ITEM87))},
			{EKK3311D010CBSMsg.KMK_88, getNullToStr((String)otokuInfo.get(ITEM88))},
			{EKK3311D010CBSMsg.KMK_89, getNullToStr((String)otokuInfo.get(ITEM89))},
			{EKK3311D010CBSMsg.KMK_90, getNullToStr((String)otokuInfo.get(ITEM90))},
			{EKK3311D010CBSMsg.KMK_91, getNullToStr((String)otokuInfo.get(ITEM91))},
			{EKK3311D010CBSMsg.KMK_92, getNullToStr((String)otokuInfo.get(ITEM92))},
			{EKK3311D010CBSMsg.KMK_93, getNullToStr((String)otokuInfo.get(ITEM93))},
			{EKK3311D010CBSMsg.KMK_94, getNullToStr((String)otokuInfo.get(ITEM94))},
			{EKK3311D010CBSMsg.KMK_95, getNullToStr((String)otokuInfo.get(ITEM95))},
			{EKK3311D010CBSMsg.KMK_96, getNullToStr((String)otokuInfo.get(ITEM96))},
			{EKK3311D010CBSMsg.KMK_97, getNullToStr((String)otokuInfo.get(ITEM97))},
			{EKK3311D010CBSMsg.KMK_98, getNullToStr((String)otokuInfo.get(ITEM98))},
			{EKK3311D010CBSMsg.KMK_99, getNullToStr((String)otokuInfo.get(ITEM99))}
		};
		// サービスIF実行
		CAANMsg ekk3311d010Msg = callSC(handle, scCall, param, dataMapKey, ekk3311D010In, new EKK3311D010CBSMsg().getContents());
	}

	/**
	 * 提案結果更新処理を行う。
	 * @param ccMsg 識別コードマップ
	 * @param handle セッションハンドル
	 * @param scCall SC呼出
	 * @param param パラメーター
	 * @param dataMapKey データマップキー
	 * @param teianRsltInfo 提案結果情報
	 * @throws Throwable
	 */
	private void updTeianRsltInfo(HashMap<String, Object> otokuInfo,
									SessionHandle handle,
									ServiceComponentRequestInvoker scCall,
									IRequestParameterReadWrite param,
									String dataMapKey,
									CAANMsg teianRsltInfo) throws Throwable
	{
		// 提案結果更新の上りマッピング
		Object[][] ekk3311C010In =
		{
			{EKK3311C010CBSMsg.TEMPLATEID, TEMPLATE_ID_EKK3311C010},
			{EKK3311C010CBSMsg.FUNC_CODE, JPCModelConstant.FUNC_CD_1},
			{EKK3311C010CBSMsg.SYSID, getNullToStr((String)otokuInfo.get(SYSID))},
			{EKK3311C010CBSMsg.OTOK_DIV, convotokuInfo(otokuInfo, OTOKDIV, teianRsltInfo, EKK3311A010CBSMsg1List.OTOK_DIV)},
			{EKK3311C010CBSMsg.TEIAN_CHANNEL, convotokuInfo(otokuInfo, TEIANCHANEL, teianRsltInfo, EKK3311A010CBSMsg1List.TEIAN_CHANNEL)},
			{EKK3311C010CBSMsg.KMK_01, convotokuInfo(otokuInfo, ITEM01, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_01)},
			{EKK3311C010CBSMsg.KMK_02, convotokuInfo(otokuInfo, ITEM02, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_02)},
			{EKK3311C010CBSMsg.KMK_03, convotokuInfo(otokuInfo, ITEM03, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_03)},
			{EKK3311C010CBSMsg.KMK_04, convotokuInfo(otokuInfo, ITEM04, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_04)},
			{EKK3311C010CBSMsg.KMK_05, convotokuInfo(otokuInfo, ITEM05, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_05)},
			{EKK3311C010CBSMsg.KMK_06, convotokuInfo(otokuInfo, ITEM06, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_06)},
			{EKK3311C010CBSMsg.KMK_07, convotokuInfo(otokuInfo, ITEM07, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_07)},
			{EKK3311C010CBSMsg.KMK_08, convotokuInfo(otokuInfo, ITEM08, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_08)},
			{EKK3311C010CBSMsg.KMK_09, convotokuInfo(otokuInfo, ITEM09, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_09)},
			{EKK3311C010CBSMsg.KMK_10, convotokuInfo(otokuInfo, ITEM10, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_10)},
			{EKK3311C010CBSMsg.KMK_11, convotokuInfo(otokuInfo, ITEM11, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_11)},
			{EKK3311C010CBSMsg.KMK_12, convotokuInfo(otokuInfo, ITEM12, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_12)},
			{EKK3311C010CBSMsg.KMK_13, convotokuInfo(otokuInfo, ITEM13, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_13)},
			{EKK3311C010CBSMsg.KMK_14, convotokuInfo(otokuInfo, ITEM14, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_14)},
			{EKK3311C010CBSMsg.KMK_15, convotokuInfo(otokuInfo, ITEM15, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_15)},
			{EKK3311C010CBSMsg.KMK_16, convotokuInfo(otokuInfo, ITEM16, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_16)},
			{EKK3311C010CBSMsg.KMK_17, convotokuInfo(otokuInfo, ITEM17, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_17)},
			{EKK3311C010CBSMsg.KMK_18, convotokuInfo(otokuInfo, ITEM18, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_18)},
			{EKK3311C010CBSMsg.KMK_19, convotokuInfo(otokuInfo, ITEM19, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_19)},
			{EKK3311C010CBSMsg.KMK_20, convotokuInfo(otokuInfo, ITEM20, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_20)},
			{EKK3311C010CBSMsg.KMK_21, convotokuInfo(otokuInfo, ITEM21, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_21)},
			{EKK3311C010CBSMsg.KMK_22, convotokuInfo(otokuInfo, ITEM22, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_22)},
			{EKK3311C010CBSMsg.KMK_23, convotokuInfo(otokuInfo, ITEM23, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_23)},
			{EKK3311C010CBSMsg.KMK_24, convotokuInfo(otokuInfo, ITEM24, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_24)},
			{EKK3311C010CBSMsg.KMK_25, convotokuInfo(otokuInfo, ITEM25, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_25)},
			{EKK3311C010CBSMsg.KMK_26, convotokuInfo(otokuInfo, ITEM26, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_26)},
			{EKK3311C010CBSMsg.KMK_27, convotokuInfo(otokuInfo, ITEM27, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_27)},
			{EKK3311C010CBSMsg.KMK_28, convotokuInfo(otokuInfo, ITEM28, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_28)},
			{EKK3311C010CBSMsg.KMK_29, convotokuInfo(otokuInfo, ITEM29, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_29)},
			{EKK3311C010CBSMsg.KMK_30, convotokuInfo(otokuInfo, ITEM30, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_30)},
			{EKK3311C010CBSMsg.KMK_31, convotokuInfo(otokuInfo, ITEM31, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_31)},
			{EKK3311C010CBSMsg.KMK_32, convotokuInfo(otokuInfo, ITEM32, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_32)},
			{EKK3311C010CBSMsg.KMK_33, convotokuInfo(otokuInfo, ITEM33, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_33)},
			{EKK3311C010CBSMsg.KMK_34, convotokuInfo(otokuInfo, ITEM34, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_34)},
			{EKK3311C010CBSMsg.KMK_35, convotokuInfo(otokuInfo, ITEM35, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_35)},
			{EKK3311C010CBSMsg.KMK_36, convotokuInfo(otokuInfo, ITEM36, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_36)},
			{EKK3311C010CBSMsg.KMK_37, convotokuInfo(otokuInfo, ITEM37, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_37)},
			{EKK3311C010CBSMsg.KMK_38, convotokuInfo(otokuInfo, ITEM38, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_38)},
			{EKK3311C010CBSMsg.KMK_39, convotokuInfo(otokuInfo, ITEM39, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_39)},
			{EKK3311C010CBSMsg.KMK_40, convotokuInfo(otokuInfo, ITEM40, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_40)},
			{EKK3311C010CBSMsg.KMK_41, convotokuInfo(otokuInfo, ITEM41, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_41)},
			{EKK3311C010CBSMsg.KMK_42, convotokuInfo(otokuInfo, ITEM42, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_42)},
			{EKK3311C010CBSMsg.KMK_43, convotokuInfo(otokuInfo, ITEM43, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_43)},
			{EKK3311C010CBSMsg.KMK_44, convotokuInfo(otokuInfo, ITEM44, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_44)},
			{EKK3311C010CBSMsg.KMK_45, convotokuInfo(otokuInfo, ITEM45, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_45)},
			{EKK3311C010CBSMsg.KMK_46, convotokuInfo(otokuInfo, ITEM46, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_46)},
			{EKK3311C010CBSMsg.KMK_47, convotokuInfo(otokuInfo, ITEM47, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_47)},
			{EKK3311C010CBSMsg.KMK_48, convotokuInfo(otokuInfo, ITEM48, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_48)},
			{EKK3311C010CBSMsg.KMK_49, convotokuInfo(otokuInfo, ITEM49, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_49)},
			{EKK3311C010CBSMsg.KMK_50, convotokuInfo(otokuInfo, ITEM50, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_50)},
			{EKK3311C010CBSMsg.KMK_51, convotokuInfo(otokuInfo, ITEM51, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_51)},
			{EKK3311C010CBSMsg.KMK_52, convotokuInfo(otokuInfo, ITEM52, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_52)},
			{EKK3311C010CBSMsg.KMK_53, convotokuInfo(otokuInfo, ITEM53, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_53)},
			{EKK3311C010CBSMsg.KMK_54, convotokuInfo(otokuInfo, ITEM54, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_54)},
			{EKK3311C010CBSMsg.KMK_55, convotokuInfo(otokuInfo, ITEM55, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_55)},
			{EKK3311C010CBSMsg.KMK_56, convotokuInfo(otokuInfo, ITEM56, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_56)},
			{EKK3311C010CBSMsg.KMK_57, convotokuInfo(otokuInfo, ITEM57, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_57)},
			{EKK3311C010CBSMsg.KMK_58, convotokuInfo(otokuInfo, ITEM58, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_58)},
			{EKK3311C010CBSMsg.KMK_59, convotokuInfo(otokuInfo, ITEM59, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_59)},
			{EKK3311C010CBSMsg.KMK_60, convotokuInfo(otokuInfo, ITEM60, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_60)},
			{EKK3311C010CBSMsg.KMK_61, convotokuInfo(otokuInfo, ITEM61, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_61)},
			{EKK3311C010CBSMsg.KMK_62, convotokuInfo(otokuInfo, ITEM62, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_62)},
			{EKK3311C010CBSMsg.KMK_63, convotokuInfo(otokuInfo, ITEM63, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_63)},
			{EKK3311C010CBSMsg.KMK_64, convotokuInfo(otokuInfo, ITEM64, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_64)},
			{EKK3311C010CBSMsg.KMK_65, convotokuInfo(otokuInfo, ITEM65, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_65)},
			{EKK3311C010CBSMsg.KMK_66, convotokuInfo(otokuInfo, ITEM66, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_66)},
			{EKK3311C010CBSMsg.KMK_67, convotokuInfo(otokuInfo, ITEM67, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_67)},
			{EKK3311C010CBSMsg.KMK_68, convotokuInfo(otokuInfo, ITEM68, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_68)},
			{EKK3311C010CBSMsg.KMK_69, convotokuInfo(otokuInfo, ITEM69, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_69)},
			{EKK3311C010CBSMsg.KMK_70, convotokuInfo(otokuInfo, ITEM70, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_70)},
			{EKK3311C010CBSMsg.KMK_71, convotokuInfo(otokuInfo, ITEM71, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_71)},
			{EKK3311C010CBSMsg.KMK_72, convotokuInfo(otokuInfo, ITEM72, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_72)},
			{EKK3311C010CBSMsg.KMK_73, convotokuInfo(otokuInfo, ITEM73, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_73)},
			{EKK3311C010CBSMsg.KMK_74, convotokuInfo(otokuInfo, ITEM74, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_74)},
			{EKK3311C010CBSMsg.KMK_75, convotokuInfo(otokuInfo, ITEM75, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_75)},
			{EKK3311C010CBSMsg.KMK_76, convotokuInfo(otokuInfo, ITEM76, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_76)},
			{EKK3311C010CBSMsg.KMK_77, convotokuInfo(otokuInfo, ITEM77, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_77)},
			{EKK3311C010CBSMsg.KMK_78, convotokuInfo(otokuInfo, ITEM78, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_78)},
			{EKK3311C010CBSMsg.KMK_79, convotokuInfo(otokuInfo, ITEM79, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_79)},
			{EKK3311C010CBSMsg.KMK_80, convotokuInfo(otokuInfo, ITEM80, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_80)},
			{EKK3311C010CBSMsg.KMK_81, convotokuInfo(otokuInfo, ITEM81, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_81)},
			{EKK3311C010CBSMsg.KMK_82, convotokuInfo(otokuInfo, ITEM82, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_82)},
			{EKK3311C010CBSMsg.KMK_83, convotokuInfo(otokuInfo, ITEM83, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_83)},
			{EKK3311C010CBSMsg.KMK_84, convotokuInfo(otokuInfo, ITEM84, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_84)},
			{EKK3311C010CBSMsg.KMK_85, convotokuInfo(otokuInfo, ITEM85, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_85)},
			{EKK3311C010CBSMsg.KMK_86, convotokuInfo(otokuInfo, ITEM86, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_86)},
			{EKK3311C010CBSMsg.KMK_87, convotokuInfo(otokuInfo, ITEM87, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_87)},
			{EKK3311C010CBSMsg.KMK_88, convotokuInfo(otokuInfo, ITEM88, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_88)},
			{EKK3311C010CBSMsg.KMK_89, convotokuInfo(otokuInfo, ITEM89, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_89)},
			{EKK3311C010CBSMsg.KMK_90, convotokuInfo(otokuInfo, ITEM90, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_90)},
			{EKK3311C010CBSMsg.KMK_91, convotokuInfo(otokuInfo, ITEM91, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_91)},
			{EKK3311C010CBSMsg.KMK_92, convotokuInfo(otokuInfo, ITEM92, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_92)},
			{EKK3311C010CBSMsg.KMK_93, convotokuInfo(otokuInfo, ITEM93, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_93)},
			{EKK3311C010CBSMsg.KMK_94, convotokuInfo(otokuInfo, ITEM94, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_94)},
			{EKK3311C010CBSMsg.KMK_95, convotokuInfo(otokuInfo, ITEM95, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_95)},
			{EKK3311C010CBSMsg.KMK_96, convotokuInfo(otokuInfo, ITEM96, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_96)},
			{EKK3311C010CBSMsg.KMK_97, convotokuInfo(otokuInfo, ITEM97, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_97)},
			{EKK3311C010CBSMsg.KMK_98, convotokuInfo(otokuInfo, ITEM98, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_98)},
			{EKK3311C010CBSMsg.KMK_99, convotokuInfo(otokuInfo, ITEM99, teianRsltInfo, EKK3311A010CBSMsg1List.KMK_99)},
			{EKK3311C010CBSMsg.UPD_DTM_BF, teianRsltInfo.getString(EKK3311A010CBSMsg1List.UPD_DTM)}
		};

		// サービスIF実行
		CAANMsg ekk3311c010Msg = callSC(handle, scCall, param, dataMapKey, ekk3311C010In, new EKK3311C010CBSMsg().getContents());
	}

	/**
	 * リクエストに項目が存在しない場合提案結果情報を返却する。
	 * @param otokuInfo 識別コードマップ
	 * @param otokuInfoKey 識別コードマップキー
	 * @param teianRsltInfo 提案結果情報
	 * @param teianRsltInfoKey 提案結果情報キー
	 * @return
	 */
	private String convotokuInfo(HashMap<String, Object> otokuInfo, String otokuInfoKey, CAANMsg teianRsltInfo, String teianRsltInfoKey)
	{
		if (!otokuInfo.containsKey(otokuInfoKey))
		{
			return getNullToStr(teianRsltInfo.getString(teianRsltInfoKey));
		}
		return getNullToStr((String)otokuInfo.get(otokuInfoKey));
	}

	/**
	 * 単項目チェックの必須エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @return
	 */
	private Map<String, String> getReqErrInfMap(String itemName)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1001);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON);

		return returnMap;
	}

	/**
	 * 単項目チェックの属性エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @param itemValue 項目値
	 * @return
	 */
	private Map<String, String> getFormErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1002);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON + itemValue);

		return returnMap;
	}

	/**
	 * 単項目チェックの桁数エラーマップ作成メソッドです。
	 * @param itemName 項目名
	 * @param itemValue 項目値
	 * @return
	 */
	private Map<String, String> getLenErrInfMap(String itemName, String itemValue)
	{
		Map<String, String> returnMap = new HashMap<String, String>();

		returnMap.put(ERROR_CODE, JKKStrConst.RETURN_CD_1003);
		returnMap.put(ERROR_MESSAGE, itemName + JKKStrConst.COLON + itemValue);

		return returnMap;
	}

	/**
	 * パラメタがNullの場合空白を返却する。
	 * @param str 文字列
	 * @return str 空白
	 */
	private String getNullToStr(String str)
	{
		if (str == null || "".equals(str.trim()))
		{
			return "";
		}
		return str;
	}
}