Эх сурвалжийг харах

!10879 调整插卡返回;去掉废弃的逻辑
Merge pull request !10879 from 80174847/oilyang_fixed_everything

杨诗友80174847 1 сар өмнө
parent
commit
7380dd8482

+ 110 - 138
Module/mod_CardIssuerStand/CardIssuerStandFSM.cpp

@@ -673,20 +673,6 @@ unsigned int CCardIssuerFSM::s4_on_event(FSMEvent* pEvt)
 			}
 		}
 			break;
-		case USER_EVT_ISSUE_EX:
-		{
-			IssueTask* task = new IssueTask(this);
-			CardIssueExEvent *ciee = NULL;
-			ciee = dynamic_cast<CardIssueExEvent*>(pEvt);
-			task->ctxEx = ciee->ctx;
-			GetEntityBase()->GetFunction()->PostThreadPoolTask(task);
-			pEvt->SetHandled();
-			return pEvt->param1;
-		}
-			break;
-		case USER_EVT_ISSUE_EX_FINISHED:
-			pEvt->SetHandled();
-			return pEvt->param1;
 		case USER_EVT_CHECK_CARD_FINISHED:
 			return pEvt->param1;
 		default:
@@ -1861,12 +1847,16 @@ int CCardIssuerFSM::WaitFetchingCard()
 	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_OFF,"CardReader(fetch) warning off");
 	return 2;
 }
-int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx)
+int CCardIssuerFSM::AcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx)
 {
 	LOG_FUNCTION();
+	m_pCardProcess->DataInit();
+	m_bCancelByRFIC = false;
+	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_ON,"CardReader warning on");
+	m_bWaitAccepteMore = false;
 	DWORD dwTmpCode;
 	ErrorCodeEnum eErr = Error_Unexpect;
-	int acceptTries = 0, err = 0;
+	int acceptTries = 0, acceptRet = 2;//2 for timeout
 	DWORD64 dwStart = GetTickCountRVC();
 	DWORD64 dwEnd = dwStart;
 	m_bWaitingAccept = true;
@@ -1881,7 +1871,7 @@ int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_In
 		}
 		if (m_bCancelAccept)
 		{
-			err = 3;
+			acceptRet = 3;
 			goto Err;
 		}
 		if (m_bWaitAccepteMore)
@@ -1898,7 +1888,11 @@ int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_In
 			if (m_devStatus.eMedia == CI_MEDIA_PRESENT)
 			{
 				LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_OP, "CardIssuerStand op.");
+				acceptRet = 0;
 				acceptTries = 0;
+				FSMSetIssueFlag(0);
+				m_bCardFromHopper = false;
+				m_bUseRFTillNext = false;
 				goto Err;
 			}
 			if (m_devStatus.eMedia == CI_MEDIA_NOTPRESENT)
@@ -1909,7 +1903,7 @@ int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_In
 				if (m_bCancelAccept)
 				{
 					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("have been canceled in sleeping time");
-					err = 3;
+					acceptRet = 3;
 					goto Err;
 				}
 				if (!m_bCancelAccept && !bHasSetCardInType) {
@@ -1918,8 +1912,7 @@ int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_In
 					m_ullEndTime = GetTickCountRVC();
 					if (Error_Succeed != eErr) {
 						dwTmpCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "", "InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_ALL err");
-						ctx->Answer(Error_Unexpect, dwTmpCode);
-						err = 1;
+						acceptRet = 1;
 						goto Err;
 
 					}
@@ -1931,33 +1924,19 @@ int CCardIssuerFSM::InternalAcceptCard(SpReqAnsContext<CardIssuerStandService_In
 		}
 		else
 		{
-			err = 1;
+			acceptRet = 5;
 			if (ctx != NULL) {
 				dwTmpCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303");
-				ctx->Answer(Error_Unexpect, dwTmpCode);
 			}
 			goto Err;
 		}
 		dwEnd = GetTickCountRVC();
 	} while ((dwEnd - dwStart) < 58 * 1000);
-	err = 2;
 Err:
 	m_bExit = false;
 	m_bWaitingAccept = false;
-	m_ullBeginTime = GetTickCountRVC();
-	eErr = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
-	m_ullEndTime = GetTickCountRVC();
 
-
-	if (Error_Succeed != eErr)
-	{
-		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN err");
-		SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "", "InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN err");
-	}
-	else {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::SetCardInType").setCostTime(m_ullEndTime - m_ullBeginTime)("InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN");
-	}
-	if (m_bCancelAccept && err != 1)
+	if (m_bCancelAccept && acceptRet != 1)
 	{
 		//oilyang@20181210 add "if (!m_bCancelByRFIC)" 
 		//oilyang@20170612
@@ -1970,7 +1949,7 @@ Err:
 		{
 			if (m_devStatus.eMedia == CI_MEDIA_PRESENT)
 			{
-				err = 4;
+				acceptRet = 4;
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("<InternalAcceptCard>, Cancel InterAccept, eject card.");
 				eErr = MachineMoveCardFrontGate(IsInBusiness());
 
@@ -1978,54 +1957,56 @@ Err:
 				{
 					//吐卡失败,前面已有告警,这里不再告警
 					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("InternalAcceptCard::MachineMoveCardFrontGate failed(0x%x)", eErr);
-					err = 2;
+					acceptRet = 5;
 				}
 			}
 		}
 		else
 		{
 			SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "QLR040220303");
-			err = 2;
+			acceptRet = 5;
 		}
 	}
-	return err;
-}
-int CCardIssuerFSM::AcceptCard(SpReqAnsContext<CardIssuerStandService_Insert_Req, CardIssuerStandService_Insert_Ans>::Pointer ctx)
-{
-	LOG_FUNCTION();
-	m_pCardProcess->DataInit();
-	m_bCancelByRFIC = false;
-	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_ON,"CardReader warning on");
-	m_bWaitAccepteMore = false;
-	int rc = InternalAcceptCard(ctx);
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("AcceptCard::InternalAcceptCard, result:%d", rc));
-	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_OFF,"CardReader warning off");
-	if (rc == 0) {
-		FSMSetIssueFlag(0);
-		m_bCardFromHopper = false;
-		if (ctx != NULL)
+	if (acceptRet != 1)
+	{
+		m_ullBeginTime = GetTickCountRVC();
+		eErr = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
+		m_ullEndTime = GetTickCountRVC();
+		if (Error_Succeed != eErr)
 		{
-			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("AcceptCard, insert succeed");
-			m_bUseRFTillNext = false;
-			ctx->Answer(Error_Succeed);
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN err");
+			SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, false, m_ullEndTime - m_ullBeginTime, "", "InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN err");
 		}
-	}
-	else if(rc == 2)
-	{
-		if (ctx != NULL) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert timeout");
-			ctx->Answer(Error_TimeOut);
+		else {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::SetCardInType").setCostTime(m_ullEndTime - m_ullBeginTime)("InternalAcceptCard::SetCardInType CI_CARD_IN_TYPE_FORBIDDEN");
 		}
 	}
-	else if(rc == 3 || rc == 4)
+	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_OFF,"CardReader warning off");
+
+	switch (acceptRet)
 	{
-		if (ctx != NULL)
-		{
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert cancel");
-			ctx->Answer(Error_Cancel);
-		}
+	case 0:
+		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("AcceptCard, insert succeed");
+		ctx->Answer(Error_Succeed);
+		break;
+	case 1:
+	case 5:
+		ctx->Answer(Error_Unexpect, dwTmpCode);
+		break;
+	case 2:
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert timeout");
+		ctx->Answer(Error_TimeOut);
+		break;
+	case 3:
+	case 4:
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert cancel");
+		ctx->Answer(Error_Cancel);
+		break;
+
+	default:
+		break;
 	}
-	return rc;
+	return acceptRet;
 }
 static CSimpleStringA GetStrData(TrackInfo trackInfo)
 {
@@ -5343,46 +5324,17 @@ int CCardIssuerFSM::InsertJS(SpReqAnsContext<CardIssuerStandService_InsertJS_Req
 	//m_bCancelByRFIC = false;//??无用变量
 	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_ON, "CardReader warning on");
 	//等待插卡
-	int rc = InternalInsert();
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("InsertJS::InternalInsert, result:%d", rc));
-	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_OFF, "CardReader warning off");
-	if (rc == 0) {
-		FSMSetIssueFlag(0);
-		m_bCardFromHopper = false;
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("InsertJS, insert succeed");
-		m_bUseRFTillNext = false;
-		ctx->Answer(Error_Succeed);
-	}
-	else if (rc == 2)
-	{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("InsertJS, insert timeout");
-		ctx->Answer(Error_TimeOut,CardIssuer_UserErrorCode_Insert_Card_TimeOut);
-	}
-	else if (rc == 3 || rc == 4)
-	{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("InsertJS, insert cancel");
-		ctx->Answer(Error_Cancel, CardIssuer_UserErrorCode_Insert_Card_Cancel);
-	}
-	else
-	{
-		DWORD dwTmpUserErrCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, false, 10, "QLR040220303", "");
-		ctx->Answer(Error_Unexpect, dwTmpUserErrCode);
-	}
-	return rc;
-}
-
-int CCardIssuerFSM::InternalInsert()
-{
-	LOG_FUNCTION();
 	long l_beginTime, l_endTime;
 	ErrorCodeEnum eErr = Error_Unexpect;
 	int acceptTries = 0, errRet = 0;//0成功,1查询状态失败 2超时 3取消 4取消有卡
 	//m_bWaitingAccept = true;
-	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("InternalInsert, m_bExit:%d, m_bCancelInsert:%d, m_bWaitAccepteMore:%d",m_bExit, m_bCancelInsert, m_bWaitAccepteMore));
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("InternalInsert, m_bExit:%d, m_bCancelInsert:%d, m_bWaitAccepteMore:%d", m_bExit, m_bCancelInsert, m_bWaitAccepteMore));
 	bool bHasSetCardInType = false;
 	DWORD64 dwStart = GetTickCountRVC();
 	DWORD64 dwEnd = dwStart;
 
+	DWORD dwTmpCode;
+
 	errRet = 2;//默认是超时
 	do {
 		if (m_bExit)
@@ -5406,8 +5358,11 @@ int CCardIssuerFSM::InternalInsert()
 			//成功
 			if (m_devStatus.eMedia == CI_MEDIA_PRESENT)
 			{
-				LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_OP, "CardIssuerStand op.");
+				LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_OP, "CardIssuerStand op.insert succeed");
 				errRet = 0;
+				FSMSetIssueFlag(0);
+				m_bCardFromHopper = false;
+				m_bUseRFTillNext = false;
 				break;//插卡成功
 			}
 			else if (m_devStatus.eMedia == CI_MEDIA_NOTPRESENT)
@@ -5424,68 +5379,85 @@ int CCardIssuerFSM::InternalInsert()
 							bHasSetCardInType = true;
 						}
 						else {
-							SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "", "InternalInsert::SetCardInType CI_CARD_IN_TYPE_ALL err");
+							dwTmpCode = SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, IsInBusiness(), l_endTime - l_beginTime, "", "InternalInsert::SetCardInType CI_CARD_IN_TYPE_ALL err");
 							errRet = 1;
 							break;
 						}
-					}	
+					}
 				}
 
 			}
 		}
 		else
 		{
-			//失败
-			Sleep(ACCEPT_TRY_INTERVAL*3);
-			errRet = 1;
+			dwTmpCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303");
+			errRet = 6;
 			break;//查询硬件状态失败。???要退吗
 		}
-
 		dwEnd = GetTickCountRVC();
 	} while ((dwEnd - dwStart) < 58 * 1000);
 
 	m_bExit = false;
 
-	//oiltmp need to check the logic
-	if (errRet == 0 || errRet ==1) {
-	}
-	else {
-		//2和3情况
-		if (m_bCancelInsert) {
-			//判定是否有卡,有卡则走吐卡流程
-			l_beginTime = GetTickCountRVC();
-			eErr = m_hDevHelper->GetDevStatus(m_devStatus);
-			l_endTime = GetTickCountRVC();
-			if (Error_Succeed == eErr) {
-				if (m_devStatus.eMedia == CI_MEDIA_PRESENT) {
-					errRet = 4;//取消时有卡
-				}
-				else {
-					errRet = 3;//取消无卡
-				}
+	if (errRet == 3)
+	{
+		//判定是否有卡,有卡则走吐卡流程
+		l_beginTime = GetTickCountRVC();
+		eErr = m_hDevHelper->GetDevStatus(m_devStatus);
+		l_endTime = GetTickCountRVC();
+		if (Error_Succeed == eErr) {
+			if (m_devStatus.eMedia == CI_MEDIA_PRESENT) {
+				errRet = 4;//取消时有卡
 			}
 			else {
-				errRet = 1;//查询硬件状态失败。???要退吗
+				errRet = 3;//取消无卡
 			}
 		}
 		else {
-			errRet = 2;//正常超时
+			dwTmpCode = SetErrorAndLog(Error_Unexpect, MEC_DEVAPI_CARDISSUER_GetDevStatus, "DevAdapter::GetDevStatus", __FUNCTION__, IsInBusiness(), m_ullEndTime - m_ullBeginTime, "QLR040220303");
+			errRet = 6;//查询硬件状态失败
 		}
 	}
-	//关闭进口
-	l_beginTime = GetTickCountRVC();
-	eErr = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
-	l_endTime = GetTickCountRVC();
-	if (Error_Succeed != eErr)
+	if (errRet != 1)
 	{
-		SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, false, l_endTime - l_beginTime);
+		//关闭进口
+		l_beginTime = GetTickCountRVC();
+		eErr = m_hDevHelper->SetCardInType(CI_CARD_IN_TYPE_FORBIDDEN);
+		l_endTime = GetTickCountRVC();
+		if (Error_Succeed != eErr)
+		{
+			SetErrorAndLog(eErr, MEC_DEVAPI_CARDISSUER_SetCardInType, "DevAdapter::SetCardInType", __FUNCTION__, false, l_endTime - l_beginTime);
+		}
+		else {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::SetCardInType").setCostTime(l_endTime - l_beginTime)("%s", __FUNCTION__);
+		}
 	}
-	else {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI("DevAdapter::SetCardInType").setCostTime(l_endTime - l_beginTime)("%s", __FUNCTION__);
+	LogEvent(Severity_Middle, LOG_EVT_CARDISSUER_GREEN_OFF, "CardReader warning off");
+
+	switch (errRet)
+	{
+	case 0:
+		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("AcceptCard, insert succeed");
+		ctx->Answer(Error_Succeed);
+		break;
+	case 1:
+	case 5:
+		ctx->Answer(Error_Unexpect, dwTmpCode);
+		break;
+	case 2:
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert timeout");
+		ctx->Answer(Error_TimeOut);
+		break;
+	case 3:
+	case 4:
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("AcceptCard, insert cancel");
+		ctx->Answer(Error_Cancel);
+		break;
+	default:
+		break;
 	}
 	return errRet;
 }
-
 CSimpleStringA CCardIssuerFSM::MaskCardno(const char* cardno)
 {
 	CSimpleStringA maskCardno = "";

+ 5 - 7
Module/mod_CardIssuerStand/CardIssuerStandFSM.h

@@ -470,24 +470,23 @@ public:
 		FSM_RULE_ENTRY(s2, s3, USER_EVT_JS_INSERT, 0)//JS 插卡
 		FSM_RULE_ENTRY(s2, s12, USER_EVT_JS_ISSUE_FROM_BOX, 0)//JS 卡箱发卡
 		FSM_RULE_ENTRY(s3, s4, USER_EVT_ACCEPTFINISHED, 0)
-		FSM_RULE_ENTRY(s3, s9, USER_EVT_ACCEPTFINISHED, 1)
+		FSM_RULE_ENTRY(s3, s9, USER_EVT_ACCEPTFINISHED, 1)//设置进卡报错
 		FSM_RULE_ENTRY(s3, s2, USER_EVT_ACCEPTFINISHED, 2)
 		FSM_RULE_ENTRY(s3, s2, USER_EVT_ACCEPTFINISHED, 3)
 		FSM_RULE_ENTRY(s3, s7, USER_EVT_ACCEPTFINISHED, 4)
+		FSM_RULE_ENTRY(s3, s9, USER_EVT_ACCEPTFINISHED, 5)//查询硬件报错
 		FSM_RULE_ENTRY(s3, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
 		FSM_RULE_ENTRY(s3, s4, USER_EVT_JS_INSERT_FINISHED, 0)//JS 插卡成功
-		FSM_RULE_ENTRY(s3, s9, USER_EVT_JS_INSERT_FINISHED, 1)//JS 查询硬件报错
+		FSM_RULE_ENTRY(s3, s9, USER_EVT_JS_INSERT_FINISHED, 1)//JS 设置进卡报错
 		FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 2)//JS 超时
 		FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 3)//JS 取消
 		FSM_RULE_ENTRY(s3, s6, USER_EVT_JS_INSERT_FINISHED, 4)//JS 取消时有卡,吐卡
-		FSM_RULE_ENTRY(s3, s2, USER_EVT_JS_INSERT_FINISHED, 5)//JS 插卡前内部已有卡
+		FSM_RULE_ENTRY(s3, s9, USER_EVT_JS_INSERT_FINISHED, 5)//JS 查询硬件报错
 		FSM_RULE_ENTRY(s4, s5, USER_EVT_READ, 0)
 		FSM_RULE_ENTRY(s4, s6, USER_EVT_EJECT, 0)
-		FSM_RULE_ENTRY(s4, s8, USER_EVT_ACCEPT, 0)
+		FSM_RULE_ENTRY(s4, s8, USER_EVT_ACCEPT, 0)//???
 		FSM_RULE_ENTRY(s4, s8, USER_EVT_CAPTURE, 0)
 		FSM_RULE_ENTRY(s4, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
-		FSM_RULE_ENTRY(s4, s2, USER_EVT_ISSUE_EX_FINISHED, 2)
-		FSM_RULE_ENTRY(s4, s6, USER_EVT_ISSUE_EX_FINISHED, 6)
 		FSM_RULE_ENTRY(s4, s5, USER_EVT_PREONLINE, 0)
 		FSM_RULE_ENTRY(s4, s5, USER_EVT_POSTONLINE, 0)
 		FSM_RULE_ENTRY(s4, s11, USER_EVT_JS_READ, 0)//JS 读卡
@@ -723,7 +722,6 @@ public:
 	int ReadJS(SpReqAnsContext<CardIssuerStandService_ReadJS_Req, CardIssuerStandService_ReadJS_Ans>::Pointer ctx);
 
 	int InsertJS(SpReqAnsContext<CardIssuerStandService_InsertJS_Req, CardIssuerStandService_InsertJS_Ans>::Pointer ctx);
-	int InternalInsert();
 
 	int PostOnlineJS_Contact(SpReqAnsContext<CardIssuerStandService_PostOnlineJS_Req, CardIssuerStandService_PostOnlineJS_Ans>::Pointer ctx, bool& bICOK);
 	int PostOnlineJS_RF(SpReqAnsContext<CardIssuerStandService_PostOnlineJS_Req, CardIssuerStandService_PostOnlineJS_Ans>::Pointer ctx);