|
|
|
|
|
#include "SendSap.h"
|
|
|
|
|
|
tag_t getJGKETProcess(char* groupName) {
|
|
|
|
|
|
tag_t query_tag = NULLTAG;
|
|
|
ITKCALL(QRY_find2("chint_query_item", &query_tag));
|
|
|
char *qkey[1] = { "ID" }, *qvalue[1] = { "3000042679" };
|
|
|
int num_found = 0;
|
|
|
tag_t *qresult = NULL;
|
|
|
ITKCALL(QRY_execute(query_tag, 1, qkey, qvalue, &num_found, &qresult));
|
|
|
if (num_found > 0) {
|
|
|
tag_t meopRev = NULLTAG;
|
|
|
ITKCALL(ITEM_ask_latest_rev(qresult[0], &meopRev));
|
|
|
tag_t meops = getProcessTag(meopRev, groupName);
|
|
|
return meops;
|
|
|
}
|
|
|
return NULLTAG;
|
|
|
}
|
|
|
|
|
|
void addLastRevisions2(map<tag_t, vector<tag_t>> map_item_schemes, vector<tag_t>& cParts) {
|
|
|
map<tag_t, vector<tag_t>>::iterator it;
|
|
|
for (it = map_item_schemes.begin(); it != map_item_schemes.end(); it++) {
|
|
|
tag_t item = it->first;
|
|
|
vector<tag_t> revs = map_item_schemes[item];
|
|
|
if (revs.size() == 1) {
|
|
|
cParts.push_back(revs[0]);
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//SAPDYCCDialogController.sendToSap()
|
|
|
void SAPDYCC(vector<tag_t> ccpVector, char* projectNo, char* groupName, char* wbs) {
|
|
|
log("************** SAPDYCC **************");
|
|
|
|
|
|
tag_t kt_process = getJGKETProcess(groupName);
|
|
|
int pref_cnt = 0;
|
|
|
char **urls = NULL;
|
|
|
ITKCALL(PREF_ask_char_values("CHINT_BomUrl_YB", &pref_cnt, &urls));
|
|
|
|
|
|
vector<_ns1__DT_USCOREFACTORY_USCORENUMBER_USCOREREQ_ITEMS_ITEM> list_Factorys;
|
|
|
map<tag_t, string> ccp_factory_type;
|
|
|
map<tag_t, vector<tag_t>> cPart_schemes;
|
|
|
//SAPDYCCDialogController.sendSap2YH()
|
|
|
for (int len = 0; len < ccpVector.size(); len++) {
|
|
|
tag_t cPart = ccpVector[len], *ps_children = NULLTAG;
|
|
|
int num = 0;
|
|
|
ITKCALL(AOM_ask_value_tags(cPart, "ps_children", &num, &ps_children));
|
|
|
if (num > 0) {
|
|
|
ccp_factory_type[cPart] = "";
|
|
|
continue;
|
|
|
}
|
|
|
num = 0;
|
|
|
tag_t *factoryNos = NULLTAG;
|
|
|
ITKCALL(AOM_ask_value_tags(cPart, "ZT2_FactoryNumber", &num, &factoryNos));
|
|
|
if (num == 0) {
|
|
|
ccp_factory_type[cPart] = "";
|
|
|
continue;
|
|
|
}
|
|
|
for (int i = 0; i < num; i++) {
|
|
|
char *item_id = NULL;
|
|
|
ITKCALL(AOM_ask_value_string(factoryNos[i], "item_id", &item_id));
|
|
|
if (tc_strstr(item_id, "DX1") != NULL) {
|
|
|
ccp_factory_type[cPart] = "DX1";
|
|
|
break;
|
|
|
}
|
|
|
if (tc_strstr(item_id, "DX3") != NULL) {
|
|
|
ccp_factory_type[cPart] = "DX3";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
/* <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>Ϣ */
|
|
|
map<tag_t, vector<tag_t>> map_item_schemes;
|
|
|
getFactoryNoList(projectNo, groupName, wbs, factoryNos, num, cPart, list_Factorys);
|
|
|
char* partUid = NULL;
|
|
|
ITK__convert_tag_to_uid(cPart, &partUid);
|
|
|
|
|
|
for (int i = 0; i < num; i++) {
|
|
|
char* uid = NULL;
|
|
|
ITK__convert_tag_to_uid(factoryNos[i], &uid);
|
|
|
string sqlRef2 = "select P.puid as supItemUID,V.puid as supRevUID,P.pitem_id as supItemID,";
|
|
|
sqlRef2.append("ITRO.Pobject_Name as supItemName,V.Pitem_Revision_Id as supRevID,cP.pitem_id as subItemID,")
|
|
|
.append("V.PZT2_SAPSTATE as status,cV.puid as subRevUID,RT.partifactname as <20>汾<EFBFBD><E6B1BE><EFBFBD>汾<EFBFBD><E6B1BE>ϵ,g.PNAME ")
|
|
|
.append("from PWORKSPACEOBJECT ITRO,PIMANRELATION R,PIMANTYPE RT,PITEMREVISION V,PITEM P,")
|
|
|
.append("PITEMREVISION cV,PITEM cP,PWORKSPACEOBJECT cITRO,PPOM_APPLICATION_OBJECT g0,ppom_group g ")
|
|
|
.append("where V.Puid = R.Rprimary_Objectu AND v.puid=g0.puid AND g0.ROWNING_GROUPU =g.puid ")
|
|
|
.append("and r.rrelation_typeu = RT.puid and P.Puid = V.Ritems_Tagu and ITRO.Puid = V.Puid ")
|
|
|
.append("and R.Rsecondary_Objectu = cP.Puid and cP.Puid = cV.Ritems_Tagu and cV.Puid = cITRO.Puid ")
|
|
|
.append("and ITRO.Pactive_Seq <> 0 and cITRO.Pactive_Seq <> 0 and RT.partifactname = 'ZT2_FactoryNumber' ")
|
|
|
.append("and cP.PUID ='").append(uid).append("'");
|
|
|
int outputColumn1 = 0, outputValueCount1 = 0;
|
|
|
char*** outputValue1 = NULL;
|
|
|
log("sqlRef2==>\n%s", sqlRef2.c_str());
|
|
|
QuerySQLNoInputParam((char*)sqlRef2.c_str(), &outputColumn1, &outputValueCount1, &outputValue1);
|
|
|
for (int j = 0; j < outputValueCount1; j++) {
|
|
|
if (tc_strcmp(outputValue1[j][1], partUid) != 0 && tc_strcmp(outputValue1[j][6], "") != 0
|
|
|
&& tc_strcmp(outputValue1[j][9], groupName) == 0) {
|
|
|
if (tc_strcmp(outputValue1[j][6], "2") == 0 || tc_strcmp(outputValue1[j][6], "3") == 0) {
|
|
|
tag_t rev = NULLTAG, item = NULLTAG;
|
|
|
ITK__convert_uid_to_tag(outputValue1[j][1], &rev);//supRevUID
|
|
|
ITKCALL(ITEM_ask_item_of_rev(rev, &item));
|
|
|
if (map_item_schemes.count(item) > 0) {
|
|
|
map_item_schemes[item].push_back(rev);
|
|
|
}
|
|
|
else {
|
|
|
vector<tag_t> revs2;
|
|
|
revs2.push_back(rev);
|
|
|
map_item_schemes[item] = revs2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
vector<tag_t> schemes;
|
|
|
addLastRevisions2(map_item_schemes, schemes);
|
|
|
cPart_schemes[cPart] = schemes;
|
|
|
}
|
|
|
}
|
|
|
log("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%zd", list_Factorys.size());
|
|
|
logCcbh(list_Factorys);
|
|
|
sendFactoryNo(list_Factorys, urls[0]);
|
|
|
|
|
|
} |