/*******************************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
********************************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JSYejbEKU0061D010TKCK
*	ソースファイル名：JSYejbEKU0061D010TKCK.java
*	作成者			：EK948993
*	日付			：2018年11月30日
*＜機能概要＞
*	工事案件＜eo光ネットマンション＞受付の単関連チェック部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	ｖ1.00.00
*	v61.00.00   2023/03/09   GDC)j.zabala 【ANK-4315-00-00】【eo定期】 eoホームゲートウェイ導入対応 step2
*
********************************************************************************/

package eo.ejb.check.itemrelation;

import java.sql.Date;
import java.sql.Timestamp;
import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.JSYejbLog;
import com.fujitsu.futurity.model.ejb.common.StatusCodes;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;
import com.fujitsu.futurity.model.ejb.common.fw.TankanrenCheckHandler;
import eo.ejb.cbs.cbsmsg.EKU0061D010CBSMsg;

/**
 * <HR>
 * 工事案件＜eo光ネットマンション＞受付CBSMsgの単関連チェック用クラス｡ <p>
 * 
 * 以下の機能をサポートする。
 * <ul>
 * <li>工事案件＜eo光ネットマンション＞受付CBSMsgの単関連をチェックする。
 * </ul>
 * <p>
 * <HR>
 * <p>
 */ 
public class JSYejbEKU0061D010TKCK implements TankanrenCheckHandler {

	/**
	 * JSYejbEKU0061D010TKCK単関連をチェックする。<br>
	 * 
	 * JSYejbEKU0061D010TKCK単関連をチェックする。
	 * <p>
	 * @param	inCBSMsg	CBSMsgメッセージ
	 * @param	inContext	Agent
	 */
	public void invoke(CAANMsg inCBSMsg, AgentDispatchContext inContext) {

		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"invoke#Call");

		// チェックを行う
		int stRet = 0;


		//工事受付コードが固定値(001)と等しい または 工事受付コードが固定値(007)と等しい ：正常
		if(!( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1") )){
			inCBSMsg.set(EKU0061D010CBSMsg.KOJI_UK_CD_ERR, "E1");
			JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"koji_uk_cd_err:E1");
			stRet = StatusCodes.ITEM_RELATION_ERR;
		}

		//チェック条件：工事受付コードが固定値(001)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1") ){
			//工事受付詳細コードが固定値(10)と等しい または 工事受付詳細コードが固定値(30)と等しい ：正常
			if(!( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") )){
				inCBSMsg.set(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"koji_uk_dtail_cd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1") ){
			//工事受付詳細コードが固定値(50)と等しい または 工事受付詳細コードが固定値(D0)と等しい ：正常
			// ANK-4315-00-00 MOD START
//			if(!( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"D0","20","1") )){
			if(!(
				comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1")  
				||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"D0","20","1") 
				||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"E0","20","1"))
			){
			// ANK-4315-00-00 MOD END
				inCBSMsg.set(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"koji_uk_dtail_cd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}


		//(料金グループコードが固定値(03)と等しい または 料金グループコードが固定値(04)と等しい) または 料金グループコードが固定値(10)と等しい ：正常
		if(!(( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"03","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"04","20","1") ) ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"10","20","1") )){
			inCBSMsg.set(EKU0061D010CBSMsg.PRC_GRP_CD_ERR, "E1");
			JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"prc_grp_cd_err:E1");
			stRet = StatusCodes.ITEM_RELATION_ERR;
		}


		//(サービスコードが固定値(02)と等しい かつ 料金グループコードが固定値(10)と等しい) または (サービスコードが固定値(01)と等しい かつ (料金グループコードが固定値(03)と等しい または 料金グループコードが固定値(04)と等しい)) ：正常
		if(!(( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.SVC_CD),"02","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"10","20","1") ) || ( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.SVC_CD),"01","20","1")  && ( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"03","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.PRC_GRP_CD),"04","20","1") )))){
			inCBSMsg.set(EKU0061D010CBSMsg.SVC_CD_ERR, "E1");
			JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"svc_cd_err:E1");
			stRet = StatusCodes.ITEM_RELATION_ERR;
		}

		//チェック条件：IP払出コードがnullでない
		if(!inCBSMsg.isNull(EKU0061D010CBSMsg.IP_HRADSI_CD)){
			//IP払出コードが固定値(01)と等しい または IP払出コードが固定値(02)と等しい ：正常
			if(!( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.IP_HRADSI_CD),"01","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.IP_HRADSI_CD),"02","20","1") )){
				inCBSMsg.set(EKU0061D010CBSMsg.IP_HRADSI_CD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"ip_hradsi_cd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション通信設備コードがnullでない
		if(!inCBSMsg.isNull(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD)){
			//(マンション通信設備コードが固定値(02)と等しい または マンション通信設備コードが固定値(03)と等しい) または マンション通信設備コードが固定値(01)と等しい ：正常
			if(!(( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD),"02","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD),"03","20","1") ) ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD),"01","20","1") )){
				inCBSMsg.set(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD_ERR, "E1");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mans_tushin_equip_cd_err:E1");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}


		//マンション物件コードが固定値(001)と等しい または マンション物件コードが固定値(002)と等しい ：正常
		if(!( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"001","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") )){
			inCBSMsg.set(EKU0061D010CBSMsg.MANSION_BUKKEN_CD_ERR, "E1");
			JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mansion_bukken_cd_err:E1");
			stRet = StatusCodes.ITEM_RELATION_ERR;
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(10)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1") ){
			//関西電力お客様情報授受同意有無がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM)){
				inCBSMsg.set(EKU0061D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM_ERR, "E2");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"kepco_ctinfo_juju_doi_um_err:E2");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(10)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1") ){
			//ファミリー契約フラグがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.FAMILY_KEI_FLG)){
				inCBSMsg.set(EKU0061D010CBSMsg.FAMILY_KEI_FLG_ERR, "E2");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"family_kei_flg_err:E2");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//転宅前サービス契約回線内訳番号がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.TENTAKU_BF_SVC_KEI_KAISEN_UCWK_NO)){
				inCBSMsg.set(EKU0061D010CBSMsg.TENTAKU_BF_SVC_KEI_KAISEN_UCWK_NO_ERR, "E3");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"tentaku_bf_svc_kei_kaisen_ucwk_no_err:E3");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//転宅前住所コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.TENTAKU_BF_AD_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.TENTAKU_BF_AD_CD_ERR, "E3");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"tentaku_bf_ad_cd_err:E3");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//転宅前郵便番号がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.TENTAKU_BF_PCD)){
				inCBSMsg.set(EKU0061D010CBSMsg.TENTAKU_BF_PCD_ERR, "E3");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"tentaku_bf_pcd_err:E3");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//関西電力お客様情報授受同意有無がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM)){
				inCBSMsg.set(EKU0061D010CBSMsg.KEPCO_CTINFO_JUJU_DOI_UM_ERR, "E3");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"kepco_ctinfo_juju_doi_um_err:E3");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(001)と等しい かつ 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"001","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//ファミリー契約フラグがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.FAMILY_KEI_FLG)){
				inCBSMsg.set(EKU0061D010CBSMsg.FAMILY_KEI_FLG_ERR, "E3");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"family_kei_flg_err:E3");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//料金コースPON条件コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.PCRS_PON_JOKEN_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.PCRS_PON_JOKEN_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"pcrs_pon_joken_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//変更前料金グループコードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.CHGB_BF_PRC_GRP_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.CHGB_BF_PRC_GRP_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"chgb_bf_prc_grp_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//変更前料金コースコードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.CHGB_BF_PCRS_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.CHGB_BF_PCRS_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"chgb_bf_pcrs_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//PON識別コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.PON_SKBT_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.PON_SKBT_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"pon_skbt_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//工事範囲コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.KOJI_SCOPE_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.KOJI_SCOPE_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"koji_scope_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(50)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"50","20","1") ){
			//移設コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.ISETSU_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.ISETSU_CD_ERR, "E4");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"isetsu_cd_err:E4");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(002)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") ){
			//P-IDがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.PID)){
				inCBSMsg.set(EKU0061D010CBSMsg.PID_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"pid_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(002)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") ){
			//経度がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.LGTD)){
				inCBSMsg.set(EKU0061D010CBSMsg.LGTD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"lgtd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(002)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") ){
			//緯度がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.LTTD)){
				inCBSMsg.set(EKU0061D010CBSMsg.LTTD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"lttd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(002)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") ){
			//座標補正有無がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.ZAHYO_HOSEI_UM)){
				inCBSMsg.set(EKU0061D010CBSMsg.ZAHYO_HOSEI_UM_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"zahyo_hosei_um_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(001)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"001","20","1") ){
			//マンション部屋通信機器種別コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.MANS_RM_TUSHIN_KIKI_SBT_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.MANS_RM_TUSHIN_KIKI_SBT_CD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mans_rm_tushin_kiki_sbt_cd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(001)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"001","20","1") ){
			//マンション通信設備コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mans_tushin_equip_cd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション通信設備コードが固定値(01)と等しい または マンション通信設備コードが固定値(02)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD),"01","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANS_TUSHIN_EQUIP_CD),"02","20","1") ){
			//IP払出コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.IP_HRADSI_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.IP_HRADSI_CD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"ip_hradsi_cd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(002)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"002","20","1") ){
			//関電営業所番号がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.KEPCO_BUSIOFFICE_NO)){
				inCBSMsg.set(EKU0061D010CBSMsg.KEPCO_BUSIOFFICE_NO_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"kepco_busioffice_no_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付詳細コードが固定値(10)と等しい かつ サービスコードが固定値(01)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.SVC_CD),"01","20","1") ){
			//料金コースPON条件コードがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.PCRS_PON_JOKEN_CD)){
				inCBSMsg.set(EKU0061D010CBSMsg.PCRS_PON_JOKEN_CD_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"pcrs_pon_joken_cd_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付詳細コードが固定値(30)と等しくない
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","21","1") ){
			//住所変更撤去工事案件番号がnull ：正常
			if(!(inCBSMsg.isNull(EKU0061D010CBSMsg.AD_CHG_TEKKYO_KJAK_NO))){
				inCBSMsg.set(EKU0061D010CBSMsg.AD_CHG_TEKKYO_KJAK_NO_ERR, "E6");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"ad_chg_tekkyo_kjak_no_err:E6");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付詳細コードが固定値(10)と等しい または 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//申込書番号がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.MSKMSHO_NO)){
				inCBSMsg.set(EKU0061D010CBSMsg.MSKMSHO_NO_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mskmsho_no_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付詳細コードが固定値(10)と等しい または 工事受付詳細コードが固定値(30)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"10","20","1")  ||  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"30","20","1") ){
			//申込書明細番号がnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.MKMSDTL_NO)){
				inCBSMsg.set(EKU0061D010CBSMsg.MKMSDTL_NO_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mkmsdtl_no_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：マンション物件コードが固定値(001)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.MANSION_BUKKEN_CD),"001","20","1") ){
			//マンションIDがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.MANSION_ID)){
				inCBSMsg.set(EKU0061D010CBSMsg.MANSION_ID_ERR, "E5");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"mansion_id_err:E5");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}

		//チェック条件：工事受付コードが固定値(007)と等しい かつ 工事受付詳細コードが固定値(D0)と等しい
		if( comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_CD),"007","20","1")  &&  comparison(inCBSMsg.getObject(EKU0061D010CBSMsg.KOJI_UK_DTAIL_CD),"D0","20","1") ){
			//ファミリー契約フラグがnull ：エラー
			if(inCBSMsg.isNull(EKU0061D010CBSMsg.FAMILY_KEI_FLG)){
				inCBSMsg.set(EKU0061D010CBSMsg.FAMILY_KEI_FLG_ERR, "E7");
				JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"family_kei_flg_err:E7");
				stRet = StatusCodes.ITEM_RELATION_ERR;
			}
		}


		JSYejbLog.println(JSYejbLog.DEBUG,this.getClass(),"invoke#End");

		//チェック結果によりステータスを設定する
		if (stRet > inCBSMsg.getInt(EKU0061D010CBSMsg.STATUS)) {
			inCBSMsg.set(EKU0061D010CBSMsg.STATUS,stRet);
		}
	}

	/**
	 * 比較処理
	 * 
	 * @param left_arg 		比較値（左辺）
	 * @param right_arg 	比較値（右辺）
	 * @param enzan_arg 	比較演算子
	 * @param checkType 	比較形式
	 */
	private boolean comparison(Object left_arg, Object right_arg, String enzan_arg, String checkType)
	{

		boolean booRet = true;

		String leftStr = new String();
		String rightStr = new String();

		if ( left_arg != null ){
			leftStr = left_arg.toString();
		}
		if ( right_arg != null ){
			rightStr = right_arg.toString();
		}

		// 文字比較
		if ( "1".equals(checkType) ) {

			//より小さい
			if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) < 0)){
					return true;
				}else{
					return false;
				}
			//以下
			} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) <= 0)){
					return true;
				}else{
					return false;
				}
			//等しい
			} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) == 0)){
					return true;
				}else{
					return false;
				}
			//等しくない
			} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) != 0)){
					return true;
				}else{
					return false;
				}
			//以上
			} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) >= 0)){
					return true;
				}else{
					return false;
				}
			//より大きい
			} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
				if( (leftStr.compareTo(rightStr) > 0)){
					return true;
				}else{
					return false;
				}
			//該当無し
			} else {
				return false;
			}

		//数値比較
		} else if ( "2".equals(checkType) ) {

			try{
				Long l_left_arg = new Long(leftStr);
				Long l_right_arg = new Long(rightStr);

				//より小さい
				if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) < 0)){
						return true;
					}else{
						return false;
					}
				//以下
				} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) <= 0)){
						return true;
					}else{
						return false;
					}
				//等しい
				} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) == 0)){
						return true;
					}else{
						return false;
					}
				//等しくない
				} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) != 0)){
						return true;
					}else{
						return false;
					}
				//以上
				} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) >= 0)){
						return true;
					}else{
						return false;
					}
				//より大きい
				} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) > 0)){
						return true;
					}else{
						return false;
					}
				//該当無し
				} else {
					return false;
				}
			}catch(NumberFormatException e){
				return false;
			}

		//精度比較
		} else if ( "3".equals(checkType) ) {

			try{
				Double l_left_arg = new Double(leftStr);
				Double l_right_arg = new Double(rightStr);
				
				//より小さい
				if ( "10".equals(enzan_arg) || "40".equals(enzan_arg) || "41".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) < 0)){
						return true;
					}else{
						return false;
					}
				//以下
				} else if ( "11".equals(enzan_arg) || "50".equals(enzan_arg) || "51".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) <= 0)){
						return true;
					}else{
						return false;
					}
				//等しい
				} else if ( "20".equals(enzan_arg) || "60".equals(enzan_arg) || "61".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) == 0)){
						return true;
					}else{
						return false;
					}
				//等しくない
				} else if ( "21".equals(enzan_arg) || "70".equals(enzan_arg) || "71".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) != 0)){
						return true;
					}else{
						return false;
					}
				//以上
				} else if ( "30".equals(enzan_arg) || "80".equals(enzan_arg) || "81".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) >= 0)){
						return true;
					}else{
						return false;
					}
				//より大きい
				} else if ( "31".equals(enzan_arg) || "90".equals(enzan_arg) || "91".equals(enzan_arg) ) {
					if( (l_left_arg.compareTo(l_right_arg) > 0)){
						return true;
					}else{
						return false;
					}
				//該当無し
				} else {
					return false;
				}
			}catch(NumberFormatException e){
				return false;
			}
		}

		return booRet;

	}

}
