@ -197,30 +197,41 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
if ( strcmp ( " T2_outsourceRevision " , type1 ) = = 0 ) {
if ( strcmp ( " T2_outsourceRevision " , type1 ) = = 0 ) {
//判断是否存在dwg文件
//判断是否存在dwg文件
//获取版本下的数据集
//获取版本下的数据集
char * file_name ;
char * file_name = NULL ;
char * origin_file_name ;
char * origin_file_name = NULL ;
tag_t * ref_object = NULL ;
tag_t * ref_object = NULL ;
int n_found = 0 ;
int n_found = 0 ;
//数据
//数据
char * itemId ;
char * itemId = NULL ;
char * objectname ;
char * objectname = NULL ;
char * datesetname ;
char * datesetname = NULL ;
char * fileurl ;
char * fileurl = NULL ;
char * revision ;
char * revision = NULL ;
int released = 0 ;
int released = 0 ;
date_t createtime ;
date_t createtime ;
char * createtime_str ;
char * createtime_str = NULL ;
date_t updatetime ;
date_t updatetime ;
char * updatetime_str ;
char * updatetime_str = NULL ;
char * urlcreatetime ;
string urlCreateTime = " " ;
string finishtime ;
string finishtime = " " ;
string exportName = " " ;
string urlName = " " ;
string urlName = " " ;
string filePaths = " " ;
string zipPaths = " " ;
ITKCALL ( AOM_ask_value_tags ( tagt1 , " IMAN_specification " , & dataset_num , & dataset_tags ) ) ;
ITKCALL ( AOM_ask_value_tags ( tagt1 , " IMAN_specification " , & dataset_num , & dataset_tags ) ) ;
int count = 0 ;
//循环一遍判断有几个dwg数据集
for ( int f = 0 ; f < dataset_num ; f + + )
{
ITKCALL ( AOM_ask_value_string ( dataset_tags [ f ] , " object_name " , & file_name ) ) ;
if ( strstr ( file_name , dwg ) | | strstr ( file_name , DWG ) ) {
count + + ;
}
}
if ( count = = 1 ) {
for ( int k = 0 ; k < dataset_num ; k + + )
for ( int k = 0 ; k < dataset_num ; k + + )
{
{
string exportName = " " ;
ITKCALL ( AOM_ask_value_string ( dataset_tags [ k ] , " object_name " , & file_name ) ) ;
ITKCALL ( AOM_ask_value_string ( dataset_tags [ k ] , " object_name " , & file_name ) ) ;
if ( strstr ( file_name , dwg ) | | strstr ( file_name , DWG ) ) {
if ( strstr ( file_name , dwg ) | | strstr ( file_name , DWG ) ) {
@ -266,7 +277,6 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
cout < < " 年: " < < 1900 + nowtime - > tm_year < < endl ;
cout < < " 年: " < < 1900 + nowtime - > tm_year < < endl ;
cout < < " 月: " < < 1 + nowtime - > tm_mon < < endl ;
cout < < " 月: " < < 1 + nowtime - > tm_mon < < endl ;
cout < < " 日: " < < nowtime - > tm_mday < < endl ;
cout < < " 日: " < < nowtime - > tm_mday < < endl ;
string urlCreateTime ;
urlCreateTime . append ( std : : to_string ( 1900 + nowtime - > tm_year ) ) . append ( " - " ) . append ( std : : to_string ( 1 + nowtime - > tm_mon ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_mday ) ) . append ( " " ) . append ( std : : to_string ( nowtime - > tm_hour ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_min ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_sec ) ) ;
urlCreateTime . append ( std : : to_string ( 1900 + nowtime - > tm_year ) ) . append ( " - " ) . append ( std : : to_string ( 1 + nowtime - > tm_mon ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_mday ) ) . append ( " " ) . append ( std : : to_string ( nowtime - > tm_hour ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_min ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_sec ) ) ;
//拼接文件夹 年-》月-》日
//拼接文件夹 年-》月-》日
//创建文件夹
//创建文件夹
@ -317,10 +327,10 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
WriteLog ( " 发布=>%d " , wl_release_count ) ;
WriteLog ( " 发布=>%d " , wl_release_count ) ;
if ( wl_release_count > 0 ) {
if ( wl_release_count > 0 ) {
//发布状态给0, 封存状态给1( T2_D) , 其余状态都是0, 取最后一次发布的状态
//发布状态给0, 封存状态给1( T2_D) , 其余状态都是0, 取最后一次发布的状态
tag_t released_tag = wl_release_tags [ wl_release_count - 1 ] ;
tag_t released_tag = wl_release_tags [ wl_release_count - 1 ] ;
ITKCALL ( AOM_ask_value_string ( released_tag , " object_name " , & released_str ) ) ;
ITKCALL ( AOM_ask_value_string ( released_tag , " object_name " , & released_str ) ) ;
WriteLog ( " released_str=%s \n " , released_str ) ;
WriteLog ( " released_str=%s \n " , released_str ) ;
if ( strcmp ( released_str , " T2_D " ) = = 0 ) {
if ( strcmp ( released_str , " T2_D " ) = = 0 ) {
released = 1 ;
released = 1 ;
}
}
}
}
@ -332,7 +342,7 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
//调用sql插入数据
//调用sql插入数据
if ( juede = = 1 ) {
if ( juede = = 1 ) {
char sql2 [ 1024 ] = " \0 " ;
char sql2 [ 1024 ] = " \0 " ;
sprintf ( sql2 , " insert into DFL_DRAWING_TO_SRM_DETIALS(itemid,objectname,datesetname,fileurl,revision,released,createtime,updatetime,urlcreatetime,urlstatus) values('%s','%s','%s','%s','%s',%d,'%s','%s','%s','%s') " , itemId , objectname , datesetname , urlName . c_str ( ) , revision , released , createtime_str , updatetime_str , urlCreateTime . c_str ( ) , " 未同步 " ) ;
sprintf ( sql2 , " insert into DFL_DRAWING_TO_SRM_DETIALS(itemid,objectname,datesetname,fileurl,revision,released,createtime,updatetime,urlcreatetime,urlstatus) values('%s','%s','%s','%s','%s',%d,'%s','%s','%s','%s') " , itemId , objectname , datesetname , urlName . c_str ( ) , revision , released , createtime_str , updatetime_str , urlCreateTime . c_str ( ) , " 未同步 " ) ;
WriteLog ( " 提示:sql2==%s \n " , sql2 ) ;
WriteLog ( " 提示:sql2==%s \n " , sql2 ) ;
if ( ExecuteSQLNoInputParam ( sql2 ) = = - 1 )
if ( ExecuteSQLNoInputParam ( sql2 ) = = - 1 )
{
{
@ -369,7 +379,8 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
curl_easy_setopt ( curl , CURLOPT_DEFAULT_PROTOCOL , " https " ) ;
curl_easy_setopt ( curl , CURLOPT_DEFAULT_PROTOCOL , " https " ) ;
struct curl_slist * headers = NULL ;
struct curl_slist * headers = NULL ;
headers = curl_slist_append ( headers , " Content-Type: application/json " ) ;
headers = curl_slist_append ( headers , " Content-Type: application/json " ) ;
headers = curl_slist_append ( headers , " Authorization: Basic UExNOkFmdGpzcFBQWW1DU2pNaWNROWh3U3htNDJ4eXpXUkhi " ) ;
//headers = curl_slist_append(headers, "Authorization: Basic UExNOkFmdGpzcFBQWW1DU2pNaWNROWh3U3htNDJ4eXpXUkhi");
headers = curl_slist_append ( headers , " Authorization: Basic UExNOmJlMVBYVzA5NzlKZGhEYWYxUXp4NzZaY3NEdE4zU3Iy " ) ;
curl_easy_setopt ( curl , CURLOPT_HTTPHEADER , headers ) ;
curl_easy_setopt ( curl , CURLOPT_HTTPHEADER , headers ) ;
//const char* data = "[{\r\n \"materialCode\": \"1\",\r\n \"materialName\": \"物料TEST001\",\r\n \"materialDrawingName\": \"图纸名称\",\r\n \"fileUrl\": \"www.baidu.com\",\r\n \"version\": \"1.1\",\r\n \"status\": \"\",\r\n \"createTime\": \"2023-11-26 11:11:10\",\r\n \"publishTime\": \"2023-11-27 11:11:10\"\r\n}]\r\n";
//const char* data = "[{\r\n \"materialCode\": \"1\",\r\n \"materialName\": \"物料TEST001\",\r\n \"materialDrawingName\": \"图纸名称\",\r\n \"fileUrl\": \"www.baidu.com\",\r\n \"version\": \"1.1\",\r\n \"status\": \"\",\r\n \"createTime\": \"2023-11-26 11:11:10\",\r\n \"publishTime\": \"2023-11-27 11:11:10\"\r\n}]\r\n";
curl_easy_setopt ( curl , CURLOPT_WRITEFUNCTION , write_data ) ;
curl_easy_setopt ( curl , CURLOPT_WRITEFUNCTION , write_data ) ;
@ -379,7 +390,7 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
/* 打印JSON对象(整条链表)的所有数据 */
/* 打印JSON对象(整条链表)的所有数据 */
json_to_char = cJSON_Print ( array ) ;
json_to_char = cJSON_Print ( array ) ;
//cout << "JSON:" << json_to_char << endl;
//cout << "JSON:" << json_to_char << endl;
WriteLog ( " json->%s \n " , U2G ( json_to_char ) ) ;
WriteLog ( " json->%s \n " , U2G ( json_to_char ) ) ;
curl_easy_setopt ( curl , CURLOPT_POSTFIELDS , json_to_char ) ;
curl_easy_setopt ( curl , CURLOPT_POSTFIELDS , json_to_char ) ;
WriteLog ( " 9 \n " ) ;
WriteLog ( " 9 \n " ) ;
res = curl_easy_perform ( curl ) ;
res = curl_easy_perform ( curl ) ;
@ -436,7 +447,7 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
//detail表
//detail表
char sql4 [ 1024 ] = " \0 " ;
char sql4 [ 1024 ] = " \0 " ;
sprintf ( sql4 , " update DFL_DRAWING_TO_SRM_DETIALS set urlstatus = '%s' where itemid = '%s' and revision = '%s' " , " 已同步 " , itemId , revision ) ;
sprintf ( sql4 , " update DFL_DRAWING_TO_SRM_DETIALS set urlstatus = '%s' where itemid = '%s' and revision = '%s' " , " 已同步 " , itemId , revision ) ;
WriteLog ( " 提示:sql4==%s \n " , sql4 ) ;
WriteLog ( " 提示:sql4==%s \n " , sql4 ) ;
if ( ExecuteSQLNoInputParam ( sql4 ) = = - 1 )
if ( ExecuteSQLNoInputParam ( sql4 ) = = - 1 )
{
{
@ -468,6 +479,285 @@ int DFL_WL_TO_SRM(char** c_sql_values, const char* flow_uid) {
}
}
}
}
}
}
else if ( count > 1 ) {
for ( int k = 0 ; k < dataset_num ; k + + )
{
string exportName = " " ;
ITKCALL ( AOM_ask_value_string ( dataset_tags [ k ] , " object_name " , & file_name ) ) ;
if ( strstr ( file_name , dwg ) | | strstr ( file_name , DWG ) ) {
//获取数据集文件名称
ITKCALL ( AOM_ask_value_string ( dataset_tags [ k ] , " current_name " , & origin_file_name ) ) ;
//ftp上传数据集
ITKCALL ( AE_ask_dataset_named_refs ( dataset_tags [ k ] , & n_found , & ref_object ) ) ;
WriteLog ( " n_found=%d \n " , n_found ) ;
if ( n_found > 0 ) {
//存在.dwg数据集
//设置处理开始时间
if ( ConnServer ( c_sql_values [ 1 ] , c_sql_values [ 2 ] , c_sql_values [ 0 ] ) ) //"tc11","infodba","//172.16.50.40/tc11" "TC12","infodba","172.16.68.13/tc1"
{
WriteLog ( " 提示:中间数据表访问失败 \n " ) ;
return ifail ;
}
else {
juede = 1 ;
time_t curtime1 ;
time ( & curtime1 ) ;
tm * nowtime1 = localtime ( & curtime1 ) ;
string dealBeginTime ;
dealBeginTime . append ( std : : to_string ( 1900 + nowtime1 - > tm_year ) ) . append ( " - " ) . append ( std : : to_string ( 1 + nowtime1 - > tm_mon ) ) . append ( " - " ) . append ( std : : to_string ( nowtime1 - > tm_mday ) ) . append ( " " ) . append ( std : : to_string ( nowtime1 - > tm_hour ) ) . append ( " - " ) . append ( std : : to_string ( nowtime1 - > tm_min ) ) . append ( " - " ) . append ( std : : to_string ( nowtime1 - > tm_sec ) ) ;
WriteLog ( " 提示:中间数据表访问成功 \n " ) ;
char sql1 [ 1024 ] = " \0 " ;
sprintf ( sql1 , " update DFL_DRAWING_TO_SRM_TASK set starttime = '%s' where flowid = '%s' " , dealBeginTime . c_str ( ) , flow_uid ) ;
WriteLog ( " 提示:sql1==%s \n " , sql1 ) ;
if ( ExecuteSQLNoInputParam ( sql1 ) = = - 1 )
{
WriteLog ( " 提示:数据插入 失败, %s \n " , sql1 ) ;
return 1 ;
}
else {
ExecuteSQLNoInputParam ( " commit " ) ;
}
}
//1.下载文件到ftp目录
time_t curtime2 ;
time ( & curtime2 ) ;
tm * nowtime = localtime ( & curtime2 ) ;
// 输出tm结构的年月日
cout < < " 年: " < < 1900 + nowtime - > tm_year < < endl ;
cout < < " 月: " < < 1 + nowtime - > tm_mon < < endl ;
cout < < " 日: " < < nowtime - > tm_mday < < endl ;
urlCreateTime . append ( std : : to_string ( 1900 + nowtime - > tm_year ) ) . append ( " - " ) . append ( std : : to_string ( 1 + nowtime - > tm_mon ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_mday ) ) . append ( " " ) . append ( std : : to_string ( nowtime - > tm_hour ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_min ) ) . append ( " - " ) . append ( std : : to_string ( nowtime - > tm_sec ) ) ;
//拼接文件夹 年-》月-》日
//创建文件夹
string mdCommandYear = " md " ;
string mdCommandMonth = " md " ;
string mdCommandDay = " md " ;
//string localPath = "C:\\Siemens\\ftp\\";
string localPath = " " ;
string dPath = localPath . append ( position ) . append ( std : : to_string ( 1900 + nowtime - > tm_year ) ) ; //文件夹年路径
WriteLog ( " position11111111111->%s " , position ) ;
WriteLog ( " dPath1->%s " , dPath . c_str ( ) ) ;
//创建目录 复制文件
if ( _access ( dPath . c_str ( ) , 0 ) ! = 0 ) { //判断年是否存在
//创建年
system ( mdCommandYear . append ( dPath ) . c_str ( ) ) ;
}
dPath . append ( " \\ " ) . append ( std : : to_string ( 1 + nowtime - > tm_mon ) ) ;
WriteLog ( " dPath2->%s " , dPath . c_str ( ) ) ;
if ( _access ( dPath . c_str ( ) , 0 ) ! = 0 ) { //判断月是否存在
//创建月
system ( mdCommandMonth . append ( dPath ) . c_str ( ) ) ;
}
dPath . append ( " \\ " ) . append ( std : : to_string ( nowtime - > tm_mday ) ) ;
WriteLog ( " dPath3->%s " , dPath . c_str ( ) ) ;
if ( _access ( dPath . c_str ( ) , 0 ) ! = 0 ) { //判断日是否存在
//创建日
system ( mdCommandDay . append ( dPath ) . c_str ( ) ) ;
//数据集文件下载该目录
IMF_export_file ( ref_object [ 0 ] , exportName . append ( dPath ) . append ( " \\ " ) . append ( origin_file_name ) . c_str ( ) ) ;
}
else {
IMF_export_file ( ref_object [ 0 ] , exportName . append ( dPath ) . append ( " \\ " ) . append ( origin_file_name ) . c_str ( ) ) ;
}
filePaths . append ( exportName ) . append ( " ; " ) ;
//3.封装数据存入 信息写入DFL_ DRAWING_TO_SRM_DETIALS
ITKCALL ( AOM_ask_value_string ( tagt1 , " item_id " , & itemId ) ) ;
ITKCALL ( AOM_ask_value_string ( tagt1 , " object_name " , & objectname ) ) ;
ITKCALL ( AOM_ask_value_string ( dataset_tags [ k ] , " object_name " , & datesetname ) ) ;
ITKCALL ( AOM_ask_value_string ( tagt1 , " item_revision_id " , & revision ) ) ;
if ( urlName . size ( ) = = 0 ) {
urlName . append ( tomcatIp ) . append ( std : : to_string ( 1900 + nowtime - > tm_year ) ) . append ( " \\ " ) . append ( std : : to_string ( 1 + nowtime - > tm_mon ) ) . append ( " \\ " ) . append ( std : : to_string ( nowtime - > tm_mday ) ) . append ( " \\ " ) ;
zipPaths . append ( dPath ) . append ( " \\ " ) . append ( itemId ) . append ( " - " ) . append ( objectname ) . append ( " .zip " ) ;
}
//发布状态
int wl_release_count = 0 ;
tag_t * wl_release_tags = NULL ;
char * released_str ;
//获取发布状态
ITKCALL ( AOM_ask_value_tags ( dataset_tags [ k ] , " release_status_list " , & wl_release_count , & wl_release_tags ) ) ;
WriteLog ( " 发布=>%d " , wl_release_count ) ;
if ( wl_release_count > 0 ) {
//发布状态给0, 封存状态给1( T2_D) , 其余状态都是0, 取最后一次发布的状态
tag_t released_tag = wl_release_tags [ wl_release_count - 1 ] ;
ITKCALL ( AOM_ask_value_string ( released_tag , " object_name " , & released_str ) ) ;
WriteLog ( " released_str=%s \n " , released_str ) ;
if ( strcmp ( released_str , " T2_D " ) = = 0 ) {
released = 1 ;
}
}
ITKCALL ( AOM_ask_value_date ( dataset_tags [ k ] , " creation_date " , & createtime ) ) ;
ITKCALL ( DATE_date_to_string ( createtime , " %Y-%m-%d %H:%M:%S " , & createtime_str ) ) ;
ITKCALL ( AOM_ask_value_date ( dataset_tags [ k ] , " last_mod_date " , & updatetime ) ) ;
ITKCALL ( DATE_date_to_string ( updatetime , " %Y-%m-%d %H:%M:%S " , & updatetime_str ) ) ;
//urlcreatetime
}
}
}
//调用jar包生成zip
WriteLog ( " 提示:filePaths.c_str()==%s \n " , filePaths . c_str ( ) ) ;
char cmd [ 256 ] = " " ;
char * tc_root_dir = getenv ( " tc_root " ) ;
strcpy ( cmd , " java -jar " ) ;
strcat ( cmd , tc_root_dir ) ;
strcat ( cmd , " \\ bin \\ DFL_ZIP.jar " ) ;
strcat ( cmd , " \" " ) ;
strcat ( cmd , filePaths . c_str ( ) ) ;
strcat ( cmd , " \" \" " ) ;
strcat ( cmd , zipPaths . c_str ( ) ) ;
strcat ( cmd , " \" " ) ;
WriteLog ( " \n %s \n " , cmd ) ;
system ( cmd ) ;
//调用sql插入数据
urlName . append ( itemId ) . append ( " - " ) . append ( objectname ) . append ( " .zip " ) ;
if ( juede = = 1 ) {
char sql2 [ 1024 ] = " \0 " ;
sprintf ( sql2 , " insert into DFL_DRAWING_TO_SRM_DETIALS(itemid,objectname,datesetname,fileurl,revision,released,createtime,updatetime,urlcreatetime,urlstatus) values('%s','%s','%s','%s','%s',%d,'%s','%s','%s','%s') " , itemId , objectname , datesetname , urlName . c_str ( ) , revision , released , createtime_str , updatetime_str , urlCreateTime . c_str ( ) , " 未同步 " ) ;
WriteLog ( " 提示:sql2==%s \n " , sql2 ) ;
if ( ExecuteSQLNoInputParam ( sql2 ) = = - 1 )
{
WriteLog ( " 提示:数据插入 失败, %s \n " , sql2 ) ;
return 1 ;
}
else {
ExecuteSQLNoInputParam ( " commit " ) ;
}
}
//4.调用SRM接口
//拼接json
cJSON * array = cJSON_CreateArray ( ) ;
cJSON * data = cJSON_CreateObject ( ) ;
cJSON_AddStringToObject ( data , " materialCode " , itemId ) ;
cJSON_AddStringToObject ( data , " materialName " , GbkToUtf8 ( objectname ) . c_str ( ) ) ;
cJSON_AddStringToObject ( data , " materialDrawingName " , GbkToUtf8 ( datesetname ) . c_str ( ) ) ;
cJSON_AddStringToObject ( data , " fileUrl " , GbkToUtf8 ( urlName ) . c_str ( ) ) ;
cJSON_AddStringToObject ( data , " version " , revision ) ;
cJSON_AddStringToObject ( data , " status " , std : : to_string ( released ) . c_str ( ) ) ;
cJSON_AddStringToObject ( data , " createTime " , createtime_str ) ;
cJSON_AddStringToObject ( data , " publishTime " , updatetime_str ) ;
cJSON_AddItemToArray ( array , data ) ;
//发json
CURL * curl ;
CURLcode res ;
curl = curl_easy_init ( ) ;
if ( curl ) {
stringstream out ;
curl_easy_setopt ( curl , CURLOPT_CUSTOMREQUEST , " POST " ) ;
//curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.68/gateway/serviceApi/invoke/QZbycode/DFL-SRM-005");
curl_easy_setopt ( curl , CURLOPT_URL , url ) ;
curl_easy_setopt ( curl , CURLOPT_FOLLOWLOCATION , 1L ) ;
curl_easy_setopt ( curl , CURLOPT_DEFAULT_PROTOCOL , " https " ) ;
struct curl_slist * headers = NULL ;
headers = curl_slist_append ( headers , " Content-Type: application/json " ) ;
//headers = curl_slist_append(headers, "Authorization: Basic UExNOkFmdGpzcFBQWW1DU2pNaWNROWh3U3htNDJ4eXpXUkhi");
headers = curl_slist_append ( headers , " Authorization: Basic UExNOmJlMVBYVzA5NzlKZGhEYWYxUXp4NzZaY3NEdE4zU3Iy " ) ;
curl_easy_setopt ( curl , CURLOPT_HTTPHEADER , headers ) ;
//const char* data = "[{\r\n \"materialCode\": \"1\",\r\n \"materialName\": \"物料TEST001\",\r\n \"materialDrawingName\": \"图纸名称\",\r\n \"fileUrl\": \"www.baidu.com\",\r\n \"version\": \"1.1\",\r\n \"status\": \"\",\r\n \"createTime\": \"2023-11-26 11:11:10\",\r\n \"publishTime\": \"2023-11-27 11:11:10\"\r\n}]\r\n";
curl_easy_setopt ( curl , CURLOPT_WRITEFUNCTION , write_data ) ;
curl_easy_setopt ( curl , CURLOPT_WRITEDATA , & out ) ;
char * json_to_char = NULL ;
WriteLog ( " JSON拼接完成 \n " ) ;
/* 打印JSON对象(整条链表)的所有数据 */
json_to_char = cJSON_Print ( array ) ;
//cout << "JSON:" << json_to_char << endl;
WriteLog ( " json->%s \n " , U2G ( json_to_char ) ) ;
curl_easy_setopt ( curl , CURLOPT_POSTFIELDS , json_to_char ) ;
WriteLog ( " 9 \n " ) ;
res = curl_easy_perform ( curl ) ;
//设置写数据
if ( res ! = CURLE_OK ) {
WriteLog ( " curl_easy_perform() failed: %s \n " , curl_easy_strerror ( res ) ) ;
}
else {
WriteLog ( " ====>>>>OK \n " ) ;
}
long retcode = 0 ;
CURLcode code = curl_easy_getinfo ( curl , CURLINFO_RESPONSE_CODE , & retcode ) ;
WriteLog ( " ====>>>>retcode:%d \n " , retcode ) ;
if ( code ! = CURLE_OK | | retcode ! = 200 )
{
WriteLog ( " 发送数据给ERP失败 \n " ) ;
return 1 ;
}
else
{
WriteLog ( " 发送数据给ERP成功 \n " ) ;
}
string str_json = out . str ( ) ;
WriteLog ( " return Msg===>%s \n " , U2G ( str_json . c_str ( ) ) ) ;
//5.如果接口调用成功了 修改两张表
char * a = " 同步成功 " ;
if ( strstr ( U2G ( str_json . c_str ( ) ) , a ) ! = NULL ) { //存在
//task表
time_t curtime3 ;
time ( & curtime3 ) ;
tm * nowtime3 = localtime ( & curtime3 ) ;
// 输出tm结构的年月日
cout < < " 年: " < < 1900 + nowtime3 - > tm_year < < endl ;
cout < < " 月: " < < 1 + nowtime3 - > tm_mon < < endl ;
cout < < " 日: " < < nowtime3 - > tm_mday < < endl ;
finishtime . append ( std : : to_string ( 1900 + nowtime3 - > tm_year ) ) . append ( " - " ) . append ( std : : to_string ( 1 + nowtime3 - > tm_mon ) ) . append ( " - " ) . append ( std : : to_string ( nowtime3 - > tm_mday ) ) . append ( " " ) . append ( std : : to_string ( nowtime3 - > tm_hour ) ) . append ( " - " ) . append ( std : : to_string ( nowtime3 - > tm_min ) ) . append ( " - " ) . append ( std : : to_string ( nowtime3 - > tm_sec ) ) ;
char sql3 [ 1024 ] = " \0 " ;
sprintf ( sql3 , " update DFL_DRAWING_TO_SRM_TASK set finishtime = '%s',status = '%s' where flowid = '%s' " , finishtime . c_str ( ) , " 已推送 " , flow_uid ) ;
WriteLog ( " 提示:sql3==%s \n " , sql3 ) ;
if ( ExecuteSQLNoInputParam ( sql3 ) = = - 1 )
{
WriteLog ( " 提示:数据插入 失败, %s \n " , sql3 ) ;
return 1 ;
}
else {
ExecuteSQLNoInputParam ( " commit " ) ;
}
//detail表
char sql4 [ 1024 ] = " \0 " ;
sprintf ( sql4 , " update DFL_DRAWING_TO_SRM_DETIALS set urlstatus = '%s' where itemid = '%s' and revision = '%s' " , " 已同步 " , itemId , revision ) ;
WriteLog ( " 提示:sql4==%s \n " , sql4 ) ;
if ( ExecuteSQLNoInputParam ( sql4 ) = = - 1 )
{
WriteLog ( " 提示:数据插入 失败, %s \n " , sql4 ) ;
return 1 ;
}
else {
ExecuteSQLNoInputParam ( " commit " ) ;
}
}
else {
char sql5 [ 1024 ] = " \0 " ;
sprintf ( sql5 , " update DFL_DRAWING_TO_SRM_DETIALS set urlstatus = '%s' where itemid = '%s' and revision = '%s' " , " 同步失败 " , itemId , revision ) ;
WriteLog ( " 提示:sql5==%s \n " , sql5 ) ;
if ( ExecuteSQLNoInputParam ( sql5 ) = = - 1 )
{
WriteLog ( " 提示:数据插入 失败, %s \n " , sql5 ) ;
return 1 ;
}
else {
ExecuteSQLNoInputParam ( " commit " ) ;
}
}
}
curl_easy_cleanup ( curl ) ;
}
}
}
}
@ -531,7 +821,7 @@ int ITK_user_main(int argc, char* argv[])
else {
else {
WriteLog ( " Info: The data table is accessed successfully \n " ) ;
WriteLog ( " Info: The data table is accessed successfully \n " ) ;
char sql_cx [ 1024 ] = " \0 " ;
char sql_cx [ 1024 ] = " \0 " ;
sprintf ( sql_cx , " select flowid from DFL_DRAWING_TO_SRM_TASK where STATUS ='未开始'ORDER BY CODE A SC" ) ;
sprintf ( sql_cx , " select flowid from DFL_DRAWING_TO_SRM_TASK where STATUS ='未开始'ORDER BY CODE DE SC" ) ;
WriteLog ( " Tip: Process UID query started \n " ) ;
WriteLog ( " Tip: Process UID query started \n " ) ;
WriteLog ( " Info:sql==%s \n " , sql_cx ) ;
WriteLog ( " Info:sql==%s \n " , sql_cx ) ;
if ( QuerySQLNoInputParam ( sql_cx , & outputColumn , & outputValueCount , & flowUID_values ) = = - 1 )
if ( QuerySQLNoInputParam ( sql_cx , & outputColumn , & outputValueCount , & flowUID_values ) = = - 1 )
@ -554,11 +844,12 @@ int ITK_user_main(int argc, char* argv[])
}
}
for ( int k = 0 ; k < outputValueCount ; k + + ) {
flowuid = flowUID_values [ 0 ] [ 0 ] ;
flowuid = flowUID_values [ k ] [ 0 ] ;
WriteLog ( " flowUID is:%s \n " , flowuid ) ;
WriteLog ( " flowUID is:%s \n " , flowuid ) ;
ifail = DFL_WL_TO_SRM ( option_values , flowuid ) ;
ifail = DFL_WL_TO_SRM ( option_values , flowuid ) ;
}
DisConnServer ( ) ;
DisConnServer ( ) ;
CloseLog ( ) ;
CloseLog ( ) ;
return ifail ;
return ifail ;