Просмотр исходного кода

1、下载上报:1007表示已下载;
2、测试用例完善;

Jeff 5 лет назад
Родитель
Сommit
f0171b1a8d

+ 2 - 2
scbc.tools/scbc.tools/SDK.cpp

@@ -416,7 +416,7 @@ int CSDK::ReportDownloadStatus(std::string order)
 
 	CCurlClient curl;
 	curl.Initialize();
-	if ( curl.Posts(url, content, result) == CURLE_OK)
+	if ( curl.Post(url, content, result) == CURLE_OK)
 	{
 		// ½âÎöjson×Ö·û´®;
 		cJSON *pJson = cJSON_Parse(result.c_str());
@@ -429,7 +429,7 @@ int CSDK::ReportDownloadStatus(std::string order)
 		code = cJSON_GetObjectItem(pJson, _T("code")) ? cJSON_GetObjectItem(pJson, _T("code"))->valuestring : "";
 		des = cJSON_GetObjectItem(pJson, _T("des")) ? cJSON_GetObjectItem(pJson, _T("des"))->valuestring : "";
 
-		if ( _tcsicmp(code.c_str(), "1000") && _tcsicmp(code.c_str(), "1006"))
+		if ( _tcsicmp(code.c_str(), "1000") && _tcsicmp(code.c_str(), "1006") && _tcsicmp(code.c_str(), "1007") )
 		{
 			cJSON_Delete(pJson);
 			return -3;

+ 4 - 1
scbc.tools/scbc.tools/TableInfo.h

@@ -81,9 +81,12 @@ typedef struct __ST_LOG__
 	std::string		content;						// 日志内容;
 	std::string		gdate;							// 日志生成时间;
 	std::string		report_date;					// 日志上报成功时间;
-	//std::string		report_status;					// 上报状态:0=未上报、1=上报成功、-1=上报失败;
+	//std::string		report_status;				// 上报状态:0=未上报、1=上报成功、-1=上报失败;
 }STLog, *pSTLog;
 
+///////////////////////////////////////////////////////////////////////////////////
+// 以下两结构,对外提供sdk时需要使用到;对外提供时,以上结构请删除;
+
 // 抄写表;
 typedef struct __SN_KEYS__
 {

+ 4 - 3
scbc.tools/scbc.tools/scbc.tools.h

@@ -85,7 +85,7 @@ extern SCBCTOOLS_API int UpdateKeyReportStatus(const char* lpSN);
 描述:上报抄写结果;
 参数:lpSN 条码;
 返回:
-	0=表示在数据库中查询不到该sn的抄写信息;
+	0=表示在数据库中查询不到该sn的抄写信息,或者该sn未抄写成功
 	1=表示上报抄写结果成功,且更新上报状态成功;
 	-1=表示lpSN参数空;
 	-2=表示打开db失败;
@@ -102,7 +102,7 @@ extern SCBCTOOLS_API int ReportKeyCopyResults(const char* lpSN);
 描述:批量上报抄写结果。从数据库查询出1000条未上报的sn进行上报;
 参数:无;
 返回:
-	0=表示在数据库中查询不到未上报的sn抄写信息;
+	0=表示在数据库中查询不到未上报的sn抄写信息,或者所有sn未抄写成功
 	1=表示上报抄写结果成功,且更新上报状态成功;
 	-1=表示lpSN参数空;
 	-2=表示打开db失败;
@@ -116,7 +116,7 @@ extern SCBCTOOLS_API int ReportKeyCopyResults(const char* lpSN);
 extern SCBCTOOLS_API int BatchReportKeyCopyResults();
 
 /* 8
-描述:查询批次信息:总sn数、实际sn数、抄写成功数量、上报成功数量;
+描述:查询批次信息:应下载sn数、实际下载sn数、抄写成功数量、上报成功数量;
 参数:lpOrder 批次号; binfo 返回的bid信息;
 返回:
 	0=表示订单不存在数据库中;
@@ -125,6 +125,7 @@ extern SCBCTOOLS_API int BatchReportKeyCopyResults();
 	-2=表示打开数据库失败;
 	-3=表示查询订单出错;
 	-4=表示数据异常;
+注意:一般情况下,应下载数sn数量=实际下载sn数量;
 */
 extern SCBCTOOLS_API int QueryBidInfo(const char* lpOrder, BidInfo& binfo);
 

+ 33 - 4
scbc.tools/test/test.cpp

@@ -36,6 +36,12 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 			// 未下载成功,开始后台下载;
 			nRet = DownloadMidData("IDL144240G");
 			printf("DownloadMidData:%d\n", nRet);
+			if ( nRet == 0 )
+			{
+				printf("该批次未导入系统,无法下载,程序退出\n");
+				system("pause");
+				exit(0);
+			}
 		}
 
 		// 2、等待下载成功;
@@ -46,13 +52,36 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 			Sleep(1000);
 		}
 
-		// 单个sn抄写结果上报;
+		// 3、获取指定sn的keys,用于抄写key;
+		SNKeys keys;
+		nRet = QueryKeyInfo("TEST-3311-8811", keys);
+		printf("QueryKeyInfo:%d\n", nRet);
+
+		// 4、抄写成功后,保存抄写结果;
+		nRet = UpdateKeyCopyStatus("TEST-3311-8811");
+		printf("UpdateKeyCopyStatus:%d\n", nRet);
+
+		// 5、单个sn抄写结果上报;
 		nRet = ReportKeyCopyResults("TEST-3311-8811");
-		printf("ReportKeyCopyResults:%d\n", nRet);
+		printf("ReportKeyCopyResults:%d, %s\n", nRet, nRet == 1 ? "上报成功" : "上报失败");
+		if ( nRet == -8 )
+		{
+			nRet = UpdateKeyReportStatus("TEST-3311-8811");
+			printf("UpdateKeyReportStatus:%d\n", nRet);
+		}
 
-		// 1000个sn抄写结果上报;
+		// 6、1000个sn抄写结果上报;
 		nRet = BatchReportKeyCopyResults();
-		printf("BatchReportKeyCopyResults:%d\n", nRet);
+		printf("BatchReportKeyCopyResults:%d, %s\n", nRet, nRet == 1 ? "上报成功" : "上报失败");
+
+		// 7、查询应下载sn数量、实际下载sn数据、抄写成功sn数量、上报成功sn数量;
+		BidInfo binfo;
+		nRet = QueryBidInfo("IDL144240G", binfo);
+		printf("QueryBidInfo:%d\n", nRet, nRet == 1 ? "查询成功": "查询失败");
+
+		// 8、删除批次相关表数据(全部表数量)
+		nRet = RemoveBidData("IDL144240G");
+		printf("RemoveBidData:%d\n", nRet);
 	}
 
 	system("pause");