diff --git a/.vs/BOMToSapOpt/v14/.suo b/.vs/BOMToSapOpt/v14/.suo index e42e71a..4ad169e 100644 Binary files a/.vs/BOMToSapOpt/v14/.suo and b/.vs/BOMToSapOpt/v14/.suo differ diff --git a/BOMToSapOpt.sdf b/BOMToSapOpt.sdf index afcfa10..785e82e 100644 Binary files a/BOMToSapOpt.sdf and b/BOMToSapOpt.sdf differ diff --git a/BOMToSapOpt1.sdf b/BOMToSapOpt1.sdf new file mode 100644 index 0000000..00727a6 Binary files /dev/null and b/BOMToSapOpt1.sdf differ diff --git a/DFL_BOM_WL_TOERP/BOMSendSap.cpp b/DFL_BOM_WL_TOERP/BOMSendSap.cpp index 917194b..02dd68e 100644 --- a/DFL_BOM_WL_TOERP/BOMSendSap.cpp +++ b/DFL_BOM_WL_TOERP/BOMSendSap.cpp @@ -48,17 +48,6 @@ void logBomMsg(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> lists); void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; char* getUnti(char* unti); -struct FlowBean { - vector flowList; - tag_t flow_split = NULLTAG; - tag_t flow_combine = NULLTAG; - tag_t flow_end = NULLTAG; - char* BEZFL; // 参考顺序 - string PLNFL = ""; // 序列 - boolean isMain = true; - boolean isOther = false; - vector flow_combine_list; -}; FlowBean getClone(FlowBean oldBean) { FlowBean newBean; newBean.isMain = false; @@ -132,12 +121,14 @@ void SplitStr(string strArg, string spliter, vector& ans) } } } -void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string batchMsg) { +void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string batchMsg, char* url) { //SIO_USCOREBOM_USCOREPLM_USCOREASYNBinding SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy proxy; ns1__DT_USCOREBOM_USCORES4_USCOREREQ ns1Req; - proxy.userid = "shpodev"; - proxy.passwd = "sap@2019Test"; + //proxy.userid = "shpodev"; + //proxy.passwd = "sap@2019Test"; + proxy.userid = "po_rfc"; + proxy.passwd = "1qaz!QAZ"; soap_mode(&proxy, SOAP_C_UTFSTRING); _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST* reqList = new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST[list.size()]; @@ -152,20 +143,20 @@ void sendBom(vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list, string bat baseInfo.REQ_USCORETRACE_USCOREID = (char*)batchMsg.c_str();//batchNum; ns1Req.BASEINFO = &baseInfo; //ns1__DT_USCOREBOM_USCOREPLM_USCORERSP ns1Rsp; - int xlt = proxy.send_SIO_USCOREBOM_USCOREPLM_USCOREASYN(NULL, NULL, &ns1Req); - log("111"); + int xlt = proxy.send_SIO_USCOREBOM_USCOREPLM_USCOREASYN(url, NULL, &ns1Req); + //log("111"); char* msg = proxy.buf; vector vecMsg; //Split(msg, "?>", vecMsg); //webservice调不通 暂时拆分获取xml信息curl调用 /*string lastMsg = vecMsg[vecMsg.size()-1].c_str(); lastMsg = lastMsg.substr(1, lastMsg.size());*/ - log("BOM XML MSG:{}", msg);/* xml信息*/ + //log("BOM XML MSG:{}", msg);/* xml信息*/ SplitStr(msg, "soap1.1\"", vecMsg); string lastMsg = vecMsg[1].substr(11); - string str = callHttpserver2(lastMsg); string logmsg = "BOM XML MSG:"; log2(logmsg.append(lastMsg));/* xml信息*/ + string str = callHttpserver2(lastMsg, url); logmsg = "return MSG :"; log2(logmsg.append(str)); soap_print_fault(&proxy, stderr); @@ -206,11 +197,11 @@ void isMain(FlowBean& bean, vector& mainLines, vector& endLines, log("num %d\n", num); vector::const_iterator index1 = lists.begin(); vector::const_iterator index2 = lists.begin() + num; - log("num %d\n", num); + //log("num %d\n", num); vector vec_new; // 新的vector存放 - log("num %d\n", num); + //log("num %d\n", num); vec_new.assign(index1, index2); - log("num %d\n", num); + //log("num %d\n", num); bean.flowList = vec_new; if (BEZFL_maps.count(combine) > 0) { @@ -218,7 +209,7 @@ void isMain(FlowBean& bean, vector& mainLines, vector& endLines, } return; } - log("1\n"); + //log("1\n"); if (mainLines.size() == 0) { bean.isMain = (true); } @@ -255,12 +246,12 @@ void isMain(FlowBean& bean, vector& mainLines, vector& endLines, for (int i = 0; i <= len; i++) { if (std::find(mainLines.begin(), mainLines.end(), lists[i]) == mainLines.end()) { - log("3\n"); + //log("3\n"); mainLines.push_back(lists[i]); char* fileDate = new char[20]; sprintf(fileDate, "%06d", num2); BEZFL_maps[lists[i]] = fileDate; - log("4\n"); + //log("4\n"); } } @@ -268,7 +259,7 @@ void isMain(FlowBean& bean, vector& mainLines, vector& endLines, return; } -void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg) { +void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg, char* url) { //ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ *ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy; soap_mode(&proxy, SOAP_C_UTFSTRING); @@ -289,7 +280,7 @@ void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> pr proxy.userid = "shplm";//shplm proxy.passwd = "sap@2019"; - int xlt = proxy.SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN(NULL, NULL, &ns1Req, ns1Rsp); + int xlt = proxy.SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN(url, NULL, &ns1Req, ns1Rsp); if (xlt != 0) { soap_print_fault(&proxy, stderr); } @@ -298,7 +289,7 @@ void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> pr printfMsg(ns1Rsp, sendMsg); } -void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys) { +void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys, char* url) { SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy proxy; //soap_set_omode(&proxy, SOAP_C_UTFSTRING); @@ -321,7 +312,7 @@ void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_IT items.ITEM = item_items; ns1Req.ITEMS = &items; ns1__DT_USCOREFACTORY_USCORENUMBER_USCORERSP ns1Rsp; - int xlt = proxy.SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN(NULL, NULL, &ns1Req, ns1Rsp); + int xlt = proxy.SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN(url, NULL, &ns1Req, ns1Rsp); log("xlt:[%d]", xlt); if (xlt != 0) { soap_print_fault(&proxy, stderr); @@ -388,7 +379,7 @@ tag_t getProcessTag(tag_t mantr, char* groupName) { //通过引用关系查找到变更单 ITKCALL(WSOM_where_referenced(mantr, 1, &n_references, &levels, &references_tag, &relation_type_name)); for (int n = 0; n < n_references; n++) { - log("relation_type_name===>%s\n", relation_type_name[n]); + //log("relation_type_name===>%s\n", relation_type_name[n]); if (strcmp(relation_type_name[n], "IMAN_METarget") == 0) {//IMAN_METarget // char *os = NULL; @@ -753,7 +744,7 @@ void recurZYZZSAPYH(tag_t line, tag_t rev, vector& bomISExist, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist) { char* zt2_Diagram, *item_id, *object_name, *zt2_MaterialNo, *zt2_WBSNo; //"zt2_Diagram","item_id","object_name","zt2_MaterialNo","zt2_WBSNo" - ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram)); + //ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram)); ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id)); ITKCALL(AOM_ask_value_string(rev, "object_name", &object_name)); ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialNo", &zt2_MaterialNo)); @@ -814,10 +805,10 @@ void recurZYZZSAPYH(tag_t line, tag_t rev, vector& bomISExist, tag_t c_line_tag = c_line_tags[i], rev2; ITKCALL(AOM_ask_value_tag(c_line_tag, "bl_line_object", &rev2)); char* prop0, *prop1, *prop2, *prop3, *prop4, *zt2_unit2; - ITKCALL(AOM_ask_value_string(rev2, "zt2_Diagram", &prop0)); + //ITKCALL(AOM_ask_value_string(rev2, "zt2_Diagram", &prop0)); ITKCALL(AOM_ask_value_string(rev2, "item_id", &prop1)); ITKCALL(AOM_ask_value_string(rev2, "object_name", &prop2)); - ITKCALL(AOM_ask_value_string(rev2, "zt2_SapState", &prop3)); + //ITKCALL(AOM_ask_value_string(rev2, "zt2_SapState", &prop3)); ITKCALL(AOM_ask_value_string(rev2, "zt2_MaterialNo", &prop4)); tag_t part2; ITKCALL(ITEM_ask_item_of_rev(rev2, &part2)); @@ -1203,7 +1194,8 @@ void logCcbh(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> li msg.append("ZPSPID = ").append(getNotNullMsg(list_Factory.ZPSPID)).append(" "); msg.append("ZZD = ").append(getNotNullMsg(list_Factory.ZZD)).append("\n"); } - log(" 出厂编号信息:%s\n", msg.c_str()); + log(" 出厂编号信息:"); + log2(msg); } /** * 记录工艺路线信息日志 @@ -1403,7 +1395,7 @@ string getPlmTime(char *code) { */ void startSplitSend(char*groupId, map> mapList, - char *code, char *wbsNo, map> inCcpMap) { + char *code, char *wbsNo, map> inCcpMap, char* url) { int url_num = 0; char** url_vals = NULL; //首选项配置组对应的拆分方法 @@ -1476,7 +1468,7 @@ void startSplitSend(char*groupId, logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); } log(" start SEND ===\n"); - sendBom(list, batchMsg); + sendBom(list, batchMsg, url); batchNum = batchNum + 1; list.clear(); } @@ -1495,7 +1487,7 @@ void startSplitSend(char*groupId, //log("i.size() ===> %d \n", i); } log(" start SEND ==="); - sendBom(list, batchMsg); + sendBom(list, batchMsg, url); batchNum = batchNum + 1; list.clear(); } @@ -1522,7 +1514,7 @@ void startSplitSend(char*groupId, _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i]; logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); } - sendBom(list, batchMsg); + sendBom(list, batchMsg, url); batchNum = batchNum + 1; list.clear(); } @@ -1537,7 +1529,7 @@ void startSplitSend(char*groupId, _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST bomMsg = list[i]; logBatabase(bomMsg, ccpMap, inCcpMap, code, batchMsg, groupId, wbsNo, alterstatus); } - sendBom(list, batchMsg); + sendBom(list, batchMsg, url); batchNum = batchNum + 1; list.clear(); } @@ -1553,9 +1545,12 @@ void startSplitSend(char*groupId, ExecuteSQLNoInputParam(selectRxfs); ExecuteSQLNoInputParam((char*)"commit"); } -#define SEND_MSG "发起的 \\\"" -#define SPLIT_MSG "\\\" \\\"" -#define CODE_MSG "\\\" 项目已经处理完毕, 任务号: " +//#define SEND_MSG "发起的 \\\"" +//#define SPLIT_MSG "\\\" \\\"" +//#define CODE_MSG "\\\" 项目已经处理完毕, 任务号: " +#define SEND_MSG "发起的 \\\\\"\"" +#define SPLIT_MSG "\\\\\"\" \\\\\"\"" +#define CODE_MSG "\\\\\"\" 项目已经处理完毕, 任务号: " #define TYPE_MSG ", 传递类型: " #define RESULT_MSG ", 本次传递结果为: PLM检查未通过。具体原因:\\n" @@ -1567,7 +1562,7 @@ void startSplitSend(char*groupId, * @param userName 用户名称 * @param projectName 项目名称 */ -void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* projectName) { +void sendNotice(char *code, string errMsg, char *wbsNo, char *groupName, char *userName, char* projectName) { /*string noticeMsg = "项目BOM传递异常WBS:"; noticeMsg.append(wbsNo).append("\n").append(errMsg);*/ @@ -1587,8 +1582,8 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr startTime = outputValue1[num][1]; transfer = outputValue1[num][2]; } - string noticeMsg = "【PLM系统自动通知】:"; - noticeMsg.append(startTime).append(" ") + string noticeMsg = "【PLM系统自动通知】【"; + noticeMsg.append(groupName).append("】:").append(startTime).append(" ") .append(userName).append(SEND_MSG) .append(wbsNo).append(SPLIT_MSG) .append(projectName).append(CODE_MSG) @@ -1596,16 +1591,33 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr .append(errMsg); string json = "{"; - json.append("\"mobiles\":").append("[\"13588843438\",\"15295371103\"],"); - json.append("\"emails\":").append("["); - json.append("\"").append(userNameStr).append("\"],"); - json.append("\"sms\":").append("false,"); - json.append("\"content\":\"").append(noticeMsg).append("\""); + json.append("\"\"mobiles\"\":").append("[\"\"13588843438\"\",\"\"15295371103\"\"],"); + json.append("\"\"emails\"\":").append("["); + json.append("\"\"").append(userNameStr).append("\"\"],"); + json.append("\"\"sms\"\":").append("false,"); + json.append("\"\"content\"\":\"\"").append(noticeMsg).append("\"\""); json.append("}"); log(" 项目数据组织错误信息 :%s \n", json.c_str()); - string returnMsg = callFsHttpserver(json, "http://10.128.10.170/api/feishu/Message/sendMessages"); - log(" 飞书通知结果 :%s \n", returnMsg.c_str()); + //string returnMsg = callFsHttpserver(json, "http://10.128.10.170/api/feishu/Message/sendMessages"); + string cmd = "java -jar \""; + cmd.append(getenv("TC_ROOT")).append("\\bin\\uploadMinio.jar\" FS \"").append(json).append("\""); + log("cmd==>%s", cmd.c_str()); + FILE* pf = NULL; + string strResult; + char buf[8000] = { 0 }; + if ((pf = _popen(cmd.c_str(), "r")) == NULL) { + log("接口返回1\n"); + } + else { + log("接口返回2\n"); + while (fgets(buf, sizeof buf, pf)) { + strResult += buf; + } + _pclose(pf); + } + + log(" 飞书通知结果 :%s \n", strResult.c_str()); } /** @@ -1624,6 +1636,24 @@ void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* pr void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { log("************** getCcpAndBom **************"); + int pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + if (pref_cnt < 3) { + errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n"); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } //记录是否有重复的出厂编号 vector isCheck_FactoryNos; //记录产成品 对应的 电气BOM集合 @@ -1709,7 +1739,8 @@ void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, cha //传递出厂编号的记录日志信息 log("出厂编号数量 num :%zd\n", list_Factorys.size()); logCcbh(list_Factorys); - sendFactoryNo(list_Factorys); + + sendFactoryNo(list_Factorys, urls[0]); string errMess;//记录BOM错误信息 map material_revs; //记录需要修改属性的产成品 @@ -1743,7 +1774,7 @@ void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, cha ExecuteSQLNoInputParam((char*)"commit"); //错误数据已发送飞书提醒 - sendNotice(code, errMsgBuf, wbs, userName, projectName); + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); return; } @@ -1778,7 +1809,7 @@ void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, cha } if (proclist.size() > 0) { logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; - sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); + sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist); } } } @@ -1798,7 +1829,7 @@ void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, cha //传递BOM //logBomMsg(list); //sendBom(list, sendMsg); - startSplitSend(groupName, mapList, code, wbs, inCcpMap); + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); //sendBom(list); } else { diff --git a/DFL_BOM_WL_TOERP/BomSapWh.cxx b/DFL_BOM_WL_TOERP/BomSapWh.cxx index ea74e15..8b7bb6b 100644 --- a/DFL_BOM_WL_TOERP/BomSapWh.cxx +++ b/DFL_BOM_WL_TOERP/BomSapWh.cxx @@ -1,12 +1,22 @@ +#include "SendSap.h" #include "tinyxml/tinyxml.h" #include "CRUL_server_call_httpserver.h" -#include "SendSap.h" -void sendSAP(char* url, char* data) { + +vector lists2; + +// 自定义的写入回调函数 +size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp) { + ((std::ostream*)userp)->write((const char*)contents, size * nmemb); + return size * nmemb; +} +string sendSap(const char* url, const char* data) { + log("sendSap Url==>%s", url); CURL *curl; CURLcode res; curl = curl_easy_init(); + string result = ""; if (curl) { curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(curl, CURLOPT_URL, url); @@ -21,10 +31,924 @@ void sendSAP(char* url, char* data) { headers = curl_slist_append(headers, "Authorization: Basic c2hwbG06c2FwQDIwMTk=");//"shplm", "sap@2019" } curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, G2U(data)); + + ostringstream oss; + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &oss); + + res = curl_easy_perform(curl); + char ress[4]; + sprintf(ress, "%d", res); + result.append(ress).append("@@").append(oss.str()); + } + curl_easy_cleanup(curl); + curl = NULL; + string logmsg = "SAP result==>"; + log2(logmsg.append(result)); + + return result; +} +//sendJsonHttpPost +string sendMom(const char* url, const char* data) { + log("sendMom Url==>%s", url); + if (tc_strstr(url, "http") == NULL) { + return ""; + } + CURL *curl; + CURLcode res; + curl = curl_easy_init(); + string result = ""; + if (curl) { + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false); + curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); + 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/xml"); + if (tc_strstr(url, "10.128.11.12") != NULL) {// + headers = curl_slist_append(headers, "Authorization: Basic MTQyODI0Mjg2NDU2ODMwNzcxNDpkREF3TWpveE1EQXg=");//"po_rfc", "1qaz!QAZ" + } + else { + headers = curl_slist_append(headers, "Authorization: Basic MTcxNDkwNTkyNTc2MjUzNTQyNjpkREF3TWpveE1EQXg=");//"shplm", "sap@2019" + } + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); + + ostringstream oss; + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &oss); + res = curl_easy_perform(curl); + char ress[4]; + sprintf(ress, "%d", res); + result.append(ress).append("@@").append(U2G(oss.str().c_str())); } curl_easy_cleanup(curl); + curl = NULL; + string logmsg = "MOM result==>"; + log2(logmsg.append(result)); + + return result; +} + +string SendToSap(const char* data) { + int pref_cnt = 0; + char **prefs = NULL; + ITKCALL(PREF_ask_char_values("CHINT_WhBomUrl_YB", &pref_cnt, &prefs)); + string sapUrl = "", momUrl = ""; + for (int i = 0; i < pref_cnt; i++) { + string pref = prefs[i]; + string prefix = pref.substr(0, 6); + if (tc_strcmp(prefix.c_str(), "SAP:1=") == 0) { + sapUrl.append(pref.substr(6, pref.size() - 6)); + } + else if (tc_strcmp(prefix.c_str(), "MOM:1=") == 0) { + momUrl.append(pref.substr(6, pref.size() - 6)); + } + } + string errBuff = ""; + vector sapVec; + Split(sendSap(sapUrl.c_str(), data), "@@", sapVec); + if (tc_strcmp(sapVec[0].c_str(), "0") != 0) { + errBuff.append("推送SAP异常:").append(sapVec[1]).append("\\n"); + } + + vector momVec; + Split(sendMom(momUrl.c_str(), data), "@@", momVec); + if (tc_strcmp(momVec[0].c_str(), "0") != 0) { + errBuff.append("推送MOM异常:").append(momVec[1]).append("\\n"); + } + return errBuff; +} + +TiXmlElement* addElement(TiXmlElement *PARENT, const char* name, const char* val) { + TiXmlElement *CHILD = new TiXmlElement(name); + PARENT->LinkEndChild(CHILD); + if (tc_strlen(val) > 0) { + TiXmlText *materialText = new TiXmlText(val); + CHILD->LinkEndChild(materialText); + } + + return CHILD; +} + +void readGXFlow(tag_t gxLine, vector& flowBeans, FlowBean& currentFlow) { + int sucCnt = 0, preCnt = 0; + tag_t *sucs = NULL, *pres = NULL; + ITKCALL(AOM_ask_value_tags(gxLine, "Mfg0successors", &sucCnt, &sucs)); + ITKCALL(AOM_ask_value_tags(gxLine, "Mfg0predecessors", &preCnt, &pres)); + currentFlow.flowList.push_back(gxLine); + if (preCnt > 1) { + currentFlow.flow_combine_list.push_back(gxLine); + if (currentFlow.flow_combine == NULLTAG) { + currentFlow.flow_combine = gxLine; + } + } + if (sucCnt == 0) { + return; + } + for (int i = 1; i < sucCnt; i++) { + FlowBean newFlow = getClone(currentFlow); + newFlow.flow_split = gxLine; + flowBeans.push_back(newFlow); + readGXFlow(sucs[i], flowBeans, newFlow); + } + readGXFlow(sucs[0], flowBeans, currentFlow); +} + +//SAPUtil.getFlowStarts +vector getFlowStarts(int c_line_count, tag_t *c_line_tags) { + vector startLines; + for (int i = 0; i < c_line_count; i++) { + int sucCnt = 0, preCnt = 0; + tag_t *sucs = NULL, *pres = NULL; + ITKCALL(AOM_ask_value_tags(c_line_tags[i], "Mfg0successors", &sucCnt, &sucs)); + ITKCALL(AOM_ask_value_tags(c_line_tags[i], "Mfg0predecessors", &preCnt, &pres)); + if (preCnt == 0 && sucCnt > 0) { + startLines.push_back(c_line_tags[i]); + } + } + return startLines; +} +// 读取质量检验项 +void getZljyxInfo2(TiXmlElement* OPCHECKCONTENTS, tag_t gxRev) { + int count = 0; + tag_t *checks = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "ZT2_QualityCheckRelation", &count, &checks)); + if (count > 0) { + char *item_id = NULL, *item_revision_id = NULL, *object_name = NULL; + ITKCALL(AOM_ask_value_string(gxRev, "item_id", &item_id)); + ITKCALL(AOM_UIF_ask_value(gxRev, "item_revision_id", &item_revision_id)); + ITKCALL(AOM_UIF_ask_value(gxRev, "object_name", &object_name)); + string kjjdId = ""; + kjjdId.append(item_id).append("/").append(item_revision_id); + addElement(OPCHECKCONTENTS, "PARENTTCID", kjjdId.c_str()); + addElement(OPCHECKCONTENTS, "PARENTNAME", object_name); + addElement(OPCHECKCONTENTS, "OTHER1", "OTHER1"); + addElement(OPCHECKCONTENTS, "OTHER2", "OTHER2"); + + TiXmlElement *OPCHECKSONLIST = addElement(OPCHECKCONTENTS, "OPCHECKSONLIST", ""); + tag_t quantityRev = NULLTAG; + ITKCALL(ITEM_ask_latest_rev(checks[0], &quantityRev)); + count = 0; + tag_t *zt2_QChecks = NULL; + ITKCALL(AOM_ask_value_tags(quantityRev, "zt2_QCHECKS", &count, &zt2_QChecks)); + vector props; + props.push_back("zt2_code"); + props.push_back("zt2_jjxbh"); + props.push_back("zt2_jyxmc"); + props.push_back("zt2_jyxsjjg"); + props.push_back("zt2_bzgcsxbh"); + props.push_back("zt2_bzgcsx"); + props.push_back("zt2_bzgcxxbh"); + props.push_back("zt2_bzgczxx"); + vector beans; + map> map; + for (int d = 0; d < count; d++) { + vector values; + for (int i = 0; i < props.size(); i++) { + char *val = NULL; + ITKCALL(AOM_UIF_ask_value(zt2_QChecks[d], props[i], &val)); + values.push_back(val); + } + beans.push_back(values[0]); + map[values[0]] = values; + } + sort(beans.begin(), beans.end()); + + for (int d = 0; d < beans.size(); d++) { + TiXmlElement *OPCHECKSONCONTENTS = addElement(OPCHECKSONLIST, "OPCHECKSONCONTENTS", ""); + addElement(OPCHECKSONCONTENTS, "SEQID", map[beans[d]][0].c_str()); + addElement(OPCHECKSONCONTENTS, "TCID", map[beans[d]][1].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKNR1", map[beans[d]][2].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKVALUE1", map[beans[d]][3].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKNR2", map[beans[d]][4].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKVALUE2", map[beans[d]][5].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKNR3", map[beans[d]][6].c_str()); + addElement(OPCHECKSONCONTENTS, "OPCHECKVALUE3", map[beans[d]][7].c_str()); + addElement(OPCHECKSONCONTENTS, "REMARK", ""); + } + } +} +// 读取二级工序 并行工序无后续 +void getGXInfo2Comb(FlowBean bean, int index, tag_t partRev, char* p_uom, char* now, + TiXmlElement* OPLIST, TiXmlElement* SONLIST, int valueOf, tag_t gxLine) { + + char plnfl[16]; + sprintf(plnfl, "%06d", index); + string bezfl = ""; + string flagt = ""; + string vornr1 = ""; + string vornr2 = ""; + if (!bean.isMain) {// 并行 + bezfl = (bean.BEZFL); + flagt = "1";// 顺序类别 + if (bean.flow_split != NULLTAG) + vornr1 = getGXNR(bean.flow_split);// 前驱 + if (bean.isOther) + bean.flow_split = NULLTAG; + if (bean.flow_combine != NULLTAG) + vornr2 = getGXNR(bean.flow_combine);// 后置 + } + else {// 非并行 + flagt = "0";// 顺序类别 + } + TiXmlElement *OPHEAD = addElement(OPLIST, "OPHEAD", ""); + addElement(OPHEAD, "PLNAL", "1"); + addElement(OPHEAD, "PLNFL", plnfl); + addElement(OPHEAD, "DATUV", now); + addElement(OPHEAD, "FLGAT", flagt.c_str()); + addElement(OPHEAD, "LTXA1", ""); + addElement(OPHEAD, "BEZFL", bezfl.c_str()); + addElement(OPHEAD, "VORNR1", vornr1.c_str()); + addElement(OPHEAD, "VORNR2", vornr2.c_str()); + + tag_t gxRev = NULLTAG; + ITKCALL(AOM_ask_value_tag(gxLine, "bl_line_object", &gxRev)); + char *item_id = NULL, *item_revision_id = NULL, *zt2_WorkCenter = NULL, *object_name = NULL, *zt2_ClassificationCode = NULL; + ITKCALL(AOM_ask_value_string(gxRev, "item_id", &item_id)); + ITKCALL(AOM_UIF_ask_value(gxRev, "item_revision_id", &item_revision_id)); + ITKCALL(AOM_ask_value_string(gxRev, "zt2_WorkCenter", &zt2_WorkCenter)); + ITKCALL(AOM_UIF_ask_value(gxRev, "object_name", &object_name)); + ITKCALL(AOM_UIF_ask_value(gxRev, "zt2_ClassificationCode", &zt2_ClassificationCode)); + char *bl_ZT2_FirstOPRevision_zt2_ControlCode = NULL, *bl_ZT2_FirstOPRevision_zt2_ArtificialTime = NULL, + *bl_ZT2_FirstOPRevision_zt2_MachineTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ReadinessTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ProCycle = NULL; + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ControlCode", &bl_ZT2_FirstOPRevision_zt2_ControlCode)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ArtificialTime", &bl_ZT2_FirstOPRevision_zt2_ArtificialTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_MachineTime", &bl_ZT2_FirstOPRevision_zt2_MachineTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ReadinessTime", &bl_ZT2_FirstOPRevision_zt2_ReadinessTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ProCycle", &bl_ZT2_FirstOPRevision_zt2_ProCycle)); + string kjjdId = ""; + kjjdId.append(item_id).append("/").append(item_revision_id); + + TiXmlElement *OPCONTENTS = addElement(OPHEAD, "OPCONTENTS", ""); + addElement(OPCONTENTS, "OPTCID", kjjdId.c_str()); + addElement(OPCONTENTS, "OPNAME", object_name); + addElement(OPCONTENTS, "OPTYPE", ""); + addElement(OPCONTENTS, "VORNR", getGXNR(gxLine)); + addElement(OPCONTENTS, "ARBPL", zt2_WorkCenter); + addElement(OPCONTENTS, "STEUS", bl_ZT2_FirstOPRevision_zt2_ControlCode); + addElement(OPCONTENTS, "LTXA1", object_name); + addElement(OPCONTENTS, "USR00", zt2_ClassificationCode); + addElement(OPCONTENTS, "BMSCH", "1"); + addElement(OPCONTENTS, "PLNME", p_uom); + addElement(OPCONTENTS, "VGW01", bl_ZT2_FirstOPRevision_zt2_ArtificialTime); + addElement(OPCONTENTS, "VGE01", "MIN"); + addElement(OPCONTENTS, "VGW02", bl_ZT2_FirstOPRevision_zt2_MachineTime); + addElement(OPCONTENTS, "VGE02", "MIN"); + addElement(OPCONTENTS, "VGW05", bl_ZT2_FirstOPRevision_zt2_ReadinessTime); + addElement(OPCONTENTS, "VGE05", "MIN"); + addElement(OPCONTENTS, "PROCYCLE", bl_ZT2_FirstOPRevision_zt2_ProCycle); + addElement(OPCONTENTS, "PROCYCLEUNIT", "MIN"); + addElement(OPCONTENTS, "OTHER1", ""); + addElement(OPCONTENTS, "OTHER2", ""); + + TiXmlElement *OPMATERCONTENTS = addElement(OPCONTENTS, "OPMATERCONTENTS", ""); + tag_t *c_line_tags = NULL; + int c_line_count = 0; + ITKCALL(BOM_line_ask_all_child_lines(gxLine, &c_line_count, &c_line_tags)); + for (int i = 0; i < c_line_count; i++) { + tag_t subRev = NULLTAG; + ITKCALL(AOM_ask_value_tag(c_line_tags[i], "bl_line_object", &subRev)); + char *zt2_MaterialNo = NULL, *bl_quantity = NULL, *remark = NULL; + ITKCALL(AOM_UIF_ask_value(subRev, "zt2_MaterialNo", &zt2_MaterialNo)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_quantity", &bl_quantity)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_occ_type", &remark)); + + TiXmlElement *OPMATER = addElement(OPMATERCONTENTS, "OPMATER", ""); + addElement(OPMATER, "WLBM", zt2_MaterialNo); + addElement(OPMATER, "QUE", bl_quantity); + + if (tc_strcmp(remark, "ZT2_FuLiao") == 0 || tc_strcmp(remark, "辅料") == 0) { + addElement(OPMATER, "OPTPYE", "2"); + char *item_id2 = NULL, *item_revision_id2 = NULL, *zt2_unit = NULL, *ZT2_Remark = NULL; + ITKCALL(AOM_UIF_ask_value(subRev, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(subRev, "item_revision_id", &item_revision_id2)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "ZT2_Remark", &ZT2_Remark)); + string tcId = "", errMsg = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + tag_t item = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(subRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + char* uom = getUnti(zt2_unit); + char *zysapmenge = NULL; + zysapmenge = (char*)MEM_alloc((16 + 1) * sizeof(char)); + tc_strcpy(zysapmenge, getZYSAPMENGE(subRev, NULLTAG, c_line_tags[i], false, "1", errMsg)); + char valof[16]; + sprintf(valof, "%d", valueOf); + + TiXmlElement *SONCONTENTS = addElement(SONLIST, "SONCONTENTS", ""); + addElement(SONCONTENTS, "TCID", tcId.c_str()); + addElement(SONCONTENTS, "WLBM", zt2_MaterialNo); + addElement(SONCONTENTS, "DATUV", now); + addElement(SONCONTENTS, "QUE", zysapmenge); + addElement(SONCONTENTS, "QUIT", uom); + addElement(SONCONTENTS, "SORTF", ""); + addElement(SONCONTENTS, "SEQID", valof); + addElement(SONCONTENTS, "POSTP", "L"); + addElement(SONCONTENTS, "REMARK", ZT2_Remark); + addElement(SONCONTENTS, "OTHER1", ""); + addElement(SONCONTENTS, "OTHER2", ""); + } + else { + addElement(OPMATER, "OPTPYE", "1"); + } + } + TiXmlElement *OPFILELIST = addElement(OPCONTENTS, "OPFILELIST", ""); + int datasetCnt = 0; + tag_t *datasets = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "IMAN_specification", &datasetCnt, &datasets)); + for (int d = 0; d < datasetCnt; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets[d], &fileUid); + TiXmlElement *FILECONTENTS = addElement(OPFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", item_id); + addElement(FILECONTENTS, "FILENAME", fileName); + addElement(FILECONTENTS, "FILETYPE", "文件"); + addElement(FILECONTENTS, "FILECODE", item_id); + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + TiXmlElement *OPGYSZFILELIST = addElement(OPCONTENTS, "OPGYSZFILELIST", ""); + int ruleCnt = 0; + tag_t *rules = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "ZT2_ProcessRuleRelation", &ruleCnt, &rules)); + if (ruleCnt > 0) { + tag_t processRuleRevision = NULLTAG; + ITKCALL(ITEM_ask_latest_rev(rules[0], &processRuleRevision)); + int datasetCnt2 = 0; + tag_t *datasets2 = NULL; + ITKCALL(AOM_ask_value_tags(processRuleRevision, "IMAN_specification", &datasetCnt2, &datasets2)); + for (int d = 0; d < datasetCnt2; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets2[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets2[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets2[d], &fileUid); + char *item_id2 = NULL, *item_revision_id2 = NULL; + ITKCALL(AOM_UIF_ask_value(processRuleRevision, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(processRuleRevision, "item_revision_id", &item_revision_id2)); + string tcId = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + + TiXmlElement *FILECONTENTS = addElement(OPGYSZFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", tcId.c_str()); + addElement(FILECONTENTS, "FILENAME", fileName); + if (tc_strstr(type, "PDF") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "pdf"); + } + else if (tc_strstr(type, "Word") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "docx"); + } + else { + addElement(FILECONTENTS, "FILETYPE", "xlsx"); + } + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "FILECODE", item_id); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + } + TiXmlElement *OPGXZYZDSFILELIST = addElement(OPCONTENTS, "OPGXZYZDSFILELIST", ""); + ruleCnt = 0; + tag_t *books = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "ZT2_ProcGuidBookRelation", &ruleCnt, &books)); + if (ruleCnt > 0) { + tag_t procGuidBookRevision = NULLTAG; + ITKCALL(ITEM_ask_latest_rev(books[0], &procGuidBookRevision)); + int datasetCnt2 = 0; + tag_t *datasets2 = NULL; + ITKCALL(AOM_ask_value_tags(procGuidBookRevision, "IMAN_specification", &datasetCnt2, &datasets2)); + for (int d = 0; d < datasetCnt2; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets2[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets2[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets2[d], &fileUid); + char *item_id2 = NULL, *item_revision_id2 = NULL; + ITKCALL(AOM_UIF_ask_value(procGuidBookRevision, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(procGuidBookRevision, "item_revision_id", &item_revision_id2)); + string tcId = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + + TiXmlElement *FILECONTENTS = addElement(OPGXZYZDSFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", tcId.c_str()); + addElement(FILECONTENTS, "FILENAME", fileName); + if (tc_strstr(type, "PDF") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "pdf"); + } + else if (tc_strstr(type, "Word") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "docx"); + } + else { + addElement(FILECONTENTS, "FILETYPE", "xlsx"); + } + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + } + TiXmlElement *OPCHECKCONTENTS = addElement(OPCONTENTS, "OPCHECKCONTENTS", ""); + getZljyxInfo2(OPCHECKCONTENTS, gxRev); +} + +// 读取二级工序 +void getGXInfo2(FlowBean bean, int index, tag_t partRev, char* p_uom, char* now, + TiXmlElement* OPLIST, TiXmlElement* SONLIST, int valueOf) { + + char plnfl[16]; + sprintf(plnfl, "%06d", index); + string bezfl = ""; + string flagt = ""; + string vornr1 = ""; + string vornr2 = ""; + boolean bx = false; + if (!bean.isMain) {// 并行 + bx = true; + bezfl = (bean.BEZFL); + flagt = "1";// 顺序类别 + if (bean.flow_split != NULLTAG) + vornr1 = getGXNR(bean.flow_split);// 前驱 + if (bean.isOther) + bean.flow_split = NULLTAG; + if (bean.flow_combine != NULLTAG) + vornr2 = getGXNR(bean.flow_combine);// 后置 + } + else {// 非并行 + flagt = "0";// 顺序类别 + } + TiXmlElement *OPHEAD = addElement(OPLIST, "OPHEAD", ""); + addElement(OPHEAD, "PLNAL", "1"); + addElement(OPHEAD, "PLNFL", plnfl); + addElement(OPHEAD, "DATUV", now); + addElement(OPHEAD, "FLGAT", flagt.c_str()); + addElement(OPHEAD, "LTXA1", ""); + addElement(OPHEAD, "BEZFL", bezfl.c_str()); + addElement(OPHEAD, "VORNR1", vornr1.c_str()); + addElement(OPHEAD, "VORNR2", vornr2.c_str()); + boolean inBx = (bean.flow_split == NULLTAG); + char *flow_combine = NULL; + ITK__convert_tag_to_uid(bean.flow_combine, &flow_combine); + int cnt = bean.flowList.size(); + for (int i = 0; i < cnt; i++) { + tag_t gxLine = bean.flowList[i]; + char *uid = NULL; + ITK__convert_tag_to_uid(gxLine, &uid); + if (bx) { + if (tc_strcmp(uid, flow_combine) == 0) { + break; + } + if (inBx) { + if (gxLine == NULLTAG) { + inBx = true; + continue; + } + } + else { + char *flow_split = NULL; + ITK__convert_tag_to_uid(bean.flow_split, &flow_split); + if (tc_strcmp(uid, flow_split) == 0) { + inBx = true; + } + continue; + } + } + tag_t gxRev = NULLTAG; + ITKCALL(AOM_ask_value_tag(gxLine, "bl_line_object", &gxRev)); + char *item_id = NULL, *item_revision_id = NULL, *zt2_WorkCenter = NULL, *object_name = NULL, *zt2_ClassificationCode = NULL; + ITKCALL(AOM_ask_value_string(gxRev, "item_id", &item_id)); + ITKCALL(AOM_UIF_ask_value(gxRev, "item_revision_id", &item_revision_id)); + ITKCALL(AOM_ask_value_string(gxRev, "zt2_WorkCenter", &zt2_WorkCenter)); + ITKCALL(AOM_UIF_ask_value(gxRev, "object_name", &object_name)); + ITKCALL(AOM_UIF_ask_value(gxRev, "zt2_ClassificationCode", &zt2_ClassificationCode)); + char *bl_ZT2_FirstOPRevision_zt2_ControlCode = NULL, *bl_ZT2_FirstOPRevision_zt2_ArtificialTime = NULL, + *bl_ZT2_FirstOPRevision_zt2_MachineTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ReadinessTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ProCycle = NULL; + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ControlCode", &bl_ZT2_FirstOPRevision_zt2_ControlCode)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ArtificialTime", &bl_ZT2_FirstOPRevision_zt2_ArtificialTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_MachineTime", &bl_ZT2_FirstOPRevision_zt2_MachineTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ReadinessTime", &bl_ZT2_FirstOPRevision_zt2_ReadinessTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ProCycle", &bl_ZT2_FirstOPRevision_zt2_ProCycle)); + string kjjdId = ""; + kjjdId.append(item_id).append("/").append(item_revision_id); + + TiXmlElement *OPCONTENTS = addElement(OPHEAD, "OPCONTENTS", ""); + addElement(OPCONTENTS, "OPTCID", kjjdId.c_str()); + addElement(OPCONTENTS, "OPNAME", object_name); + addElement(OPCONTENTS, "OPTYPE", ""); + addElement(OPCONTENTS, "VORNR", getGXNR(gxLine)); + addElement(OPCONTENTS, "ARBPL", zt2_WorkCenter); + addElement(OPCONTENTS, "STEUS", bl_ZT2_FirstOPRevision_zt2_ControlCode); + addElement(OPCONTENTS, "LTXA1", object_name); + addElement(OPCONTENTS, "USR00", zt2_ClassificationCode); + addElement(OPCONTENTS, "BMSCH", "1"); + addElement(OPCONTENTS, "PLNME", p_uom); + addElement(OPCONTENTS, "VGW01", bl_ZT2_FirstOPRevision_zt2_ArtificialTime); + addElement(OPCONTENTS, "VGE01", "MIN"); + addElement(OPCONTENTS, "VGW02", bl_ZT2_FirstOPRevision_zt2_MachineTime); + addElement(OPCONTENTS, "VGE02", "MIN"); + addElement(OPCONTENTS, "VGW05", bl_ZT2_FirstOPRevision_zt2_ReadinessTime); + addElement(OPCONTENTS, "VGE05", "MIN"); + addElement(OPCONTENTS, "PROCYCLE", bl_ZT2_FirstOPRevision_zt2_ProCycle); + addElement(OPCONTENTS, "PROCYCLEUNIT", "MIN"); + addElement(OPCONTENTS, "OTHER1", ""); + addElement(OPCONTENTS, "OTHER2", ""); + + TiXmlElement *OPMATERCONTENTS = addElement(OPCONTENTS, "OPMATERCONTENTS", ""); + tag_t *c_line_tags = NULL; + int c_line_count = 0; + ITKCALL(BOM_line_ask_all_child_lines(gxLine, &c_line_count, &c_line_tags)); + for (int i = 0; i < c_line_count; i++) { + tag_t subRev = NULLTAG; + ITKCALL(AOM_ask_value_tag(c_line_tags[i], "bl_line_object", &subRev)); + char *zt2_MaterialNo = NULL, *bl_quantity = NULL, *remark = NULL; + ITKCALL(AOM_UIF_ask_value(subRev, "zt2_MaterialNo", &zt2_MaterialNo)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_quantity", &bl_quantity)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_occ_type", &remark)); + + TiXmlElement *OPMATER = addElement(OPMATERCONTENTS, "OPMATER", ""); + addElement(OPMATER, "WLBM", zt2_MaterialNo); + addElement(OPMATER, "QUE", bl_quantity); + + if (tc_strcmp(remark, "ZT2_FuLiao") == 0 || tc_strcmp(remark, "辅料") == 0) { + addElement(OPMATER, "OPTPYE", "2"); + char *item_id2 = NULL, *item_revision_id2 = NULL, *zt2_unit = NULL, *ZT2_Remark = NULL; + ITKCALL(AOM_UIF_ask_value(subRev, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(subRev, "item_revision_id", &item_revision_id2)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "ZT2_Remark", &ZT2_Remark)); + string tcId = "", errMsg = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + tag_t item = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(subRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + char* uom = getUnti(zt2_unit); + char *zysapmenge = NULL; + zysapmenge = (char*)MEM_alloc((16 + 1) * sizeof(char)); + tc_strcpy(zysapmenge, getZYSAPMENGE(subRev, NULLTAG, c_line_tags[i], false, "1", errMsg)); + char valof[16]; + sprintf(valof, "%d", valueOf); + + TiXmlElement *SONCONTENTS = addElement(SONLIST, "SONCONTENTS", ""); + addElement(SONCONTENTS, "TCID", tcId.c_str()); + addElement(SONCONTENTS, "WLBM", zt2_MaterialNo); + addElement(SONCONTENTS, "DATUV", now); + addElement(SONCONTENTS, "QUE", zysapmenge); + addElement(SONCONTENTS, "QUIT", uom); + addElement(SONCONTENTS, "SORTF", ""); + addElement(SONCONTENTS, "SEQID", valof); + addElement(SONCONTENTS, "POSTP", "L"); + addElement(SONCONTENTS, "REMARK", ZT2_Remark); + addElement(SONCONTENTS, "OTHER1", ""); + addElement(SONCONTENTS, "OTHER2", ""); + } + else { + addElement(OPMATER, "OPTPYE", "1"); + } + } + TiXmlElement *OPFILELIST = addElement(OPCONTENTS, "OPFILELIST", ""); + int datasetCnt = 0; + tag_t *datasets = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "IMAN_specification", &datasetCnt, &datasets)); + for (int d = 0; d < datasetCnt; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets[d], &fileUid); + TiXmlElement *FILECONTENTS = addElement(OPFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", item_id); + addElement(FILECONTENTS, "FILENAME", fileName); + addElement(FILECONTENTS, "FILETYPE", "文件"); + addElement(FILECONTENTS, "FILECODE", item_id); + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + TiXmlElement *OPGYSZFILELIST = addElement(OPCONTENTS, "OPGYSZFILELIST", ""); + int ruleCnt = 0; + tag_t *rules = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "ZT2_ProcessRuleRelation", &ruleCnt, &rules)); + if (ruleCnt > 0) { + tag_t processRuleRevision = NULLTAG; + ITKCALL(ITEM_ask_latest_rev(rules[0], &processRuleRevision)); + int datasetCnt2 = 0; + tag_t *datasets2 = NULL; + ITKCALL(AOM_ask_value_tags(processRuleRevision, "IMAN_specification", &datasetCnt2, &datasets2)); + for (int d = 0; d < datasetCnt2; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets2[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets2[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets2[d], &fileUid); + char *item_id2 = NULL, *item_revision_id2 = NULL; + ITKCALL(AOM_UIF_ask_value(processRuleRevision, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(processRuleRevision, "item_revision_id", &item_revision_id2)); + string tcId = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + + TiXmlElement *FILECONTENTS = addElement(OPGYSZFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", tcId.c_str()); + addElement(FILECONTENTS, "FILENAME", fileName); + if (tc_strstr(type, "PDF") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "pdf"); + } + else if (tc_strstr(type, "Word") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "docx"); + } + else { + addElement(FILECONTENTS, "FILETYPE", "xlsx"); + } + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "FILECODE", item_id); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + } + TiXmlElement *OPGXZYZDSFILELIST = addElement(OPCONTENTS, "OPGXZYZDSFILELIST", ""); + ruleCnt = 0; + tag_t *books = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "ZT2_ProcGuidBookRelation", &ruleCnt, &books)); + if (ruleCnt > 0) { + tag_t procGuidBookRevision = NULLTAG; + ITKCALL(ITEM_ask_latest_rev(books[0], &procGuidBookRevision)); + int datasetCnt2 = 0; + tag_t *datasets2 = NULL; + ITKCALL(AOM_ask_value_tags(procGuidBookRevision, "IMAN_specification", &datasetCnt2, &datasets2)); + for (int d = 0; d < datasetCnt2; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets2[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets2[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets2[d], &fileUid); + char *item_id2 = NULL, *item_revision_id2 = NULL; + ITKCALL(AOM_UIF_ask_value(procGuidBookRevision, "item_id", &item_id2)); + ITKCALL(AOM_UIF_ask_value(procGuidBookRevision, "item_revision_id", &item_revision_id2)); + string tcId = ""; + tcId.append(item_id2).append("/").append(item_revision_id2); + + TiXmlElement *FILECONTENTS = addElement(OPGXZYZDSFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", tcId.c_str()); + addElement(FILECONTENTS, "FILENAME", fileName); + if (tc_strstr(type, "PDF") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "pdf"); + } + else if (tc_strstr(type, "Word") != NULL) { + addElement(FILECONTENTS, "FILETYPE", "docx"); + } + else { + addElement(FILECONTENTS, "FILETYPE", "xlsx"); + } + addElement(FILECONTENTS, "FILEUID", fileUid); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + } + TiXmlElement *OPCHECKCONTENTS = addElement(OPCONTENTS, "OPCHECKCONTENTS", ""); + getZljyxInfo2(OPCHECKCONTENTS, gxRev); + } +} + +void readTowGx(tag_t line, tag_t partRev, char* now, TiXmlElement* OPLIST, TiXmlElement* SONLIST, int valueOf) { + tag_t item = NULLTAG, *c_line_tags = NULL; + int c_line_count = 0; + ITKCALL(BOM_line_ask_all_child_lines(line, &c_line_count, &c_line_tags)); + vector startLines = getFlowStarts(c_line_count, c_line_tags); + if (startLines.size() > 0) { + log("找到工序流起始点2:%d", startLines.size()); + } + char *zt2_unit = NULL; + ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + char* p_uom = getUnti(zt2_unit); + vector flowBeans; + for (int i = 0; i < startLines.size(); i++) { + FlowBean currentFlow; + currentFlow.isMain = (i == 0); + flowBeans.push_back(currentFlow); + readGXFlow(startLines[i], flowBeans, currentFlow); + } + boolean flagBx = false; + // 打印流信息 + if (flowBeans.size() > 0) { + log("---已加载PERT数据2---"); + for (FlowBean b : flowBeans) { + //b.print(); + } + } + else { + // 无PERT数据 + log("无PERT数据2"); + FlowBean bean; + bean.isMain = true; + flagBx = true; + for (int j = 0; j < c_line_count; j++) { + bean.flowList.push_back(c_line_tags[j]); + } + //bean.print(); + flowBeans.push_back(bean); + } + // 排序 + getSort(flowBeans); + + int ind = 0; + for (int i = 0; i < flowBeans.size(); i++) { + FlowBean bean = flowBeans[i]; + if (bean.flow_combine == NULLTAG && flagBx) { + for (int t = 0; t < bean.flowList.size(); t++) { + getGXInfo2Comb(bean, ind, partRev, p_uom, now, OPLIST, SONLIST, valueOf, bean.flowList[t]); + ind ++; + } + } + else { + getGXInfo2(bean, ind, partRev, p_uom, now, OPLIST, SONLIST, valueOf); + ind++; + } + } +} + +// 读取一级工序 +void getGXInfo(FlowBean bean, int index, tag_t partRev, char* p_uom, char* now, + tag_t line, TiXmlElement* KJJDLIST, TiXmlElement* SONLIST, int valueOf) { + string vornr1 = ""; + string vornr2 = ""; + boolean bx = false; + string flagt = ""; + string bezfl = "";// 参考顺序 + if (!bean.isMain) {// 并行 + bezfl = (bean.BEZFL); + bx = true; + flagt = "1";// 顺序类别 + if (bean.flow_split != NULLTAG) { + vornr1 = getGXNR(bean.flow_split);// 前驱 + } + if (bean.isOther) + bean.flow_split = NULLTAG; + if (bean.flow_combine != NULLTAG) { + vornr2 = getGXNR(bean.flow_combine);// 后置 + } + } + else {// 非并行 + flagt = "0";// 顺序类别 + } + char plnfl[16]; + sprintf(plnfl, "%06d", index); + TiXmlElement *KJJDHEAD = addElement(KJJDLIST, "KJJDHEAD", ""); + addElement(KJJDHEAD, "PLNAL", "1"); + addElement(KJJDHEAD, "PLNFL", plnfl); + addElement(KJJDHEAD, "DATUV", now); + addElement(KJJDHEAD, "FLGAT", flagt.c_str()); + addElement(KJJDHEAD, "LTXA1", ""); + addElement(KJJDHEAD, "BEZFL", bezfl.c_str()); + addElement(KJJDHEAD, "VORNR1", vornr1.c_str()); + addElement(KJJDHEAD, "VORNR2", vornr2.c_str()); + boolean inBx = (bean.flow_split == NULLTAG); + char *flow_combine = NULL; + ITK__convert_tag_to_uid(bean.flow_combine, &flow_combine); + int cnt = bean.flowList.size(); + for (int i = 0; i < cnt; i++) { + tag_t gxLine = bean.flowList[i]; + char *uid = NULL; + ITK__convert_tag_to_uid(gxLine, &uid); + if (bx) { + if (tc_strcmp(uid, flow_combine) == 0) { + break; + } + if (inBx) { + if (gxLine == NULLTAG) { + inBx = true; + continue; + } + } + else { + char *flow_split = NULL; + ITK__convert_tag_to_uid(bean.flow_split, &flow_split); + if (tc_strcmp(uid, flow_split) == 0) { + inBx = true; + } + continue; + } + } + tag_t gxRev = NULLTAG; + ITKCALL(AOM_ask_value_tag(gxLine, "bl_line_object", &gxRev)); + char *item_id = NULL, *item_revision_id = NULL, *zt2_WorkCenter = NULL, *object_name = NULL, *zt2_ClassificationCode = NULL; + ITKCALL(AOM_ask_value_string(gxRev, "item_id", &item_id)); + ITKCALL(AOM_UIF_ask_value(gxRev, "item_revision_id", &item_revision_id)); + ITKCALL(AOM_ask_value_string(gxRev, "zt2_WorkCenter", &zt2_WorkCenter)); + ITKCALL(AOM_UIF_ask_value(gxRev, "object_name", &object_name)); + ITKCALL(AOM_UIF_ask_value(gxRev, "zt2_ClassificationCode", &zt2_ClassificationCode)); + char *bl_ZT2_FirstOPRevision_zt2_ControlCode = NULL, *bl_ZT2_FirstOPRevision_zt2_ArtificialTime = NULL, + *bl_ZT2_FirstOPRevision_zt2_MachineTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ReadinessTime = NULL, *bl_ZT2_FirstOPRevision_zt2_ProCycle = NULL; + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ControlCode", &bl_ZT2_FirstOPRevision_zt2_ControlCode)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ArtificialTime", &bl_ZT2_FirstOPRevision_zt2_ArtificialTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_MachineTime", &bl_ZT2_FirstOPRevision_zt2_MachineTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ReadinessTime", &bl_ZT2_FirstOPRevision_zt2_ReadinessTime)); + ITKCALL(AOM_UIF_ask_value(gxLine, "bl_ZT2_FirstOPRevision_zt2_ProCycle", &bl_ZT2_FirstOPRevision_zt2_ProCycle)); + string kjjdId = ""; + kjjdId.append(item_id).append("/").append(item_revision_id); + + TiXmlElement *KJJDCONTENTS = addElement(KJJDHEAD, "KJJDCONTENTS", ""); + addElement(KJJDCONTENTS, "KJJDID", kjjdId.c_str()); + addElement(KJJDCONTENTS, "KJJDTYPE", "1"); + addElement(KJJDCONTENTS, "VORNR", getGXNR(gxLine)); + addElement(KJJDCONTENTS, "ARBPL", zt2_WorkCenter); + addElement(KJJDCONTENTS, "STEUS", bl_ZT2_FirstOPRevision_zt2_ControlCode); + addElement(KJJDCONTENTS, "LTXA1", object_name); + addElement(KJJDCONTENTS, "USR00", zt2_ClassificationCode); + addElement(KJJDCONTENTS, "BMSCH", "1"); + addElement(KJJDCONTENTS, "PLNME", p_uom); + addElement(KJJDCONTENTS, "VGW01", bl_ZT2_FirstOPRevision_zt2_ArtificialTime); + addElement(KJJDCONTENTS, "VGE01", "MIN"); + addElement(KJJDCONTENTS, "VGW02", bl_ZT2_FirstOPRevision_zt2_MachineTime); + addElement(KJJDCONTENTS, "VGE02", "MIN"); + addElement(KJJDCONTENTS, "VGW05", bl_ZT2_FirstOPRevision_zt2_ReadinessTime); + addElement(KJJDCONTENTS, "VGE05", "MIN"); + addElement(KJJDCONTENTS, "PROCYCLE", bl_ZT2_FirstOPRevision_zt2_ProCycle); + addElement(KJJDCONTENTS, "PROCYCLEUNIT", "MIN"); + addElement(KJJDCONTENTS, "OTHER1", "MIN"); + addElement(KJJDCONTENTS, "OTHER2", "MIN"); + TiXmlElement *KJJDFILELIST = addElement(KJJDCONTENTS, "KJJDFILELIST", ""); + int datasetCnt = 0; + tag_t *datasets = NULL; + ITKCALL(AOM_ask_value_tags(gxRev, "IMAN_specification", &datasetCnt, &datasets)); + for (int d = 0; d < datasetCnt; d++) { + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(datasets[d], &type)); + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { + char *fileName = NULL, *fileUid = NULL; + ITKCALL(AOM_UIF_ask_value(datasets[d], "object_name", &fileName)); + ITK__convert_tag_to_uid(datasets[d], &fileUid); + TiXmlElement *FILECONTENTS = addElement(KJJDFILELIST, "FILECONTENTS", ""); + addElement(FILECONTENTS, "FILEID", item_id); + addElement(FILECONTENTS, "FILENAME", fileName); + addElement(FILECONTENTS, "FILETYPE", "文件"); + addElement(FILECONTENTS, "FIILUID", fileUid); + addElement(FILECONTENTS, "OTHER1", "OTHER1"); + addElement(FILECONTENTS, "OTHER2", "OTHER2"); + } + } + TiXmlElement *OPLIST = addElement(KJJDCONTENTS, "OPLIST", ""); + readTowGx(gxLine, gxRev, now, OPLIST, SONLIST, valueOf); + } +} + +void readOneGx(tag_t line, tag_t partRev, char* now, TiXmlElement* KJJDLIST, TiXmlElement *SONLIST, int valueOf) { + int c_line_count = 0; + tag_t *c_line_tags = NULL; + ITKCALL(BOM_line_ask_all_child_lines(line, &c_line_count, &c_line_tags)); + vector flowBeans; + vector startLines = getFlowStarts(c_line_count, c_line_tags); + tag_t item = NULLTAG; + char *zt2_unit = NULL; + ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + char* p_uom = getUnti(zt2_unit); + for (int i = 0; i < startLines.size(); i++) { + FlowBean currentFlow; + currentFlow.isMain = (i == 0); + flowBeans.push_back(currentFlow); + readGXFlow(startLines[i], flowBeans, currentFlow); + } + // 打印流信息 + if (flowBeans.size() > 0) { + log("---已加载PERT数据1---"); + for (FlowBean b : flowBeans) { + //b.print(); + } + } + else { + // 无PERT数据 + log("无PERT数据1"); + FlowBean bean; + bean.isMain = true; + for (int j = 0; j < c_line_count; j++) { + bean.flowList.push_back(c_line_tags[j]); + } + //bean.print(); + flowBeans.push_back(bean); + } + // 排序 + getSort(flowBeans); + // int ind=0; + for (int i = 0; i < flowBeans.size(); i++) { + getGXInfo(flowBeans[i], i, partRev, p_uom, now, line, KJJDLIST, SONLIST, valueOf); + } } void getProcess(tag_t rev, tag_t partRev, char* now, char* groupName, map gy_meops, TiXmlElement * BOPLIST, TiXmlElement * SONLIST, int valueOf) { @@ -46,7 +970,7 @@ void getProcess(tag_t rev, tag_t partRev, char* now, char* groupName, map lists2; - lists2.push_back("PDF"); - lists2.push_back("MS Word"); - lists2.push_back("MS WordX"); - lists2.push_back("MS Excel"); - lists2.push_back("MS ExcelX"); for (int i = 0; i < dataset_count; i++) { char *type = NULL; ITKCALL(WSOM_ask_object_type2(datasets[i], &type)); - if (find(lists2.begin(), lists2.end(), type) == lists2.end()) { + if (find(lists2.begin(), lists2.end(), type) != lists2.end()) { char *name = NULL, *uid = NULL; ITKCALL(AOM_ask_value_string(datasets[i], "object_name", &name)); - ITKCALL(POM_tag_to_uid(datasets[i], &uid)); + ITK__convert_tag_to_uid(datasets[i], &uid); TiXmlElement *FILECONTENTS = addElement(BOPFILELIST, "FILECONTENTS", ""); addElement(FILECONTENTS, "FILEID", item_id); addElement(FILECONTENTS, "FILENAME", name); @@ -90,6 +1008,14 @@ void getProcess(tag_t rev, tag_t partRev, char* now, char* groupName, mapLinkEndChild(CHILD); - if (tc_strlen(val) > 0) { - TiXmlText *materialText = new TiXmlText(val); - CHILD->LinkEndChild(materialText); - } - - return CHILD; -} - void getWbsMsg(tag_t pRev, char* groupName, vector& wbsList, TiXmlElement *WBSLIST) { char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL; ITKCALL(AOM_ask_value_string(pRev, "zt2_WBSNo", &zt2_WBSNo)); - if (!zt2_WBSNo || tc_strlen(zt2_WBSNo) == 0 || find(wbsList.begin(), wbsList.end(), zt2_WBSNo) == wbsList.end()) { + if (!zt2_WBSNo || tc_strlen(zt2_WBSNo) == 0 || find(wbsList.begin(), wbsList.end(), zt2_WBSNo) != wbsList.end()) { return; } ITKCALL(AOM_ask_value_string(pRev, "zt2_MaterialNo", &zt2_MaterialNo)); @@ -162,7 +1077,7 @@ void checkMatnr(string& errMessage, tag_t matnrRev) { ITKCALL(AOM_ask_value_string(matnrRev, "object_string", &os)); ITKCALL(AOM_ask_value_string(matnrRev, "zt2_State", &zt2_State)); if (tc_strcmp(zt2_State, "封存") == 0 || tc_strcmp(zt2_State, "D1") == 0) { - errMessage.append("物料:").append(os).append("已封存,无法传递SAP\n"); + errMessage.append("物料:").append(os).append("已封存,无法传递SAP\\n"); } char **zt2_SZFactory = NULL, **zt2_SZProcuretype = NULL, **zt2_SZSealedornot = NULL; int num1 = 0, num2 = 0, num3 = 0; @@ -174,22 +1089,23 @@ void checkMatnr(string& errMessage, tag_t matnrRev) { if (tc_strcmp(zt2_SZFactory[i], "M060") == 0) { flag = true; if (num2 > i && tc_strcmp(zt2_SZProcuretype[i], "/") == 0) { - errMessage.append("物料:").append(os).append(" 不可用,无法传递SAP\n"); + errMessage.append("物料:").append(os).append(" 不可用,无法传递SAP\\n"); } if (num3 > i && tc_strcmp(zt2_SZSealedornot[i], "Y") == 0) { - errMessage.append("物料:").append(os).append(" 已封存,无法传递SAP\n"); + errMessage.append("物料:").append(os).append(" 已封存,无法传递SAP\\n"); } } } if (!flag) { - errMessage.append("物料:").append(os).append(" 没有维护物料视图,无法传递SAP\n"); + errMessage.append("物料:").append(os).append(" 没有维护物料视图,无法传递SAP\\n"); } } -void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *XmlINTERGRATIONLIST, char* groupName, char* now, vector wbsList, string& errMsg, map gy_meops) { - TiXmlElement *WBSLIST = XmlINTERGRATIONLIST->FirstChildElement("WBSLIST"); +void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *INTERGRATIONLIST, char* groupName, char* now, + vector wbsList, string& errMsg, map gy_meops, const char* batchNum) { + TiXmlElement *WBSLIST = INTERGRATIONLIST->FirstChildElement("WBSLIST"); if (WBSLIST == NULL) { - WBSLIST = addElement(XmlINTERGRATIONLIST, "WBSLIST", ""); + WBSLIST = addElement(INTERGRATIONLIST, "WBSLIST", ""); } getWbsMsg(pRev, groupName, wbsList, WBSLIST); tag_t* tzs = NULL; @@ -201,14 +1117,14 @@ void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *XmlINTERGRATIONLIST, if (c_line_count == 0) { return; } - TiXmlElement *WLLIST = XmlINTERGRATIONLIST->FirstChildElement("WLLIST"); + TiXmlElement *WLLIST = INTERGRATIONLIST->FirstChildElement("WLLIST"); if (WLLIST == NULL) { - WLLIST = addElement(XmlINTERGRATIONLIST, "WLLIST", ""); + WLLIST = addElement(INTERGRATIONLIST, "WLLIST", ""); } TiXmlElement *WLCONTENTS = addElement(WLLIST, "WLCONTENTS", ""); // char *item_id = NULL, *item_revision_id = NULL, *zt2_MaterialNo = NULL, *zt2_unit = NULL; - ITKCALL(ITEM_ask_rev_id2(pRev, &item_id)); + ITKCALL(AOM_ask_value_string(pRev, "item_id", &item_id)); ITKCALL(AOM_ask_value_string(pRev, "item_revision_id", &item_revision_id)); string tcid = ""; tcid.append(item_id).append("/").append(item_revision_id); @@ -219,7 +1135,7 @@ void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *XmlINTERGRATIONLIST, // TiXmlElement *BOMCONTENTS = addElement(WLCONTENTS, "BOMCONTENTS", ""); addElement(WLCONTENTS, "WLFILELIST", ""); - addElement(WLCONTENTS, "BOPLIST", ""); + TiXmlElement *BOPLIST = addElement(WLCONTENTS, "BOPLIST", ""); //if (c_line_count > 0) addElement(BOMCONTENTS, "PARENTTCID", tcid.c_str()); @@ -237,8 +1153,13 @@ void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *XmlINTERGRATIONLIST, char* unit = getUnti(zt2_unit); log("str = [%s] \n", unit); addElement(BOMCONTENTS, "QUIT", zt2_unit); + char* revUid; + ITK__convert_tag_to_uid(pRev, &revUid); + addElement(BOMCONTENTS, "UID", revUid); + addElement(BOMCONTENTS, "BATCHNUMBER", batchNum); - string maxSeq = "10"; + //string maxSeq = "10"; + int maxSeq = 0; TiXmlElement *SONLIST = addElement(BOMCONTENTS, "SONLIST", ""); for (int i = 0; i < c_line_count; i++) { tag_t c_line_tag = c_line_tags[i], designRev = NULLTAG; @@ -276,30 +1197,85 @@ void expandAllBomPart(tag_t pRev, tag_t line, TiXmlElement *XmlINTERGRATIONLIST, addElement(SONCONTENTS, "REMARK", ZT2_Remark); addElement(SONCONTENTS, "OTHER1", ""); addElement(SONCONTENTS, "OTHER2", ""); - if (i == c_line_count - 1) { - maxSeq = bl_sequence_no; + if (!bl_sequence_no || tc_strcmp(bl_sequence_no, "") == 0) { + maxSeq += 10; } - expandAllBomPart(rev2, c_line_tag, XmlINTERGRATIONLIST, groupName, now, wbsList, errMsg, gy_meops); + else { + int seq = stoi(bl_sequence_no); + if (seq > maxSeq) { + maxSeq = seq; + } + } + /*if (i == c_line_count - 1) { + maxSeq = to_string(seq); + }*/ + expandAllBomPart(rev2, c_line_tag, INTERGRATIONLIST, groupName, now, wbsList, errMsg, gy_meops, batchNum); } tag_t meops = getProcessTag(pRev, groupName); - int valueOf = stoi(maxSeq); + //int valueOf = stoi(maxSeq); if (pRev != NULLTAG && meops != NULLTAG) { char *os = NULL, *pos = NULL; ITKCALL(AOM_ask_value_string(pRev, "object_string", &os)); ITKCALL(AOM_ask_value_string(meops, "object_string", &pos)); log("物料[%s]工艺信息:%s", os, pos); - TiXmlElement *BOPLIST = addElement(WLCONTENTS, "BOPLIST", ""); - getProcess(meops, pRev, now, groupName, gy_meops, BOPLIST, SONLIST, valueOf); + getProcess(meops, pRev, now, groupName, gy_meops, BOPLIST, SONLIST, maxSeq); + } +} +//写入BOM头信息到DETAILS表 +void logXmlMsg(TiXmlElement* interGrationList, char* code, const char* productNos, const char* batchNo, char* wbsNo, char* alterstatus) { + TiXmlElement *WLLIST = interGrationList->FirstChildElement("WLLIST"); + for (TiXmlElement *content = WLLIST->FirstChildElement("WLCONTENTS"); content != NULL; content = content->NextSiblingElement("WLCONTENTS")) { + TiXmlElement *BOMCONTENTS = content->FirstChildElement("BOMCONTENTS"); + const char *tcId = BOMCONTENTS->FirstChildElement("PARENTTCID")->GetText(); + vector ids; + Split(tcId, "/", ids); + const char *parentMantrNo = BOMCONTENTS->FirstChildElement("PARENTWLBM")->GetText(); + const char *uid = BOMCONTENTS->FirstChildElement("UID")->GetText(); + + string insertSql = "insert into CHINT_BOM_TO_SAP_DETIALS (code,batchnumber,plmsendstatus,plmsendstarttime,factory,productmaterialno,pitemid,puid,materialno,wbsno,plmstatus,plmalterstatus) VALUES ('%s','%s','PLM开始传递',SYSDATE,'%s','%s','%s','%s','%s','%s','未处理','%s') "; + char selectRxfs[3000]; + sprintf(selectRxfs, insertSql.c_str(), code, batchNo, "M060", productNos, ids[0].c_str(), uid, parentMantrNo, wbsNo, alterstatus); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); } } void BomSapWh(vector ccpVector, char* projectNo, char* groupName, char* wbs, - char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { + char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { log("************** BomSapWh **************"); + lists2.clear(); + lists2.push_back("PDF"); + lists2.push_back("MS Word"); + lists2.push_back("MS WordX"); + lists2.push_back("MS Excel"); + lists2.push_back("MS ExcelX"); + + int url_num = 0; + char** rule_vals = NULL; + char alterstatus[2] = "N"; + //是否需要修改状态 + ITKCALL(PREF_ask_char_values("CHINT_BOMTOSAP_STATUS_RULE", &url_num, &rule_vals)); + for (int i = 0; i < url_num; i++) { + vector vec; + Split(rule_vals[i], ":", vec); + if (tc_strcmp(vec[0].c_str(), "M060") == 0) { + tc_strcpy(alterstatus, vec[1].c_str()); + break; + } + } + string materialNoTmp = ""; + //TiXmlElement *interLogElem = NULL; + vector interLogList; + string batchNum = code; + batchNum.append("-00001"); for (int len = 0; len < ccpVector.size(); len++) { tag_t rev = ccpVector[len]; tag_t prev = getPRevision(rev); + char* revUid; + ITK__convert_tag_to_uid(prev, &revUid); + log("P物料UID:%s", revUid); tag_t ebom_window = NULLTAG, line = NULLTAG; ITKCALL(BOM_create_window(&ebom_window)); ITKCALL(BOM_set_window_top_line(ebom_window, NULL, prev, NULLTAG, &line)); @@ -307,13 +1283,79 @@ void BomSapWh(vector ccpVector, char* projectNo, char* groupName, char* w TiXmlDocument XmlDocument; XmlDocument.Parse(""); TiXmlElement* XmlRoot = XmlDocument.RootElement(); - TiXmlElement *XmlREQ = XmlRoot->FirstChildElement("Body")->FirstChildElement(); - TiXmlElement *XmlINTERGRATIONLIST = new TiXmlElement("XmlINTERGRATIONLIST"); - XmlREQ->LinkEndChild(XmlINTERGRATIONLIST); + TiXmlElement *MT_MATERIAL_BOP_REQ = XmlRoot->FirstChildElement("soapenv:Body")->FirstChildElement(); + TiXmlElement *INTERGRATIONLIST = addElement(MT_MATERIAL_BOP_REQ, "INTERGRATIONLIST", ""); vector wbsList; map gy_meops; string errMsg = ""; - expandAllBomPart(prev, line, XmlINTERGRATIONLIST, groupName, now, wbsList, errMsg, gy_meops); + expandAllBomPart(prev, line, INTERGRATIONLIST, groupName, now, wbsList, errMsg, gy_meops, batchNum.c_str()); + TiXmlPrinter printer; + XmlDocument.Accept(&printer); + string bomlog = "BOM全document===>"; + bomlog.append(printer.CStr()); + log2(bomlog); + string logmsg = "errMsg =>"; + //log2(logmsg.append(errMsg)); + logmsg.append(errMsg); + printf("%s\n", logmsg.c_str()); + info(logmsg.c_str()); + if (errMsg.length() > 0) { + errMsgBuf.append("BOM异常:\\n").append(errMsg); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = '数据检查有问题' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } + char *zt2_MaterialNo = NULL; + ITKCALL(AOM_ask_value_string(prev, "zt2_MaterialNo", &zt2_MaterialNo)); + materialNoTmp.append(zt2_MaterialNo).append(";"); + logXmlMsg(INTERGRATIONLIST, code, zt2_MaterialNo, batchNum.c_str(), wbs, alterstatus); + errMsg = SendToSap(printer.CStr()); + log("SendToSap end"); + if (errMsg.length() > 0) { + log("errMsg.length() > 0"); + errMsgBuf.append("传递异常:\\n").append(errMsg); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = '传递异常' ,SAPRESULT = '传递异常',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord3 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } + //interLogElem = INTERGRATIONLIST; + interLogList.push_back(XmlDocument); + ITKCALL(BOM_close_window(ebom_window)); } + log("2"); + //if (interLogElem != NULL) { + /*if (interLogList.size() > 0) { + for (int i = 0; i < interLogList.size(); i++) { + TiXmlElement* XmlRoot = interLogList[i].RootElement(); + TiXmlElement *XmlREQ = XmlRoot->FirstChildElement("soapenv:Body")->FirstChildElement(); + TiXmlElement *INTERGRATIONLIST = XmlREQ->FirstChildElement("INTERGRATIONLIST"); + logXmlMsg(INTERGRATIONLIST, code, materialNoTmp.c_str(), batchNum.c_str(), wbs, alterstatus); + } + }*/ + string time1 = getPlmTime(code); + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"NUMBER\" = %d ,datastatus = '数据正常推送SAP',organizationaltime = '%s',taskstauts = '组织完成',PLMFINISHTIME = SYSDATE where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), 1, time1.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + } \ No newline at end of file diff --git a/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.cpp b/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.cpp index 387b2cc..dd7db7f 100644 --- a/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.cpp +++ b/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.cpp @@ -1,4 +1,6 @@ #include "CRUL_server_call_httpserver.h" +#include "dfl_custom.h" +#include "util.h" #include #include #include @@ -10,6 +12,27 @@ size_t write_data(void* ptr, size_t size, size_t nmemb, void* stream) { *((stringstream*)stream) << data << endl; return size * nmemb; } + +string replace(string str, string s1, string s2) { + /*int pos; + pos = str.find(s1); + while (pos != -1) { + // str.length()求字符的长度,注意str必须是string类型 + str.replace(pos, string(s1).length(), s2); + pos = str.find(s1); + }*/ + vector vec; + Split(str, s1, vec); + string res = ""; + for (int i = 0; i < vec.size(); i++) { + if (res.size() > 0) { + res.append(s2); + } + res.append(vec[i]); + } + return res; +} + string callHttpserver(string signinfoJsonString, string url) { CURL* curl; CURLcode res; @@ -66,25 +89,38 @@ string callFsHttpserver(string signinfoJsonString, string url) { printf("str_json===>%s\n", str_json.c_str()); return str_json; } -//gfpoapp正式 192.168.0.184测试 -string callHttpserver2(string signinfoJsonString) { +//gfpoapp正式 192.168.0.184 gfpot01测试 +string callHttpserver2(string signinfoJsonString, char* url) { CURL* curl; CURLcode res; std::stringstream out; curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST"); - curl_easy_setopt(curl, CURLOPT_URL, "http://gfpoapp:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"); + //curl_easy_setopt(curl, CURLOPT_URL, "http://gfpot01:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"); + curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); - curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "http"); + curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https"); + string key = "Authorization: Basic "; + if (tc_strstr(url, "10.10.101.219") == NULL && tc_strstr(url, "gfpoapp") == NULL) { + key.append("cG9fcmZjOjFxYXohUUFa"); + } + else { + key.append("c2hwbG06c2FwQDIwMTk="); + } struct curl_slist* headers = NULL; - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out); - headers = curl_slist_append(headers, "Content-Type: application/xml"); //c2hwb2RldjpzYXBAMjAxOQ==测试 - headers = curl_slist_append(headers, "Authorization: Basic c2hwbG06c2FwQDIwMTk="); //c2hwbG06c2FwQDIwMTk=正式 + headers = curl_slist_append(headers, "Content-Type: application/xml"); //cG9fcmZjOjFxYXohUUFa测试 + headers = curl_slist_append(headers, key.c_str()); //c2hwbG06c2FwQDIwMTk=正式 + headers = curl_slist_append(headers, "Cookie: JSESSIONID=-E6lQ1chbNdpncO4u4bcyWTq975hjwH2lQQB_SAPqDb0iHxoW4xB8Tlcn2TAho7J; JSESSIONMARKID=5HZ08QQuXWa7hQoZajm-ZJRySpCVLLwytn1_aVBAE; MYSAPSSO2=AjExMDAgAA1wb3J0YWw6cG9fcmZjiAAHZGVmYXVsdAEABlBPX1JGQwIAAzAwMAMAA1BJVAQADDIwMjQwNTEwMDkwNAUABAAAAAgKAAZQT19SRkP%2FAQQwggEABgkqhkiG9w0BBwKggfIwge8CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHATGBzzCBzAIBATAiMB0xDDAKBgNVBAMTA1BJVDENMAsGA1UECxMESjJFRQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNTEwMDkwNDE2WjAjBgkqhkiG9w0BCQQxFgQUuzRiZLjaMRv5dYl%2FRB9b2rsfWyQwCQYHKoZIzjgEAwQuMCwCFE6u4YZRTlITKJx2!2UzEsO7e1QkAhRTF5kPjf4ueRx7Qt!JrN%2FZ0iWS1A%3D%3D; saplb_*=(J2EE17077720)17077750"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - const char* data = signinfoJsonString.c_str(); + //string xmlStr = replace(signinfoJsonString, "\"", "\\\""); + //xmlStr = replace(xmlStr, "\r", ""); + //xmlStr = replace(xmlStr, "\n", ""); + const char* data = G2U(signinfoJsonString.c_str()); + printf("xmlStr==> %s\n", data); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out); res = curl_easy_perform(curl); if (res != 0) { string errMessage = curl_easy_strerror(res); diff --git a/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.h b/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.h index 32e5244..8a80b3f 100644 --- a/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.h +++ b/DFL_BOM_WL_TOERP/CRUL_server_call_httpserver.h @@ -3,6 +3,6 @@ #include using namespace std; string callHttpserver(string signinfoJsonString, string url); -string callHttpserver2(string signinfoJsonString); +string callHttpserver2(string signinfoJsonString, char* url); string callHttpGet(string url); string callFsHttpserver(string signinfoJsonString, string url); diff --git a/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj b/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj index 30c3a23..58aa2ad 100644 --- a/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj +++ b/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj @@ -175,6 +175,7 @@ + diff --git a/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj.filters b/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj.filters index c3c0ebd..fad4a0a 100644 --- a/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj.filters +++ b/DFL_BOM_WL_TOERP/DFL_BOM_WL_TOERP.vcxproj.filters @@ -72,9 +72,6 @@ 婧愭枃浠 - - 婧愭枃浠 - tinyxml @@ -87,6 +84,12 @@ tinyxml + + 婧愭枃浠 + + + 婧愭枃浠 + diff --git a/DFL_BOM_WL_TOERP/GetBOMProp.cpp b/DFL_BOM_WL_TOERP/GetBOMProp.cpp index d310c64..f0415c7 100644 --- a/DFL_BOM_WL_TOERP/GetBOMProp.cpp +++ b/DFL_BOM_WL_TOERP/GetBOMProp.cpp @@ -135,10 +135,29 @@ int readBomMsg(vector ccpVector, char * groupName, char* projectUid, char break; } log("fa ===>%s\n", fa.c_str()); - if (tc_strcmp(fa.c_str(), "C") == 0) { - SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo, + if (tc_strcmp(groupName, "M060") == 0) { + BomSapWh(ccpVector, projectNo, groupName, zt2_WBSNo, fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str()); } + else if (tc_strcmp(fa.c_str(), "C") == 0) { + vector dists; + int pref_cnt = 0; + char **pref = NULL; + ITKCALL(PREF_ask_char_values("M005_task_distribute", &pref_cnt, &pref)); + for (int i = 0; i < pref_cnt; i++) { + vector vec; + Split(pref[i], "|", vec); + if (vec.size() != 3) { + continue; + } + if (tc_strstr(vec[1].c_str(), "鎬昏") != NULL) { + continue; + } + dists.push_back(vec[0]); + } + SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo, + fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), dists, objectName); + } else if (tc_strcmp(transfer, "澹充綋鏂规浼犻") == 0) { getKTBom(ccpVector, projectNo, groupName, zt2_WBSNo, fileDate, errorBuff, code, transfer, userName, objectName); @@ -152,8 +171,11 @@ int readBomMsg(vector ccpVector, char * groupName, char* projectUid, char fileDate, errorBuff, code, transfer, userName, objectName); } else if (tc_strcmp(transfer, "浜ф垚鍝丅OM浼犻") == 0 && tc_strcmp(fa.c_str(), "E") == 0) { + vector dists; + SAPPartZYOp2(ccpVector, projectNo, groupName, zt2_WBSNo, + fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), objectName); SAPZZNewOp(ccpVector, projectNo, groupName, zt2_WBSNo, - fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str()); + fileDate, errorBuff, code, transfer, userName, (char*)fa.c_str(), dists, objectName); } else { getCcpAndBom(ccpVector, projectNo, groupName, zt2_WBSNo, diff --git a/DFL_BOM_WL_TOERP/SAPGY.cxx b/DFL_BOM_WL_TOERP/SAPGY.cxx new file mode 100644 index 0000000..de7f90e --- /dev/null +++ b/DFL_BOM_WL_TOERP/SAPGY.cxx @@ -0,0 +1,294 @@ + +#include "SendSap.h" + +void addLastRevisions(map> items2, vector& cParts) { + for (map>::iterator it = items2.begin(); it != items2.end(); it++) { + vector revs = it->second; + if (revs.size() == 1) { + cParts.push_back(revs[0]); + continue; + } + else if (revs.size() > 1) { + tag_t max_Rev = NULLTAG; + string s = ""; + int index = -1; + for (int i = 0; i < revs.size(); i++) { + char* item_id = NULL; + ITKCALL(AOM_UIF_ask_value(revs[i], "item_revision_id", &item_id)); + if (s.length() == 0) { + s = item_id; + max_Rev = revs[i]; + for (int j = 0; j < s.length(); j++) { + if (s[j] >= '0' && s[j] <= '9') { + index = j; + break; + } + } + } + else { + string temp = item_id; + if (index != -1) { + int compare = tc_strcmp(temp.substr(0, index).c_str(), s.substr(0, index).c_str()); + if (compare > 0) { + s = temp; + max_Rev = revs[i]; + } + else if (compare == 0) { + string s1 = s.substr(index, s.length() - index); + string temp1 = temp.substr(index, temp.length() - index); + int min = s1.length(); + if (min > temp1.length()) + min = temp1.length(); + for (int k = 0; k < min; k++) { + if (temp1[k] > s1[k]) { + s = temp; + max_Rev = revs[i]; + break; + } + } + if (temp1.length() > min) { + s = temp; + max_Rev = revs[i]; + } + } + } + else if (tc_strcmp(temp.c_str(), s.c_str()) > 0) { + s = temp; + max_Rev = revs[i]; + } + } + } + cParts.push_back(max_Rev); + } + } +} + +void getAllNum(char* id, char* revid, double n, map>& allcomp) { + char nums[8] = ""; + if (allcomp.count(id) > 0) { + double num = stod(allcomp[id][1]); + sprintf(nums, "%f", num + n); + } + else { + sprintf(nums, "%f", n); + } + vector value;// = { revid, nums }; + value.push_back(revid); + value.push_back(nums); + allcomp[id] = value; +} + +void getAllItem(tag_t parent_line, double parent_num, vector& _list, map>& allcomp) { + tag_t rev = NULLTAG; + ITKCALL(AOM_ask_value_tag(parent_line, "bl_line_object", &rev)); + char* type = NULL, *zt2_Source = NULL; + ITKCALL(WSOM_ask_object_type2(rev, &type)); + ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); + if (tc_strcmp(type, "zt2_Design3DRevision") == 0 && (tc_strcmp(zt2_Source, "外购") == 0 || tc_strcmp(zt2_Source, "S2") == 0)) { + return; + } + int c_line_count = 0; + tag_t *c_line_tags = NULL; + ITKCALL(BOM_line_ask_all_child_lines(parent_line, &c_line_count, &c_line_tags)); + for (int i = 0; i < c_line_count; i++) { + tag_t child = NULLTAG; + ITKCALL(AOM_ask_value_tag(c_line_tags[i], "bl_line_object", &child)); + char* child_id = NULL, *child_revid = NULL, *child_quantity = NULL; + ITKCALL(AOM_UIF_ask_value(child, "item_id", &child_id)); + ITKCALL(AOM_UIF_ask_value(child, "item_revision_id", &child_revid)); + ITKCALL(AOM_UIF_ask_value(c_line_tags[i], "bl_quantity", &child_quantity)); + if (!child_quantity || tc_strlen(child_quantity) == 0) { + DOFREE(child_quantity); + child_quantity = (char *)MEM_alloc(2 * sizeof(char)); + tc_strcpy(child_quantity, "1"); + } + double child_num = parent_num * stod(child_quantity); + getAllNum(child_id, child_revid, child_num, allcomp); + getAllItem(c_line_tags[i], child_num, _list, allcomp); + int c_line_count2 = 0; + tag_t *c_line_tags2 = NULL; + ITKCALL(BOM_line_ask_all_child_lines(c_line_tags[i], &c_line_count2, &c_line_tags2)); + if (c_line_count2 > 0) { + _list.push_back(child); + } + } +} + +void ProcessMemoryTree() { + +} + +void sendRev(tag_t rev) { + +} + +void readBomInfo(tag_t ccp, vector schemes, vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* groupName, char* now) { + + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; + char* zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL, *type = NULL, *zt2_BOMScheme = NULL; + ITKCALL(AOM_UIF_ask_value(ccp, "zt2_MaterialNo", &zt2_MaterialNo)); + ITKCALL(AOM_UIF_ask_value(ccp, "zt2_WBSNo", &zt2_WBSNo)); + tag_t item = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(ccp, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + //char* unit = getUnti(zt2_unit); + log("str = [%s] \n", zt2_unit); + + head.PSPNR = zt2_WBSNo; + head.MATNR = zt2_MaterialNo; + head.STLAN = (char*)"1"; + head.STLAL = (char*)"1"; + head.BMENG = (char*)"1"; + ITKCALL(WSOM_ask_object_type2(ccp, &type)); + ITKCALL(AOM_UIF_ask_value(ccp, "zt2_BOMScheme", &zt2_BOMScheme)); + if (tc_strcmp(type, "Part Revision") == 0 && tc_strcmp(zt2_BOMScheme, "汇总") == 0) { + char* zt2_Quantity = NULL; + ITKCALL(AOM_UIF_ask_value(ccp, "zt2_Quantity", &zt2_Quantity)); + if (zt2_Quantity && tc_strlen(zt2_Quantity) != 0 && tc_strcmp(zt2_Quantity, "0") != 0) { + head.BMENG = zt2_Quantity; + } + } + head.WERKS = groupName; + head.BMEIN = zt2_unit; + head.DATUV = now; + + int c_line_count = schemes.size(); + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items = + new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[c_line_count]; + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items; + for (int i = 0; i < c_line_count; i++) { + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item; + tag_t rev2 = schemes[i]; + char* cName = NULL, bl_seq_no[8] = "", *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL; + ITKCALL(AOM_ask_value_string(rev2, "object_name", &cName)); + if (tc_strstr(cName, "一次规范书") != NULL) { + tc_strcpy(bl_seq_no, "0010"); + }else if (tc_strstr(cName, "二次规范书") != NULL) { + tc_strcpy(bl_seq_no, "0020"); + } + else if(tc_strstr(cName, "结构方案") != NULL) { + tc_strcpy(bl_seq_no, "0030"); + } + items_item.DATUV = now; + items_item.POSTP = (char*)"L"; + items_item.POSNR = bl_seq_no; + ITKCALL(AOM_UIF_ask_value(rev2, "zt2_MaterialNo", &zt2_MaterialNo2)); + items_item.IDNRK = zt2_MaterialNo2; + items_item.MENGE = (char*)"1"; + items_item.SORTF = getZYCCPSortNo(rev2); + if (tc_strstr(zt2_MaterialNo2, "9900000191") != NULL) { + items_item.POTX1 = "PCM00825"; + } + else { + items_item.POTX1 = ""; + } + tag_t item2 = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(rev2, &item2)); + ITKCALL(AOM_ask_value_string(item2, "zt2_unit", &zt2_unit2)); + items_item.MEINS = zt2_unit2; + + items_items[i] = items_item; + } + items.ITEM = items_items; + items.__sizeITEM = c_line_count; + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST list1; + list1.HEAD = head; + log("list1.HEAD %s ", list1.HEAD.BMEIN); + list1.ITEMS = items; + list.push_back(list1); +} + +void sendToSap2(vector ccpVector, char* groupName, char* now, char* code, char* wbs) { + log("************** SAPZYGG2 **************"); + int pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + + map> cPart_schemes; + vector bom_revs; + vector isCheck_FactoryNos; + map> inCcpMap;//记录单元对应的产成品物料编码 + for (int len = 0; len < ccpVector.size(); len++) { + tag_t rev = ccpVector[len], *factoryNos; + char* revUid = NULL; + ITK__convert_tag_to_uid(rev, &revUid); + log("产成品UID:%s", revUid); + int num = 0; + ITKCALL(AOM_ask_value_tags(rev, "ZT2_FactoryNumber", &num, &factoryNos)); + if (num == 0) { + bom_revs.push_back(rev); + } + else { + map> items2; + vector revs; + for (int i = 0; i < num; i++) { + if (find(isCheck_FactoryNos.begin(), isCheck_FactoryNos.end(), factoryNos[i]) != isCheck_FactoryNos.end()) + continue; + isCheck_FactoryNos.push_back(factoryNos[i]); + int n_references = 0; + int* levels = 0; + tag_t* references_tag; + char** relation_type_name = NULL; + //通过出厂编号查找到图纸 + ITKCALL(WSOM_where_referenced(factoryNos[i], 1, &n_references, &levels, &references_tag, &relation_type_name)); + for (int i = 0; i < n_references; i++) { + if (tc_strcmp(relation_type_name[i], "ZT2_FactoryNumber") != 0) + continue; + char *type2 = NULL; + ITKCALL(WSOM_ask_object_type2(references_tag[i], &type2)); + if (tc_strcmp(type2, "Part Revision") != 0) + continue; + char* revUid2 = NULL; + ITK__convert_tag_to_uid(references_tag[i], &revUid2); + if (tc_strcmp(revUid, revUid2) == 0) + continue; + char *name2 = NULL; + ITKCALL(AOM_UIF_ask_value(references_tag[i], "object_name", &name2)); + if (tc_strstr(name2, "方案") == NULL) + continue; + tag_t item2 = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(references_tag[i], &item2)); + if (items2.count(item2) > 0) { + items2[item2].push_back(references_tag[i]); + } + else { + vector revs2; + revs2.push_back(references_tag[i]); + items2[item2] = revs2; + } + addLastRevisions(items2, revs); + if (revs.size() > 0) { + cPart_schemes[rev] = revs; + } + else { + bom_revs.push_back(rev); + } + } + } + } + } + map> mapList; + for (map>::iterator it = cPart_schemes.begin(); it != cPart_schemes.end(); it++) { + tag_t ccp = it->first; + vector schemes = it->second; + //if (schemes.size() > 0) {} + char* revUid = NULL, *zt2_MaterialNo = NULL; + ITK__convert_tag_to_uid(ccp, &revUid); + log("产成品UID:%s", revUid); + if (inCcpMap.count(revUid) > 0) { + log("folderName =>%s", zt2_MaterialNo); + inCcpMap[revUid].push_back(zt2_MaterialNo); + continue; + } + vector ccpMaterialMap; + ccpMaterialMap.push_back(zt2_MaterialNo); + inCcpMap[revUid] = ccpMaterialMap; + + vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list; + readBomInfo(ccp, schemes, list, groupName, now); + if (list.size() > 0) { + mapList[ccp] = list; + } + } + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); +} \ No newline at end of file diff --git a/DFL_BOM_WL_TOERP/SAPPartZYOp2.cxx b/DFL_BOM_WL_TOERP/SAPPartZYOp2.cxx new file mode 100644 index 0000000..334c816 --- /dev/null +++ b/DFL_BOM_WL_TOERP/SAPPartZYOp2.cxx @@ -0,0 +1,6 @@ + +//#include +//#include +//#include +#include "SendSap.h" + diff --git a/DFL_BOM_WL_TOERP/SAPZYGG2.cxx b/DFL_BOM_WL_TOERP/SAPZYGG2.cxx index 83ffa81..12b8a45 100644 --- a/DFL_BOM_WL_TOERP/SAPZYGG2.cxx +++ b/DFL_BOM_WL_TOERP/SAPZYGG2.cxx @@ -56,10 +56,14 @@ tag_t getICSComp(char* codeRemark, int unct, char* query) { * 根据材料标记获得物料 * SAPUtil.getClassPart */ -tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map& by_materials) { +tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map& by_materials, string& errMsg) { char* zt2_MaterialMark = NULL; ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark)); if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) { + char *item_id = NULL; + ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id)); + log("未填写材料标记,版本ID:%s", item_id); + errMsg.append("未填写材料标记,版本ID:").append(item_id).append("\\n"); return NULLTAG; } if (by_materials.count(zt2_MaterialMark) > 0) { @@ -70,7 +74,8 @@ tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map& by ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2)); if (num > 0) return contexts2[0]; - log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); + log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark); + errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n"); return NULLTAG; } return by_materials[zt2_MaterialMark]; @@ -83,7 +88,8 @@ tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map& by ITKCALL(AOM_ask_value_tags(rev, "ZT2_Material", &num, &contexts2)); if (num > 0) return contexts2[0]; - log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); + log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark); + errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n"); return NULLTAG; } else { @@ -98,6 +104,10 @@ tag_t getClassPartDB(tag_t rev, char* groupName, map& by_material char* zt2_MaterialMark = NULL; ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialMark", &zt2_MaterialMark)); if (!zt2_MaterialMark || tc_strlen(zt2_MaterialMark) == 0) { + char *item_id = NULL; + ITKCALL(AOM_ask_value_string(rev, "item_id", &item_id)); + log("未填写材料标记,版本ID:%s", item_id); + errMsg.append("未填写材料标记,版本ID:").append(item_id).append("\\n"); return NULLTAG; } string sql = "select materialno,materialutilization,materialunit FROM \"CHINT_"; @@ -113,16 +123,16 @@ tag_t getClassPartDB(tag_t rev, char* groupName, map& by_material log("search3 ===> %s\n", sql.c_str()); QuerySQLNoInputParam((char*)sql.c_str(), &outputColumn1, &outputValueCount1, &outputValue1); if (outputValueCount1 == 0) { - log("查询不到[材料标记]为[%s]的原材料\n", zt2_MaterialMark); - errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\n"); + log("查询不到[材料标记]为[%s]的原材料", zt2_MaterialMark); + errMsg.append("查询不到[材料标记]为[").append(zt2_MaterialMark).append("]的原材料\\n"); return NULLTAG; } materials[zt2_MaterialMark] = outputValue1[0][1]; tag_t find = NULLTAG; ITKCALL(ITEM_find_item(outputValue1[0][0], &find)); if (find == NULLTAG) { - log("tc中查询不到[ID]为[%s]的原材料\n", zt2_MaterialMark); - errMsg.append("tc中查询不到[ID]为[").append(zt2_MaterialMark).append("]的原材料\n"); + log("tc中查询不到[ID]为[%s]的原材料", zt2_MaterialMark); + errMsg.append("tc中查询不到[ID]为[").append(zt2_MaterialMark).append("]的原材料\\n"); return NULLTAG; } by_materials[zt2_MaterialMark] = find; @@ -351,7 +361,7 @@ string getICSProperty(tag_t comp, char* codeRemark, char* prop) { } return ""; } - +// 根据材料利用率获取组件用量(若找不到材料标记默认为0.85) char* getZYMENGE(double dw, tag_t material, char* codeMark) { //double dw = stod(zt2_zt2_DesignWeight); double lyl = -1, res = 0; @@ -443,7 +453,7 @@ char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom, if (!ZT2_TYWeight || tc_strlen(ZT2_TYWeight) == 0) { char *os = NULL; ITKCALL(AOM_ask_value_string(design, "object_string", &os)); - errMsg.append(os).append("设计重量为空\n"); + errMsg.append(os).append("设计重量为空\\n"); return "0"; } } @@ -466,6 +476,22 @@ char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom, return buffer; } } +//lidy20240530增加原本注释的虚拟工艺逻辑 +tag_t getMrProcess(char *groupName) { + int pref_cnt = 0; + char **pref = NULL; + ITKCALL(PREF_ask_char_values("CHINT_GYLX", &pref_cnt, &pref)); + for (int i = 0; i < pref_cnt; i++) { + vector vec; + Split(pref[i], ":", vec); + if (tc_strcmp(vec[0].c_str(), groupName) == 0) { + tag_t proc = NULLTAG; + ITK__convert_uid_to_tag(vec[1].c_str(), &proc); + return proc; + } + } + return NULLTAG; +} /* * 中压通用BOM传递SAP 新 * SAPUtil.recurZYGGSAPNoProc @@ -513,17 +539,15 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); log("zt2_Source =>%s", zt2_Source); boolean equals = (zt2_Source && (tc_strcmp(zt2_Source, "外购") == 0 || tc_strcmp(zt2_Source, "S2") == 0)); - if (partRev != NULL) { - if (meops == NULL) { + if (partRev != NULLTAG) { + if (meops == NULLTAG) { if (!equals && c_line_count > 0) { log("自制获取工艺路线"); //java中getMrProcess方法已注释只返回null,因此该逻辑已无实际意义 - /*TCComponentMEProcessRevision mrProcess = getMrProcess(groupID, session); - TXTUtil.writeTXT(txtPath, "图纸[" + rev + "]工艺信息:" + mrProcess); - if (mrProcess != null) { - SAPUtil.readBopInfo1(mrProcess, partRev, session, now, - txtPath, proclist, groupName, gy_meops, needTCM_meops, false); - }*/ + meops = getMrProcess(groupName); + if (meops != NULLTAG) { + readBopInfo1YH(meops, partRev, true, gy_meops, needTCM_meops, groupName, now, proclist); + } } } else { @@ -560,6 +584,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m bomIsExist.push_back(zt2_MaterialNo); } if (c_line_count == 0) { + log("c_line_count == 0"); //char* zt2_Source = NULL; //ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && (tc_strcmp(zt2_Source, "自制") == 0 || tc_strcmp(zt2_Source, "S1") == 0) @@ -570,7 +595,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m comp = getClassPartDB(rev, groupName, by_materials, materials, errMsg); } else { - comp = getClassPart(rev, codeRemark, unct, by_materials); + comp = getClassPart(rev, codeRemark, unct, by_materials, errMsg); } char* os = NULL, *sortno = NULL; boolean isHaveProcess = false; @@ -598,23 +623,25 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m ITKCALL(AOM_ask_value_string(line, "ZT2_ClassificationNo", &sortno)); } log("工序编码 =>%s", sortno); - char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL; - ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo)); - log("zt2_MaterialNo ==>%s", zt2_MaterialNo); - ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo)); _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items = new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[1]; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items; _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item; - tag_t item = NULLTAG; - ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); - ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); - //char* unit = getUnti(zt2_unit); - log("str = [%s] \n", zt2_unit); - head.PSPNR = zt2_WBSNo; - head.MATNR = zt2_MaterialNo; - head.BMEIN = zt2_unit; + if (partRev != NULLTAG) { + char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL; + ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo)); + log("zt2_MaterialNo ==>%s", zt2_MaterialNo); + ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo)); + tag_t item = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + //char* unit = getUnti(zt2_unit); + log("str = [%s] \n", zt2_unit); + head.PSPNR = zt2_WBSNo; + head.MATNR = zt2_MaterialNo; + head.BMEIN = zt2_unit; + } head.STLAN = (char*)"1"; head.STLAL = (char*)"1"; head.BMENG = (char*)"1"; @@ -630,12 +657,12 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m items_item.POSNR = "0010"; if (!isLj) { if (!isHaveProcess) { - errMsg.append(line_os).append("缺少工艺路线\n"); + errMsg.append(line_os).append("缺少工艺路线\\n"); } else if (!sortno || tc_strlen(sortno) == 0) { char* mos = NULL; ITKCALL(AOM_ask_value_string(meops, "object_string", &mos)); - errMsg.append("请维护").append(mos).append("工艺路线的工序编码\n"); + errMsg.append("请维护").append(mos).append("工艺路线的工序编码\\n"); } } if (comp != NULLTAG) { @@ -646,6 +673,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m //tag_t item2; char *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL; ITKCALL(AOM_UIF_ask_value(crev, "zt2_MaterialNo", &zt2_MaterialNo2)); + if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) { + errMsg.append(line_os).append("物料号为空;"); + } //ITKCALL(ITEM_ask_item_of_rev(comp, &item2)); ITKCALL(AOM_ask_value_string(comp, "zt2_unit", &zt2_unit2)); items_item.IDNRK = zt2_MaterialNo2; @@ -672,7 +702,7 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m else { char* mos = NULL; ITKCALL(AOM_ask_value_string(rev, "object_string", &mos)); - errMsg.append(mos).append("未能匹配到对应的原材料\n"); + errMsg.append(mos).append("未能匹配到对应的原材料\\n"); items_item.IDNRK = ""; items_item.MEINS = ""; items_item.MENGE = ""; @@ -700,6 +730,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m ITKCALL(AOM_ask_value_string(partRev, "object_string", &os)); ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo)); log("zt2_MaterialNo ==>%s", zt2_MaterialNo); + if (!zt2_MaterialNo || tc_strlen(zt2_MaterialNo) == 0) { + errMsg.append(line_os).append("物料号为空;"); + } ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo)); _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; tag_t item; @@ -738,12 +771,21 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m } ITKCALL(AOM_UIF_ask_value(part2, "zt2_MaterialNo", &zt2_MaterialNo2)); - ITKCALL(ITEM_ask_item_of_rev(rev2, &item2)); + if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) { + buff.append("物料号为空;"); + } + ITKCALL(ITEM_ask_item_of_rev(part2, &item2)); ITKCALL(AOM_ask_value_string(item2, "zt2_unit", &zt2_unit2)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "bl_sequence_no", &bl_sequence_no)); ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_ClassificationNo", &sortno)); + if (!sortno || tc_strlen(sortno) == 0) { + buff.append("工序编码为空;"); + } ITKCALL(AOM_UIF_ask_value(c_line_tag, "ZT2_Remark", &ZT2_Remark)); ITKCALL(AOM_UIF_ask_value(rev2, "zt2_SapState", &zt2_SapState)); + char *line_os2 = NULL; + ITKCALL(AOM_ask_value_string(c_line_tag, "object_string", &line_os2)); + log("c_line_tag:%s\n", line_os2); char *menge = NULL;// = getZYSAPMENGE(rev2, NULLTAG, c_line_tag, false, codeRemark, errMsg); menge = (char*)MEM_alloc((16 + 1) * sizeof(char)); @@ -771,8 +813,9 @@ void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, m if (buff.length() > 0 && tc_strstr(errMsg.c_str(), msg.c_str()) == NULL) { errMsg.append("\\n").append(msg); } - if ((tc_strcmp(zt2_SapState, "已传") == 0 || tc_strcmp(zt2_SapState, "2") == 0) && !isZT) { - continue; + log("zt2_SapState ===>%s", zt2_SapState); + if ((tc_strcmp(zt2_SapState, "已传") == 0 || tc_strcmp(zt2_SapState, "3") == 0) && !isZT) { + //continue; } recurZYGGSAPNoProc(rev2, part2, groupName, c_line_tag, gy_meops, needTCM_meops, now, proclist, bomIsExist, list, codeRemark, unct, by_materials, isZT, errMsg, inCcpMap, ccpMaterialMap, matr); @@ -812,6 +855,24 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w codeRemark = v2[2]; } } + pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + if (pref_cnt < 3) { + errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n"); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } //记录是否有重复的出厂编号 vector isCheck_FactoryNos; //记录产成品 对应的 电气BOM集合 @@ -837,7 +898,7 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w //传递出厂编号的记录日志信息 log("出厂编号数量:%zd", list_Factorys.size()); logCcbh(list_Factorys); - sendFactoryNo(list_Factorys); + sendFactoryNo(list_Factorys, urls[0]); tag_t designRev = NULLTAG; if (num > 0) { int n_references = 0; @@ -922,7 +983,7 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w ExecuteSQLNoInputParam((char*)"commit"); //错误数据已发送飞书提醒 - sendNotice(code, errMsgBuf, wbs, userName, projectName); + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); return; } char *zt2_BOMScheme = NULL; @@ -948,7 +1009,7 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w } if (proclist.size() > 0) { logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; - sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); + sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist); } ITKCALL(BOM_close_window(ebom_window)); @@ -957,7 +1018,7 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w //传递BOM //logBomMsg(list); //sendBom(list, sendMsg); - startSplitSend(groupName, mapList, code, wbs, inCcpMap); + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); //sendBom(list); } else { diff --git a/DFL_BOM_WL_TOERP/SAPZZNewOp.cxx b/DFL_BOM_WL_TOERP/SAPZZNewOp.cxx index da0ea14..07cffd2 100644 --- a/DFL_BOM_WL_TOERP/SAPZZNewOp.cxx +++ b/DFL_BOM_WL_TOERP/SAPZZNewOp.cxx @@ -31,31 +31,101 @@ tag_t getZZDesign(tag_t part, char* groupName) { } } } +// 根据材料利用率获取组件用量 +char* getMENGE(double dw, tag_t material, char* codeMark) { + //double dw = stod(zt2_zt2_DesignWeight); + double lyl = -1, res = 0; + string lylStr = getICSProperty(material, codeMark, "材料利用率"); + if (lylStr.size() > 0) { + lyl = stod(lylStr); + } + if (lyl > 0) { + res = dw / lyl; + } + char buffer[16]; + sprintf(buffer, "%.3f", res); + log("MENGE1:%f==%s", res, buffer); + return buffer; +} + +char* getSAPMENGE(tag_t design, tag_t part, tag_t line, boolean isBottom, char* codeMark, string& errMsg) { + //log("getZYSAPMENGE"); + char *os = NULL; + ITKCALL(AOM_UIF_ask_value(line, "object_string", &os)); + if (isBottom) { + char* ZT2_TYSpecifications = NULL, *ZT2_TYWeight = NULL; + ITKCALL(AOM_UIF_ask_value(line, "ZT2_TYSpecifications", &ZT2_TYSpecifications)); + if (ZT2_TYSpecifications && tc_strlen(ZT2_TYSpecifications) > 0) { + ITKCALL(AOM_UIF_ask_value(line, "ZT2_TYWeight", &ZT2_TYWeight)); + if (!ZT2_TYWeight || tc_strlen(ZT2_TYWeight) == 0) { + //log("getZYSAPMENGE1"); + errMsg.append(os).append("未填写通用件重量;"); + return "0"; + } + else { + //log("getZYSAPMENGE2"); + return getMENGE(stod(ZT2_TYWeight), part, codeMark); + } + } + else {// 非通用件 + double zt2_DesignWeight = 0; + ITKCALL(AOM_ask_value_double(design, "zt2_DesignWeight", &zt2_DesignWeight)); + char* ss = getMENGE(zt2_DesignWeight, part, codeMark); + if (tc_strlen(ss) == 0) { + //log("getZYSAPMENGE3"); + errMsg.append(os).append("未填写重量(zt2_DesignWeight);"); + return "0"; + } + //log("getZYSAPMENGE4"); + return ss; + } + } + else { + char* bl_quantity = NULL; + ITKCALL(AOM_UIF_ask_value(line, "bl_quantity", &bl_quantity)); + if (!bl_quantity || tc_strlen(bl_quantity) == 0) { + //log("getZYSAPMENGE5"); + errMsg.append(os).append("数量未填写(bl_quantity)"); + return "0"; + } + //log("getZYSAPMENGE6"); + double dw = stod(bl_quantity); + char buffer[16]; + sprintf(buffer, "%.3f", dw); + log("MENGE2:%f==%s", dw, buffer); + return buffer; + } +} -void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map& gy_meops, +void recurBYZZSAP(tag_t line, tag_t rev, tag_t partRev, char* groupName, map& gy_meops, vector& needTCM_meops, vector bomIsExist, vector set_meops, char* transfer, char* fa, - vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, - char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, int level, string& errMsg) { + vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* codeRemark, int unct, map& by_materials, + char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, int level, string& errMsg, string type1, vector dists) { + char *line_os = NULL; + ITKCALL(AOM_ask_value_string(line, "object_string", &line_os)); + log("recurBYZZSAP line:%s\n", line_os); int line_count = 0; tag_t *line_tags = NULL; ITKCALL(BOM_line_ask_all_child_lines(line, &line_count, &line_tags)); - tag_t meop = getProcessTag(zzRev, groupName); + tag_t meop = getProcessTag(rev, groupName); if (meop != NULLTAG && !isTcm2(meop) && find(set_meops.begin(), set_meops.end(), meop) == set_meops.end()) { set_meops.push_back(meop); } // 如果图纸下没有物料,则,判断此图纸版本上的属性zt2_Diagram属性 //如果此属性为是(LOV值,真实值为Y),则不传递此图纸,物料检查也不要报错,跳过此图纸以及子件 char *type = NULL; - ITKCALL(WSOM_ask_object_type2(zzRev, &type)); + ITKCALL(WSOM_ask_object_type2(rev, &type)); if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && partRev == NULLTAG) { char *zt2_Diagram = NULL; - ITKCALL(AOM_ask_value_string(zzRev, "zt2_Diagram", &zt2_Diagram)); + ITKCALL(AOM_ask_value_string(rev, "zt2_Diagram", &zt2_Diagram)); if (tc_strcmp(zt2_Diagram, "Y") == 0 || tc_strcmp(zt2_Diagram, "是") == 0) { return; } } - char *zt2_Source = NULL; - ITKCALL(AOM_UIF_ask_value(zzRev, "zt2_Source", &zt2_Source)); + char *zt2_Source = NULL, *zz_os = NULL; + ITKCALL(AOM_ask_value_string(rev, "object_string", &zz_os)); + ITKCALL(AOM_UIF_ask_value(rev, "zt2_Source", &zt2_Source)); + log("zzRev:%s==%s\n", zz_os, zt2_Source); boolean equals = tc_strcmp(zt2_Source, "外购") == 0; int c_line_count = 0; tag_t *c_line_tags = NULL; @@ -69,10 +139,10 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map split; + Split(item_id, "-", split); + string item_id_cut = ""; + if (split.size() > 1) { + for (int i = 0; i < split.size() - 1; i++) { + if (item_id_cut.size() > 0) { + item_id_cut.append("-"); + } + item_id_cut.append(split[i]); + } + } + if (find(dists.begin(), dists.end(), type) != dists.end()) { + log("框架BOM[%s]不进行原材料展开", item_id); + return; + } + if (tc_strcmp(type, "ZT2_Design3DRevision") == 0 && tc_strcmp(zt2_Source, "自制") == 0) { + tag_t comp = NULLTAG; + map materials; + if (tc_strcmp(type1.c_str(), "E") == 0) { + comp = getClassPartDB(rev, groupName, by_materials, materials, errMsg); + } + else { + comp = getClassPart(rev, codeRemark, unct, by_materials, errMsg); + } + // 原材料展开时投料工序获取父项的工艺首工序改为获取父项的投料工序 + char *sortno = NULL; + ITKCALL(AOM_ask_value_string(line, "ZT2_ClassificationNo", &sortno)); + log("工序编码 =>%s", sortno); + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_HEAD head; + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM* items_items = + new _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM[1]; + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS items; + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST_ITEMS_ITEM items_item; + if (partRev != NULLTAG) { + char *zt2_MaterialNo = NULL, *zt2_WBSNo = NULL, *zt2_unit = NULL; + ITKCALL(AOM_UIF_ask_value(partRev, "zt2_MaterialNo", &zt2_MaterialNo)); + log("zt2_MaterialNo ==>%s", zt2_MaterialNo); + tag_t item = NULLTAG; + ITKCALL(ITEM_ask_item_of_rev(partRev, &item)); + ITKCALL(AOM_ask_value_string(item, "zt2_unit", &zt2_unit)); + //char* unit = getUnti(zt2_unit); + log("str = [%s] \n", zt2_unit); + ITKCALL(AOM_UIF_ask_value(partRev, "zt2_WBSNo", &zt2_WBSNo)); + if (!zt2_WBSNo || tc_strcmp(zt2_WBSNo, "") == 0) { + head.PSPNR = ""; + } + else { + head.PSPNR = zt2_WBSNo; + } + head.MATNR = zt2_MaterialNo; + head.BMEIN = zt2_unit; + } + head.STLAN = (char*)"1"; + head.STLAL = (char*)"1"; + head.BMENG = (char*)"1"; + head.WERKS = groupName; + head.DATUV = now; + char* parnetUid; + ITK__convert_tag_to_uid(partRev, &parnetUid); + head.STKTX = parnetUid; + //inCcpMap[parnetUid] = ccpMaterialMap; + + items_item.DATUV = now; + items_item.POSTP = (char*)"L"; + items_item.POSNR = "0010"; + if (!sortno || tc_strlen(sortno) == 0) { + char* mos = NULL; + ITKCALL(AOM_ask_value_string(rev, "object_string", &mos)); + errMsg.append("自制件").append(mos).append("未投料\\n"); + } + if (comp != NULLTAG) { + tag_t crev = NULLTAG; + char *os = NULL; + ITKCALL(ITEM_ask_latest_rev(comp, &crev)); + ITKCALL(AOM_ask_value_string(crev, "object_string", &os)); + log("原材料 =>%s", os); + //tag_t item2; + char *zt2_MaterialNo2 = NULL, *zt2_unit2 = NULL; + ITKCALL(AOM_UIF_ask_value(crev, "zt2_MaterialNo", &zt2_MaterialNo2)); + if (!zt2_MaterialNo2 || tc_strlen(zt2_MaterialNo2) == 0) { + errMsg.append(line_os).append("物料号为空;"); + } + //ITKCALL(ITEM_ask_item_of_rev(comp, &item2)); + ITKCALL(AOM_ask_value_string(comp, "zt2_unit", &zt2_unit2)); + items_item.IDNRK = zt2_MaterialNo2; + //char* unit22 = getUnti(zt2_unit2); + items_item.MEINS = zt2_unit2; + char *menge = NULL; + menge = (char*)MEM_alloc((16 + 1) * sizeof(char)); + if (tc_strcmp(type1.c_str(), "E") == 0) { + char *zt2_MaterialMark = NULL; + ITKCALL(AOM_UIF_ask_value(rev, "zt2_MaterialMark", &zt2_MaterialMark)); + if (materials.count(zt2_MaterialMark) > 0) { + tc_strcpy(menge, getZYSAPMENGE2(materials[zt2_MaterialMark], rev, line, true, errMsg)); + } + else { + tc_strcpy(menge, getSAPMENGE(rev, crev, line, true, codeRemark, errMsg)); + } + } + else { + tc_strcpy(menge, getSAPMENGE(rev, crev, line, true, codeRemark, errMsg)); + } + items_item.MENGE = menge; + } + else { + char* mos = NULL; + ITKCALL(AOM_ask_value_string(rev, "object_string", &mos)); + errMsg.append(mos).append("未能匹配到对应的原材料\\n"); + items_item.IDNRK = ""; + items_item.MEINS = ""; + items_item.MENGE = ""; + } + items_item.SORTF = sortno; + items_item.POTX1 = ""; + + items_items[0] = items_item; + items.ITEM = items_items; + items.__sizeITEM = 1;/**/ + _ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST list1; + list1.HEAD = head; + //log("list1.HEAD %s ", list1.HEAD.BMEIN); + list1.ITEMS = items; + log("list %zd ", list.size()); + list.push_back(list1); + } return; } char *os = NULL; @@ -138,8 +335,11 @@ void recurBYZZSAP(tag_t line, tag_t zzRev, tag_t partRev, char* groupName, map ccpVector, char* projectNo, char* groupName, char* wbs, - char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type) { +void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf, + char*code, char* transfer, char* userName, char* type, vector dists, char* projectName) { log("************** SAPZZNewOp **************"); + int pref_cnt = 0; + char **pref = NULL; + string codeRemark = "ICM0801"; + vector matr; + ITKCALL(PREF_ask_char_values("CHINT_ORG_TechnologyClassification", &pref_cnt, &pref)); + for (int i = 0; i < pref_cnt; i++) { + vector v1, v2; + Split(pref[i], ":", v1); + if (tc_strcmp(v1[0].c_str(), groupName) != 0) { + continue; + } + Split(v1[1], ";", v2); + if (v2.size() == 4) { + codeRemark = v2[2]; + Split(v2[2], "\\", matr); + } + else if (v2.size() > 2) { + codeRemark = v2[2]; + } + } + pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + if (pref_cnt < 3) { + errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n"); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } + int unct = getIcsId((char*)codeRemark.c_str(), "材料标记"); map> mapList; string sendMsg; map> inCcpMap;//记录单元对应的产成品物料编码 @@ -345,7 +584,7 @@ void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* inCcpMap[revUid] = ccpMaterialMap; recurBYZZSAP(line, zzRev, partRev, groupName, gy_meops, needTCM_meops, bomIsExist, set_meops, transfer, type, - list, now, proclist, 1, errMsg); + list, (char*)codeRemark.c_str(), unct, by_materials, now, proclist, 1, errMsg, type, dists); //log("errMsg =>%s", errMsg.c_str()); string logmsg = "errMsg =>"; //log2(logmsg.append(errMsg)); @@ -358,7 +597,7 @@ void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* } if (proclist.size() > 0) { logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; - sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); + sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist); } ITKCALL(BOM_close_window(window)); } @@ -366,7 +605,167 @@ void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* //传递BOM //logBomMsg(list); //sendBom(list, sendMsg); - startSplitSend(groupName, mapList, code, wbs, inCcpMap); + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); + //sendBom(list); + } + else { + string time1 = getPlmTime(code); + string updateSum = "update CHINT_BOM_TO_SAP_SUM set datastatus = '没有合法BOM',organizationaltime = '%s',taskstauts = '组织完成',PLMFINISHTIME = SYSDATE where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), time1.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + } +} + +void SAPPartZYOp2(vector ccpVector, char* projectNo, char* groupName, char* wbs, + char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, char* projectName) { + + log("************** SAPPartZYOp2 **************"); + int pref_cnt = 0; + char **pref = NULL; + string codeRemark = "ICM0801"; + vector matr; + ITKCALL(PREF_ask_char_values("CHINT_ORG_TechnologyClassification", &pref_cnt, &pref)); + for (int i = 0; i < pref_cnt; i++) { + vector v1, v2; + Split(pref[i], ":", v1); + if (tc_strcmp(v1[0].c_str(), groupName) != 0) { + continue; + } + Split(v1[1], ";", v2); + if (v2.size() == 4) { + codeRemark = v2[2]; + Split(v2[2], "\\", matr); + } + else if (v2.size() > 2) { + codeRemark = v2[2]; + } + } + pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + if (pref_cnt < 3) { + errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n"); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } + map> mapList; + map> inCcpMap;//记录单元对应的产成品物料编码 + for (int len = 0; len < ccpVector.size(); len++) { + tag_t rev = ccpVector[len], *factoryNos; + char* revUid; + ITK__convert_tag_to_uid(rev, &revUid); + log("产成品UID:%s", revUid); + char *type = NULL; + ITKCALL(WSOM_ask_object_type2(rev, &type)); + if (tc_strcmp(type, "ZT2_Design3DRevision") != 0 && tc_strcmp(type, "Part Revision") != 0) { + continue; + } + int num = 0; + ITKCALL(AOM_ask_value_tags(rev, "ZT2_FactoryNumber", &num, &factoryNos)); + tag_t designRev = NULLTAG; + if (num > 0) { + int n_references = 0; + int* levels = 0; + tag_t* references_tag; + char** relation_type_name = NULL; + //通过出厂编号查找到图纸 + ITKCALL(WSOM_where_referenced(factoryNos[0], 1, &n_references, &levels, &references_tag, &relation_type_name)); + for (int i = 0; i < n_references; i++) { + if (tc_strcmp(relation_type_name[i], "ZT2_FactoryNumber") == 0) { + char *type2 = NULL; + ITKCALL(WSOM_ask_object_type2(references_tag[i], &type2)); + if (tc_strcmp(type2, "ZT2_Design3DRevision") == 0) { + designRev = references_tag[i]; + break; + } + } + } + } + if (designRev == NULLTAG) { + designRev = rev; + } + tag_t ebom_window = NULLTAG, line = NULLTAG; + ITKCALL(BOM_create_window(&ebom_window)); + ITKCALL(BOM_set_window_top_line(ebom_window, NULL, designRev, NULLTAG, &line)); + + char *ccpMaterialNo = NULL; + ITKCALL(AOM_ask_value_string(rev, "zt2_MaterialNo", &ccpMaterialNo)); + int unct = getIcsId((char*)codeRemark.c_str(), "材料标记"); + vector <_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list; + vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; + map gy_meops; //避免重复工艺路线 + vector needTCM_meops;//没用上 + vector bomIsExist; + map by_materials; + vector ccpMaterialMap; + ccpMaterialMap.push_back(ccpMaterialNo); + inCcpMap[revUid] = ccpMaterialMap; + string errMsg = ""; + recurZYGGSAPNoProc(designRev, rev, groupName, line, gy_meops, needTCM_meops, now, proclist, bomIsExist, + list, (char*)codeRemark.c_str(), unct, by_materials, false, errMsg, inCcpMap, ccpMaterialMap, matr); + //log("errMsg =>%s", errMsg.c_str()); + string logmsg = "errMsg =>"; + //log2(logmsg.append(errMsg)); + logmsg.append(errMsg); + printf("%s\n", logmsg.c_str()); + info(logmsg.c_str()); + if (errMsg.length() > 0) { + errMsgBuf.append("BOM异常:\\n").append(errMsg); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = '数据检查有问题' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } + char *zt2_BOMScheme = NULL; + ITKCALL(AOM_UIF_ask_value(rev, "zt2_BOMScheme", &zt2_BOMScheme)); + if (list.size() > 0 && strcmp(zt2_BOMScheme, "汇总") == 0) { + char* zt2_Quantity; + ITKCALL(AOM_ask_value_string(rev, "zt2_Quantity", &zt2_Quantity)); + if (strstr(zt2_Quantity, "") != 0) { + int quantity = atoi(zt2_Quantity); + if (quantity == 0) { + quantity = 1; + } + int size = list.size(); + char* s = new char[10]; + _itoa(quantity, s, 10); + list[size - 1].HEAD.BMENG = s; + //head.BMENG = (char*)to_string(quantity).c_str(); + } + } + if (list.size() > 0) { + //logBomMsg(list); + mapList[rev] = list; + } + ITKCALL(BOM_close_window(ebom_window)); + } + if (mapList.size() > 0) { + //传递BOM + //logBomMsg(list); + //sendBom(list, sendMsg); + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); //sendBom(list); } else { @@ -397,6 +796,24 @@ void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* void getKTBom(vector ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName) { log("************** getKTBom **************"); + int pref_cnt = 0; + char **urls = NULL; + ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls)); + if (pref_cnt < 3) { + errMsgBuf.append("CHINT_BomUrl_YB首选项配置不正确\\n"); + // + string updateSum = "update CHINT_BOM_TO_SAP_SUM set \"DATASTATUS\" = 'CHINT_BomUrl_YB首选项配置不正确' ,SAPRESULT = 'PLM检查未通过',PLMRESULT = '已发送飞书通知' where code = '%s' "; + char selectRxfs[800]; + string timel; + sprintf(selectRxfs, updateSum.c_str(), code); + log("selectRecord2 ===> %s\n", selectRxfs); + ExecuteSQLNoInputParam(selectRxfs); + ExecuteSQLNoInputParam((char*)"commit"); + + //错误数据已发送飞书提醒 + sendNotice(code, errMsgBuf, wbs, groupName, userName, projectName); + return; + } //记录是否有重复的出厂编号 vector isCheck_FactoryNos; //记录产成品 对应的 电气BOM集合 @@ -478,7 +895,7 @@ void getKTBom(vector ccpVector, char* projectNo, char* groupName, char* w //传递出厂编号的记录日志信息 log("出厂编号数量 num :%zd\n", list_Factorys.size()); logCcbh(list_Factorys); - sendFactoryNo(list_Factorys); + sendFactoryNo(list_Factorys, urls[0]); vector <_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST> list; vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; @@ -631,7 +1048,7 @@ void getKTBom(vector ccpVector, char* projectNo, char* groupName, char* w } if (proclist.size() > 0) { logProcessMsg(proclist);// vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist; - sendProcess(proclist, sendMsg);//proclists.push_back(proclist);//sendProcess(proclist); + sendProcess(proclist, sendMsg, urls[1]);//proclists.push_back(proclist);//sendProcess(proclist); } } } @@ -639,7 +1056,7 @@ void getKTBom(vector ccpVector, char* projectNo, char* groupName, char* w //传递BOM //logBomMsg(list); //sendBom(list, sendMsg); - startSplitSend(groupName, mapList, code, wbs, inCcpMap); + startSplitSend(groupName, mapList, code, wbs, inCcpMap, urls[2]); //sendBom(list); } else { diff --git a/DFL_BOM_WL_TOERP/SendSap.h b/DFL_BOM_WL_TOERP/SendSap.h index aa62faa..36cda5f 100644 --- a/DFL_BOM_WL_TOERP/SendSap.h +++ b/DFL_BOM_WL_TOERP/SendSap.h @@ -26,15 +26,26 @@ boolean isTcm2(tag_t mantr); void getFactoryNoList(char* projectNo, char* groupName, char* wbs, tag_t* factoryNos, int num, tag_t ccp, vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM>& list); void logCcbh(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys); -void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys); +void sendFactoryNo(vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys, char* url); void readBopInfo1YH(tag_t rev, tag_t partRev, boolean flag, map& gy_meops, vector& needTCM_meops, char* groupName, char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist); char* getUnti(char* unti); void startSplitSend(char*groupId, map> mapList, - char *code, char *wbsNo, map> inCcpMap); + char *code, char *wbsNo, map> inCcpMap, char* url); string getPlmTime(char *code); void logProcessMsg(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist); -void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg); -void sendNotice(char *code, string errMsg, char *wbsNo, char *userName, char* projectName); \ No newline at end of file +void sendProcess(vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST> proclist, string& sendMsg, char* url); +void sendNotice(char *code, string errMsg, char *wbsNo, char *groupName, char *userName, char* projectName); + +void recurZYGGSAPNoProc(tag_t rev, tag_t partRev, char *groupName, tag_t line, map& gy_meops, vector& needTCM_meops, + char* now, vector <_ns1__DT_USCOREPROCESSROUTE_USCORES4_USCOREREQ_LIST>& proclist, vector& bomIsExist, + vector<_ns1__DT_USCOREBOM_USCORES4_USCOREREQ_LIST>& list, char* codeRemark, int unct, map& by_materials, + boolean isZT, string& errMsg, map>& inCcpMap, vector ccpMaterialMap, vector matr); +int getIcsId(char* codeRemark, char* property); +tag_t getClassPartDB(tag_t rev, char* groupName, map& by_materials, map& materials, string& errMsg); +tag_t getClassPart(tag_t rev, char* codeRemark, int unct, map& by_materials, string& errMsg); +char* getZYSAPMENGE2(string lylStr, tag_t design, tag_t line, boolean isBottom, string& errMsg); +string getICSProperty(tag_t comp, char* codeRemark, char* prop); +char* getZYCCPSortNo(tag_t comp); \ No newline at end of file diff --git a/DFL_BOM_WL_TOERP/dfl_custom.h b/DFL_BOM_WL_TOERP/dfl_custom.h index cb18dff..390ec44 100644 --- a/DFL_BOM_WL_TOERP/dfl_custom.h +++ b/DFL_BOM_WL_TOERP/dfl_custom.h @@ -19,10 +19,24 @@ using namespace std; #define ERROR_QRY_NOT_FOUND (EMH_USER_error_base + 120) +struct FlowBean { + vector flowList; + tag_t flow_split = NULLTAG; + tag_t flow_combine = NULLTAG; + tag_t flow_end = NULLTAG; + char* BEZFL; // 参考顺序 + string PLNFL = ""; // 序列 + boolean isMain = true; + boolean isOther = false; + vector flow_combine_list; +}; //int readBomMsg(vector uidList,char * groupName,char* groupUid, char*code, char*userName); void getCcpAndBom(vector ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); void Split(string strArg, string spliter, vector& ans); +char* getGXNR(tag_t gxLine); +FlowBean getClone(FlowBean oldBean); +void getSort(vector& flowBeans); tag_t getSAPPart(tag_t rev, char* groupName); tag_t getZYDesign(tag_t rev); @@ -35,11 +49,17 @@ void SAPZYGG2(vector ccpVector, char* projectNo, char* groupName, char* w char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); void SAPZZNewOp(vector ccpVector, char* projectNo, char* groupName, char* wbs, - char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type); + char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, vector dists, char* projectName); void getKTBom(vector ccpVector, char* projectNo, char* groupName, char* wbs, char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); +void BomSapWh(vector ccpVector, char* projectNo, char* groupName, char* wbs, + char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* projectName); + +void SAPPartZYOp2(vector ccpVector, char* projectNo, char* groupName, char* wbs, + char* now, string& errMsgBuf, char*code, char* transfer, char* userName, char* type, char* projectName); + typedef struct { string ID; }DFL_ID; diff --git a/DFL_BOM_WL_TOERP/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.cpp b/DFL_BOM_WL_TOERP/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.cpp index f9c517b..b8a6bff 100644 --- a/DFL_BOM_WL_TOERP/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.cpp +++ b/DFL_BOM_WL_TOERP/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.cpp @@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com */ #include "soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.h" +#include "util.h" SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy::SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy() : soap(SOAP_IO_DEFAULT) { @@ -169,7 +170,10 @@ int SIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy::send_SIO_USCOREBOM_USCOREPLM if (soap_endpoint_url != NULL) soap_endpoint = soap_endpoint_url; if (soap_endpoint == NULL) - soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + //soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + soap_endpoint = "http://gfpot01:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SIO_BOM_PLM_ASYN&interfaceNamespace=urn:chintelectric.com%3Axi%3Aplm"; + + log("sendBom==>%s", soap_endpoint); if (soap_action == NULL) soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_tmp___ns1__SIO_USCOREBOM_USCOREPLM_USCOREASYN.ns1__MT_USCOREBOM_USCORES4_USCOREREQ = ns1__MT_USCOREBOM_USCORES4_USCOREREQ; diff --git a/DFL_BOM_WL_TOERP/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp b/DFL_BOM_WL_TOERP/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp index 764da31..5e3c173 100644 --- a/DFL_BOM_WL_TOERP/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp +++ b/DFL_BOM_WL_TOERP/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp @@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com */ #include "soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h" +#include "util.h" SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT) { SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); @@ -148,7 +149,8 @@ int SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::sen if (soap_endpoint_url != NULL) soap_endpoint = soap_endpoint_url; if (soap_endpoint == NULL) - soap_endpoint = "http://10.10.101.219:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm https://gfpoapp:50101/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm https://gfpoapp:50101/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_FACTORY_NUMBER_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + log("sendFactoryNo==>%s", soap_endpoint); if (soap_action == NULL) soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_tmp___ns1__SI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ = ns1__MT_USCOREFACTORY_USCORENUMBER_USCOREREQ; diff --git a/DFL_BOM_WL_TOERP/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp b/DFL_BOM_WL_TOERP/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp index da8616a..c093746 100644 --- a/DFL_BOM_WL_TOERP/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp +++ b/DFL_BOM_WL_TOERP/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.cpp @@ -12,6 +12,7 @@ A commercial use license is available from Genivia Inc., contact@genivia.com */ #include "soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.h" +#include "util.h" SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy() : soap(SOAP_IO_DEFAULT) { SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy_init(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT); @@ -147,7 +148,8 @@ int SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy::send_SI_USC if (soap_endpoint_url != NULL) soap_endpoint = soap_endpoint_url; if (soap_endpoint == NULL) - soap_endpoint = "http://10.10.101.219:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_PROCESSROUTE_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + soap_endpoint = "http://192.168.0.184:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_CHINT_ELECTRIC&receiverParty=&receiverService=&interface=SI_PROCESSROUTE_PLM_OUT_SYN&interfaceNamespace=urn%3Achintelectric.com%3Axi%3Aplm"; + log("sendProcess==>%s", soap_endpoint); if (soap_action == NULL) soap_action = "http://sap.com/xi/WebService/soap1.1"; soap_tmp___ns1__SI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYN.ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ = ns1__MT_USCOREPROCESSROUTE_USCORES4_USCOREREQ; diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMSendSap.obj b/DFL_BOM_WL_TOERP/x64/Release/BOMSendSap.obj index 720c6b2..cad3c2d 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMSendSap.obj and b/DFL_BOM_WL_TOERP/x64/Release/BOMSendSap.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.command.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.command.1.tlog index 8996274..0098843 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.command.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.command.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.read.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.read.1.tlog index b59a9ea..25faa10 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.read.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.read.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.write.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.write.1.tlog index 19ad08a..2f841e2 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.write.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/CL.write.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.command.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.command.1.tlog index 7cf9b2d..ca2b859 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.command.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.command.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.read.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.read.1.tlog index 782cb47..7e5138a 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.read.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.read.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.write.1.tlog b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.write.1.tlog index 8967a41..1d7b242 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.write.1.tlog and b/DFL_BOM_WL_TOERP/x64/Release/BOMToSapOpt.tlog/link.write.1.tlog differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/BomSapWh.obj b/DFL_BOM_WL_TOERP/x64/Release/BomSapWh.obj new file mode 100644 index 0000000..106f53f Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/BomSapWh.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/CRUL_server_call_httpserver.obj b/DFL_BOM_WL_TOERP/x64/Release/CRUL_server_call_httpserver.obj index 36f087b..8277f98 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/CRUL_server_call_httpserver.obj and b/DFL_BOM_WL_TOERP/x64/Release/CRUL_server_call_httpserver.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/DFL_BOM_WL_TOERP.log b/DFL_BOM_WL_TOERP/x64/Release/DFL_BOM_WL_TOERP.log index abc8c26..9a20737 100644 --- a/DFL_BOM_WL_TOERP/x64/Release/DFL_BOM_WL_TOERP.log +++ b/DFL_BOM_WL_TOERP/x64/Release/DFL_BOM_WL_TOERP.log @@ -1,8 +1,8 @@ -锘跨敓鎴愬惎鍔ㄦ椂闂翠负 2024/4/16 16:26:14銆 +锘跨敓鎴愬惎鍔ㄦ椂闂翠负 2024/7/12 10:30:09銆 1>椤圭洰鈥淶:\TC_install\ZhengTai\c\GetBOMProp\DFL_BOM_WL_TOERP\DFL_BOM_WL_TOERP.vcxproj鈥濆湪鑺傜偣 2 涓(Build 涓洰鏍)銆 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(392,5): warning MSB8028: The intermediate directory (x64\Release\) contains files shared from another project (DFL_BOM_WL_TOERP1.vcxproj, DFL_BOM_WL_TOERP.vcxproj, GetBomMessage.vcxproj, GetBOMProp.vcxproj, GetBOMProp2.vcxproj). This can lead to incorrect clean and rebuild behavior. 1>ClCompile: - D:\VS2015\VC\bin\x86_amd64\CL.exe /c /IZ:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\include\ /IZ:\TC_install\ZhengTai\c\sdplog\include /I"Z:\TC_install\ZhengTai\c\libcurl-vc15-x64-release-dll-ipv6-sspi-schannel\include" /IZ:\TC_install\YSR\c\clib\OCI\include /IZ:\TC_install\jingdiao\c\tclib\include /IZ:\TC_install\jingdiao\c\tclib\include_cpp /IZ:\TC_install\ZhengTai\c\libxl\include /Zi /nologo /W3 /WX- /sdl /O2 /Oi /GL /D WIN32 /D NDEBUG /D _CONSOLE /D IPLIB=none /D _UNICODE /D UNICODE /Gm- /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Release\\" /Fd"x64\Release\vc140.pdb" /Gd /TP /errorReport:prompt /D _CRT_SECURE_NO_WARNINGS BOMSendSap.cpp GetBOMProp.cpp SAPZYGG2.cxx + D:\VS2015\VC\bin\x86_amd64\CL.exe /c /IZ:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\include\ /IZ:\TC_install\ZhengTai\c\sdplog\include /I"Z:\TC_install\ZhengTai\c\libcurl-vc15-x64-release-dll-ipv6-sspi-schannel\include" /IZ:\TC_install\YSR\c\clib\OCI\include /IZ:\TC_install\jingdiao\c\tclib\include /IZ:\TC_install\jingdiao\c\tclib\include_cpp /IZ:\TC_install\ZhengTai\c\libxl\include /Zi /nologo /W3 /WX- /sdl /O2 /Oi /GL /D WIN32 /D NDEBUG /D _CONSOLE /D IPLIB=none /D _UNICODE /D UNICODE /Gm- /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"x64\Release\\" /Fd"x64\Release\vc140.pdb" /Gd /TP /errorReport:prompt /D _CRT_SECURE_NO_WARNINGS BOMSendSap.cpp BOMSendSap.cpp 1>D:\VS2015\VC\include\xlocale(341): warning C4530: 浣跨敤浜 C++ 寮傚父澶勭悊绋嬪簭锛屼絾鏈惎鐢ㄥ睍寮璇箟銆傝鎸囧畾 /EHsc 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 璇ユ枃浠跺寘鍚笉鑳藉湪褰撳墠浠g爜椤(936)涓〃绀虹殑瀛楃銆傝灏嗚鏂囦欢淇濆瓨涓 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹涪澶 @@ -41,199 +41,60 @@ 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: 鈥淭eamcenter::EPMTask::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::EPMTask鈥濈殑瀹㈡埛绔娇鐢 1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 鐢遍氱敤瀛楃鍚嶇О鈥淺u00B5鈥濊〃绀虹殑瀛楃涓嶈兘鍦ㄥ綋鍓嶄唬鐮侀〉(936)涓〃绀哄嚭鏉 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: 鈥淭eamcenter::Item::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::Item鈥濈殑瀹㈡埛绔娇鐢 - 1>BOMSendSap.cpp(151): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(194): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(205): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘淿_int64鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(237): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(286): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(320): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(335): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(142): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(185): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(196): warning C4244: 鈥滃垵濮嬪寲鈥: 浠庘淿_int64鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(228): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(277): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(311): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(326): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(336): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(327): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(337): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(328): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(389): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. + 1>BOMSendSap.cpp(380): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 鍙傝鈥淲SOM_where_referenced鈥濈殑澹版槑 - 1>BOMSendSap.cpp(479): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(568): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(622): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(596): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(470): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(559): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(613): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(587): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(597): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(588): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(598): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(589): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(599): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(590): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(600): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(591): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(601): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(592): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(724): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(676): warning C4101: 鈥渋temID鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 - 1>BOMSendSap.cpp(979): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(926): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(715): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(667): warning C4101: 鈥渋temID鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 + 1>BOMSendSap.cpp(745): warning C4101: 鈥渮t2_Diagram鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 + 1>BOMSendSap.cpp(807): warning C4101: 鈥減rop3鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 + 1>BOMSendSap.cpp(807): warning C4101: 鈥減rop0鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 + 1>BOMSendSap.cpp(970): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(917): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(938): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. + 1>BOMSendSap.cpp(929): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 鍙傝鈥淲SOM_where_referenced鈥濈殑澹版槑 - 1>BOMSendSap.cpp(1162): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(1176): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>BOMSendSap.cpp(1075): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(1153): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(1167): warning C4267: 鈥=鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 + 1>BOMSendSap.cpp(1066): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(1661): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. + 1>BOMSendSap.cpp(1691): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 鍙傝鈥淲SOM_where_referenced鈥濈殑澹版槑 - 1>BOMSendSap.cpp(1682): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(1712): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>BOMSendSap.cpp(1683): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. + 1>BOMSendSap.cpp(1713): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. Z:\TC_install\jingdiao\c\tclib\include\tccore/aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>D:\VS2015\VC\include\exception(361): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc - GetBOMProp.cpp - 1>D:\VS2015\VC\include\xlocale(341): warning C4530: 浣跨敤浜 C++ 寮傚父澶勭悊绋嬪簭锛屼絾鏈惎鐢ㄥ睍寮璇箟銆傝鎸囧畾 /EHsc - 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 璇ユ枃浠跺寘鍚笉鑳藉湪褰撳墠浠g爜椤(936)涓〃绀虹殑瀛楃銆傝灏嗚鏂囦欢淇濆瓨涓 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹涪澶 - 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(5417): warning C4819: 璇ユ枃浠跺寘鍚笉鑳藉湪褰撳墠浠g爜椤(936)涓〃绀虹殑瀛楃銆傝灏嗚鏂囦欢淇濆瓨涓 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹涪澶 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\base_utils/IFail.hxx(114): warning C4251: 鈥淚Fail::m_message鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淚Fail鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 鐢遍氱敤瀛楃鍚嶇О鈥淺u00B5鈥濊〃绀虹殑瀛楃涓嶈兘鍦ㄥ綋鍓嶄唬鐮侀〉(936)涓〃绀哄嚭鏉 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(90): warning C4251: 鈥淭eamcenter::RootObject::m_typeName鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RootObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(95): warning C4251: 鈥淭eamcenter::RootObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RootObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/OperationInput.hxx(414): warning C4251: 鈥淭eamcenter::OperationInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::OperationInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkInput.hxx(120): warning C4251: 鈥淭eamcenter::BulkInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BulkInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkData.hxx(123): warning C4251: 鈥淭eamcenter::BulkData::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BulkData鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/DeepCopyData.hxx(93): warning C4251: 鈥淭eamcenter::DeepCopyData::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::DeepCopyData鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/CreateInput.hxx(140): warning C4251: 鈥淭eamcenter::CreateInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::CreateInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/SaveAsInput.hxx(93): warning C4251: 鈥淭eamcenter::SaveAsInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::SaveAsInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BusinessObject.hxx(666): warning C4251: 鈥淭eamcenter::BusinessObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BusinessObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\extensionframework/OperationDispatcher.hxx(439): warning C4251: 鈥淭eamcenter::OperationDispatcher::m_boName鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::OperationDispatcher鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_object.hxx(253): warning C4251: 鈥淭eamcenter::POM_object::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::POM_object鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore\imantype.hxx(225): warning C4251: 鈥淭eamcenter::ImanType::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ImanType鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(55): warning C4251: 鈥淭eamcenter::FeatureKeyCheck::featureKey鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheck鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(74): warning C4251: 鈥淭eamcenter::FeatureKeyCheckAND::featureKeyChecks鈥: class鈥渟td::vector>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheckAND鈥濈殑瀹㈡埛绔娇鐢 - with - [ - _Ty=Teamcenter::FeatureKeyCheck * - ] - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(95): warning C4251: 鈥淭eamcenter::FeatureKeyCheckOR::featureKeyChecks鈥: class鈥渟td::vector>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheckOR鈥濈殑瀹㈡埛绔娇鐢 - with - [ - _Ty=Teamcenter::FeatureKeyCheck * - ] - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/ReviseInput.hxx(93): warning C4251: 鈥淭eamcenter::ReviseInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ReviseInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RuntimeBusinessObject.hxx(93): warning C4251: 鈥淭eamcenter::RuntimeBusinessObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RuntimeBusinessObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tc/Fnd0BaseProvider.hxx(103): warning C4251: 鈥淭eamcenter::Fnd0BaseProvider::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::Fnd0BaseProvider鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_application_object.hxx(149): warning C4251: 鈥淭eamcenter::POM_application_object::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::POM_application_object鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/WorkspaceObject.hxx(567): warning C4251: 鈥淭eamcenter::WorkspaceObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::WorkspaceObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/ItemRevision.hxx(518): warning C4251: 鈥淭eamcenter::ItemRevision::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ItemRevision鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: 鈥淭eamcenter::EPMTask::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::EPMTask鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: 鈥淭eamcenter::Item::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::Item鈥濈殑瀹㈡埛绔娇鐢 - 1>GetBOMProp.cpp(85): warning C4101: 鈥渞evUid鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 - 1>GetBOMProp.cpp(98): warning C4101: 鈥渃cp鈥: 鏈紩鐢ㄧ殑灞閮ㄥ彉閲 - 1>D:\VS2015\VC\include\limits(214): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc - SAPZYGG2.cxx - 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(806): warning C4819: 璇ユ枃浠跺寘鍚笉鑳藉湪褰撳墠浠g爜椤(936)涓〃绀虹殑瀛楃銆傝灏嗚鏂囦欢淇濆瓨涓 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹涪澶 - 1>Z:\TC_install\jingdiao\c\tclib\include\pom/pom/pom.h(5417): warning C4819: 璇ユ枃浠跺寘鍚笉鑳藉湪褰撳墠浠g爜椤(936)涓〃绀虹殑瀛楃銆傝灏嗚鏂囦欢淇濆瓨涓 Unicode 鏍煎紡浠ラ槻姝㈡暟鎹涪澶 - 1>D:\VS2015\VC\include\xlocale(341): warning C4530: 浣跨敤浜 C++ 寮傚父澶勭悊绋嬪簭锛屼絾鏈惎鐢ㄥ睍寮璇箟銆傝鎸囧畾 /EHsc - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(90): warning C4251: 鈥淭eamcenter::RootObject::m_typeName鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RootObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RootObject.hxx(95): warning C4251: 鈥淭eamcenter::RootObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RootObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/OperationInput.hxx(414): warning C4251: 鈥淭eamcenter::OperationInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::OperationInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkInput.hxx(120): warning C4251: 鈥淭eamcenter::BulkInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BulkInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BulkData.hxx(123): warning C4251: 鈥淭eamcenter::BulkData::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BulkData鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/DeepCopyData.hxx(93): warning C4251: 鈥淭eamcenter::DeepCopyData::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::DeepCopyData鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/CreateInput.hxx(140): warning C4251: 鈥淭eamcenter::CreateInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::CreateInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/SaveAsInput.hxx(93): warning C4251: 鈥淭eamcenter::SaveAsInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::SaveAsInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/BusinessObject.hxx(666): warning C4251: 鈥淭eamcenter::BusinessObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::BusinessObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\extensionframework/OperationDispatcher.hxx(439): warning C4251: 鈥淭eamcenter::OperationDispatcher::m_boName鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::OperationDispatcher鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_object.hxx(253): warning C4251: 鈥淭eamcenter::POM_object::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::POM_object鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore\imantype.hxx(225): warning C4251: 鈥淭eamcenter::ImanType::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ImanType鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\base_utils/IFail.hxx(114): warning C4251: 鈥淚Fail::m_message鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淚Fail鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(55): warning C4251: 鈥淭eamcenter::FeatureKeyCheck::featureKey鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheck鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(74): warning C4251: 鈥淭eamcenter::FeatureKeyCheckAND::featureKeyChecks鈥: class鈥渟td::vector>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheckAND鈥濈殑瀹㈡埛绔娇鐢 - with - [ - _Ty=Teamcenter::FeatureKeyCheck * - ] - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/FeatureKeyCheck.hxx(95): warning C4251: 鈥淭eamcenter::FeatureKeyCheckOR::featureKeyChecks鈥: class鈥渟td::vector>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::FeatureKeyCheckOR鈥濈殑瀹㈡埛绔娇鐢 - with - [ - _Ty=Teamcenter::FeatureKeyCheck * - ] - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/ReviseInput.hxx(93): warning C4251: 鈥淭eamcenter::ReviseInput::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ReviseInput鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\metaframework/RuntimeBusinessObject.hxx(93): warning C4251: 鈥淭eamcenter::RuntimeBusinessObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::RuntimeBusinessObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tc/Fnd0BaseProvider.hxx(103): warning C4251: 鈥淭eamcenter::Fnd0BaseProvider::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::Fnd0BaseProvider鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/POM_application_object.hxx(149): warning C4251: 鈥淭eamcenter::POM_application_object::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::POM_application_object鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/WorkspaceObject.hxx(567): warning C4251: 鈥淭eamcenter::WorkspaceObject::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::WorkspaceObject鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/ItemRevision.hxx(518): warning C4251: 鈥淭eamcenter::ItemRevision::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::ItemRevision鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\epm/EPMTask.hxx(1086): warning C4251: 鈥淭eamcenter::EPMTask::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::EPMTask鈥濈殑瀹㈡埛绔娇鐢 - 1>Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\lib\native\include\spdlog/fmt/bundled/core.h(327): warning C4566: 鐢遍氱敤瀛楃鍚嶇О鈥淺u00B5鈥濊〃绀虹殑瀛楃涓嶈兘鍦ㄥ綋鍓嶄唬鐮侀〉(936)涓〃绀哄嚭鏉 - 1>Z:\TC_install\jingdiao\c\tclib\include_cpp\tccore/Item.hxx(347): warning C4251: 鈥淭eamcenter::Item::name鈥: class鈥渟td::basic_string,std::allocator>鈥濋渶瑕佹湁 dll 鎺ュ彛鐢 class鈥淭eamcenter::Item鈥濈殑瀹㈡埛绔娇鐢 - 1>SAPZYGG2.cxx(46): warning C4996: 'ICS_search_instances': "ICS_search_instances" deprecated in Teamcenter "11.2.2"; Use "ICS_ico_search" instead. - Z:\TC_install\jingdiao\c\tclib\include\ics/ics.h(187): note: 鍙傝鈥淚CS_search_instances鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(271): warning C4267: 鈥滃弬鏁扳: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>SAPZYGG2.cxx(272): warning C4267: 鈥滃弬鏁扳: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>SAPZYGG2.cxx(239): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(242): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(248): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(255): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(258): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(282): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(377): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(380): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(382): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(408): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(434): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(436): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(442): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(458): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(513): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(586): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(590): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(602): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(604): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(648): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(658): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(701): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(703): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(740): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(743): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(744): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(745): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(746): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(938): warning C4267: 鈥滃垵濮嬪寲鈥: 浠庘渟ize_t鈥濊浆鎹㈠埌鈥渋nt鈥濓紝鍙兘涓㈠け鏁版嵁 - 1>SAPZYGG2.cxx(848): warning C4996: 'WSOM_where_referenced': "WSOM_where_referenced" deprecated in Teamcenter "11.3"; Use "WSOM_where_referenced2" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore/workspaceobject.h(887): note: 鍙傝鈥淲SOM_where_referenced鈥濈殑澹版槑 - 1>SAPZYGG2.cxx(929): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. - Z:\TC_install\jingdiao\c\tclib\include\tccore\aom_prop.h(833): note: 鍙傝鈥淎OM_UIF_ask_value鈥濈殑澹版槑 1>D:\VS2015\VC\include\exception(361): warning C4577: 'noexcept' used with no exception handling mode specified; termination on exception is not guaranteed. Specify /EHsc Link: D:\VS2015\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:Z:\TC_install\ZhengTai\c\sdplog\lib /LIBPATH:Z:\TC_install\jingdiao\c\tclib\lib /LIBPATH:Z:\TC_install\ZhengTai\c\libxl\lib "Z:\TC_install\ZhengTai\c\GetBOMProp\packages\sqdlog.1.0.0\build\..\lib\native\lib\*.lib" "Z:\TC_install\ZhengTai\c\sdplog\lib\*.lib" "Z:\TC_install\jingdiao\c\tclib\lib\*.lib" Z:\TC_install\jingdiao\c\tclib\lib\itk_main.obj "Z:\TC_install\ZhengTai\c\libxl\lib\*.lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /NODEFAULTLIB:libuser_exits.ar.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /Debug /PDB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.pdb" /SUBSYSTEM:CONSOLE /HEAP:"30000000","9000000" /STACK:"30000000","9000000" /OPT:REF /OPT:ICF /LTCG:incremental /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.lib" /MACHINE:X64 x64\Release\ado.obj x64\Release\AutoFeeding.obj + x64\Release\BomSapWh.obj x64\Release\BOMSendSap.obj x64\Release\createProcessTmp.obj x64\Release\CRUL_server_call_httpserver.obj @@ -241,6 +102,7 @@ x64\Release\GetBOMProp.obj x64\Release\ocilib.obj x64\Release\readBomMsg.obj + x64\Release\SAPGY.obj x64\Release\SAPZYGG2.obj x64\Release\SAPZZNewOp.obj x64\Release\soapC.obj @@ -248,11 +110,15 @@ x64\Release\soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj x64\Release\soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj x64\Release\stdsoap2.obj + x64\Release\tinystr.obj + x64\Release\tinyxml.obj + x64\Release\tinyxmlerror.obj + x64\Release\tinyxmlparser.obj x64\Release\util.obj 姝e湪鐢熸垚浠g爜 - 13 of 8278 functions ( 0.2%) were compiled, the rest were copied from previous compilation. - 1 functions were new in current compilation - 109 functions had inline decision re-evaluated but remain unchanged + 2 of 8674 functions ( 0.0%) were compiled, the rest were copied from previous compilation. + 0 functions were new in current compilation + 3 functions had inline decision re-evaluated but remain unchanged 宸插畬鎴愪唬鐮佺殑鐢熸垚 1>itk_main.obj : warning LNK4099: 鏈壘鍒 PDB鈥渧c160.pdb鈥(浣跨敤鈥渋tk_main.obj鈥濇垨鍦ㄢ淶:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\vc160.pdb鈥濅腑瀵绘壘)锛涙鍦ㄩ摼鎺ュ璞★紝濡傚悓娌℃湁璋冭瘯淇℃伅涓鏍 DFL_BOM_WL_TOERP.vcxproj -> Z:\TC_install\ZhengTai\c\GetBOMProp\x64\Release\BOMToSapOpt.exe @@ -260,4 +126,4 @@ 宸叉垚鍔熺敓鎴愩 -宸茬敤鏃堕棿 00:00:20.12 +宸茬敤鏃堕棿 00:00:13.90 diff --git a/DFL_BOM_WL_TOERP/x64/Release/GetBOMProp.obj b/DFL_BOM_WL_TOERP/x64/Release/GetBOMProp.obj index 667b1ee..fd5fb70 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/GetBOMProp.obj and b/DFL_BOM_WL_TOERP/x64/Release/GetBOMProp.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/SAPGY.obj b/DFL_BOM_WL_TOERP/x64/Release/SAPGY.obj new file mode 100644 index 0000000..ddcec6a Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/SAPGY.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/SAPZYGG2.obj b/DFL_BOM_WL_TOERP/x64/Release/SAPZYGG2.obj index 18fbbd3..875e742 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/SAPZYGG2.obj and b/DFL_BOM_WL_TOERP/x64/Release/SAPZYGG2.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/SAPZZNewOp.obj b/DFL_BOM_WL_TOERP/x64/Release/SAPZZNewOp.obj index 75a2531..19c51d2 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/SAPZZNewOp.obj and b/DFL_BOM_WL_TOERP/x64/Release/SAPZZNewOp.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/ado.obj b/DFL_BOM_WL_TOERP/x64/Release/ado.obj index 024c7d4..560b420 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/ado.obj and b/DFL_BOM_WL_TOERP/x64/Release/ado.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/msado15.tlh b/DFL_BOM_WL_TOERP/x64/Release/msado15.tlh index 1e385ac..eb3410b 100644 --- a/DFL_BOM_WL_TOERP/x64/Release/msado15.tlh +++ b/DFL_BOM_WL_TOERP/x64/Release/msado15.tlh @@ -3,7 +3,7 @@ // z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tlh // // C++ source equivalent of type library c:\program files\common files\system\ado\msado15.dll -// compiler-generated file created 03/29/24 at 14:46:06 - DO NOT EDIT! +// compiler-generated file created 04/23/24 at 16:00:39 - DO NOT EDIT! #pragma once #pragma pack(push, 8) diff --git a/DFL_BOM_WL_TOERP/x64/Release/msado15.tli b/DFL_BOM_WL_TOERP/x64/Release/msado15.tli index 24586ca..d132eaf 100644 --- a/DFL_BOM_WL_TOERP/x64/Release/msado15.tli +++ b/DFL_BOM_WL_TOERP/x64/Release/msado15.tli @@ -3,7 +3,7 @@ // z:\tc_install\zhengtai\c\getbomprop\dfl_bom_wl_toerp\x64\release\msado15.tli // // Wrapper implementations for type library c:\program files\common files\system\ado\msado15.dll -// compiler-generated file created 03/29/24 at 14:46:06 - DO NOT EDIT! +// compiler-generated file created 04/23/24 at 16:00:39 - DO NOT EDIT! #pragma once diff --git a/DFL_BOM_WL_TOERP/x64/Release/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.obj b/DFL_BOM_WL_TOERP/x64/Release/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.obj index ceac3d7..b21faef 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.obj and b/DFL_BOM_WL_TOERP/x64/Release/soapSIO_USCOREBOM_USCOREPLM_USCOREASYNBindingProxy.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj b/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj index 5824f1a..431a718 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj and b/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREFACTORY_USCORENUMBER_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj b/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj index 552adeb..7fe3d5c 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj and b/DFL_BOM_WL_TOERP/x64/Release/soapSI_USCOREPROCESSROUTE_USCOREPLM_USCOREOUT_USCORESYNBindingProxy.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/tinystr.obj b/DFL_BOM_WL_TOERP/x64/Release/tinystr.obj new file mode 100644 index 0000000..a9afdec Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/tinystr.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/tinyxml.obj b/DFL_BOM_WL_TOERP/x64/Release/tinyxml.obj new file mode 100644 index 0000000..dc8190f Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/tinyxml.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/tinyxmlerror.obj b/DFL_BOM_WL_TOERP/x64/Release/tinyxmlerror.obj new file mode 100644 index 0000000..670d7fb Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/tinyxmlerror.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/tinyxmlparser.obj b/DFL_BOM_WL_TOERP/x64/Release/tinyxmlparser.obj new file mode 100644 index 0000000..ce08783 Binary files /dev/null and b/DFL_BOM_WL_TOERP/x64/Release/tinyxmlparser.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/util.obj b/DFL_BOM_WL_TOERP/x64/Release/util.obj index e7cb2ae..10938d6 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/util.obj and b/DFL_BOM_WL_TOERP/x64/Release/util.obj differ diff --git a/DFL_BOM_WL_TOERP/x64/Release/vc140.pdb b/DFL_BOM_WL_TOERP/x64/Release/vc140.pdb index 91809bd..7098b73 100644 Binary files a/DFL_BOM_WL_TOERP/x64/Release/vc140.pdb and b/DFL_BOM_WL_TOERP/x64/Release/vc140.pdb differ diff --git a/x64/Release/BOMToSapOpt.exe b/x64/Release/BOMToSapOpt.exe index 9bd70e6..2e2b797 100644 Binary files a/x64/Release/BOMToSapOpt.exe and b/x64/Release/BOMToSapOpt.exe differ diff --git a/x64/Release/BOMToSapOpt.iobj b/x64/Release/BOMToSapOpt.iobj index 1dd1eed..47fc1d3 100644 Binary files a/x64/Release/BOMToSapOpt.iobj and b/x64/Release/BOMToSapOpt.iobj differ diff --git a/x64/Release/BOMToSapOpt.ipdb b/x64/Release/BOMToSapOpt.ipdb index 03fd2fc..6f70140 100644 Binary files a/x64/Release/BOMToSapOpt.ipdb and b/x64/Release/BOMToSapOpt.ipdb differ diff --git a/x64/Release/BOMToSapOpt.pdb b/x64/Release/BOMToSapOpt.pdb index 56d77cf..40de6c4 100644 Binary files a/x64/Release/BOMToSapOpt.pdb and b/x64/Release/BOMToSapOpt.pdb differ