You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
4.0 KiB

#include "dfl_custom.h"
#include <tc/envelope.h>
#include <base_utils/IFail.hxx>
#include <base_utils/TcResultStatus.hxx>
#include <tccore/aom_prop.h>
#include <tccore/project.h>
#include "ado.h"
#include <tccore\aom.h>
#include <tccore\aom_prop.h>
#include "rapidjson/document.h"
#include <tccore/uom.h>
#include "rapidjson/writer.h"
#include <sstream>
#include <iostream>
#include <fstream>
#include <regex>
#include <tccore/grm.h>
#include <property/nr.h>
#include "CRUL_server_call_httpserver.h"
#define ITK_err 919012
#include "spdlog/spdlog.h"
#include "spdlog/sinks/basic_file_sink.h"
#include "ocilib.h"
#include "util.h"
using namespace spdlog;
#define PREF_ML_DB "Meling_dbinfo"
using namespace std;
using namespace rapidjson;
string startLog(char* userName) {
tag_t current_member = NULLTAG, current_user = NULLTAG;
string userId = userName;
//获取当前时间
time_t now = time(0);
tm* p = localtime(&now);
char dateNow[128] = "";
sprintf_s(dateNow, "%04d%02d%02d%02d%02d%02d", 1900 + p->tm_year, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
string dateString = dateNow;
string logPath = "C:/logs/" + userId + "_" + dateString + ".log";
auto file_logger = basic_logger_mt("import_logger", logPath);
set_default_logger(file_logger);
log("begin connor_import_object");
return logPath;
}
string uploadMinio(string jarName, string logPath) {
char cmd[1024] = "";
strcpy(cmd, "java -jar \"");
//strcat(cmd, jar_file);
strcat(cmd, getenv("TC_ROOT"));
strcat(cmd, "\\bin\\");
strcat(cmd, jarName.c_str());
strcat(cmd, "\" ");
string strResult;
strcat(cmd, logPath.c_str());
char buf[8000] = { 0 };
log("cmd:\n%s\n", cmd);
FILE* pf = NULL;
if ((pf = _popen(cmd, "r")) == NULL) {
log("接口返回1\n");
}
else {
log("接口返回2\n");
while (fgets(buf, sizeof buf, pf)) {
strResult += buf;
}
_pclose(pf);
}
log("strResult:%s\n", strResult.c_str());
return strResult;
//return;
}
int ITK_user_main(int argc, char* argv[])
{
int ifail = ITK_ok;
char* tc_name, *tc_pwd, *tc_group, *code, *groupId, *projectUid, *uids, *userName;
tc_name = (char*)"dcproxy";//ITK_ask_cli_argument("-u=");
tc_pwd = (char*)"dcproxy";// ITK_ask_cli_argument("-p=");
tc_group = (char*)"";// ITK_ask_cli_argument("-g=");
code = ITK_ask_cli_argument("-a="); //编号
groupId = ITK_ask_cli_argument("-b="); //编号
projectUid = ITK_ask_cli_argument("-c="); //编号
uids = ITK_ask_cli_argument("-d="); //编号
userName = ITK_ask_cli_argument("-e="); //编号
ITKCALL(ifail = TC_init_module(tc_name, tc_pwd, tc_group));
if (ifail != ITK_ok) {
log("login fail! \n");
return ifail;
}
else {
log("login2222>>>>> \n");
}
string logPath = startLog(userName);
vector<string> uidVector;
vector<tag_t> ccpVector;
Split(uids, ":", uidVector);
log("uidVector>>>>> %d \n", uidVector.size());
for (int i = 0; i < uidVector.size(); i++) {
tag_t ccp;
log("idVector[i].c_str() %s \n", uidVector[i].c_str());
ITK__convert_uid_to_tag(uidVector[i].c_str(), &ccp);
ccpVector.push_back(ccp);
}
int url_num = 0;
char** url_vals = NULL;
PREF_ask_char_values("database_tc", &url_num, &url_vals);
string url = url_vals[0];
url.append("/").append(url_vals[2]);
log("url ==>%s", url.c_str());
if (ConnServer(url_vals[3], url_vals[4], (char*)url.c_str()) == -1)
{
log("提示:中间数据表访问失败");
ifail = 1;
}
readBomMsg(ccpVector, groupId, projectUid, code, userName);//,char * groupName,char* groupUid,char*code
//log("产成品UID: {%s} " , uids);
string str = uploadMinio("uploadMinio.jar", logPath);
//string minioPath = "/plmichi/SapBomLog/" + logPath;
//char updateSum[1024] = "update CHINT_BOM_TO_SAP_SUM set \"LOGURL\" = '%s' where code = '%s' ";
char selectRxfs[1024];
sprintf(selectRxfs, "update CHINT_BOM_TO_SAP_SUM set \"LOGURL\" = '%s' where code = '%s' ", str.c_str(), code);
log("selectRecord3 ===> %s\n", selectRxfs);
ExecuteSQLNoInputParam(selectRxfs);
ExecuteSQLNoInputParam((char*)"commit");
//上传文件
DisConnServer();
ITK_exit_module(true);
spdlog::drop_all();
return ifail;
}