diff --git a/HEZON_ITK/HEZON_ITK.vcxproj b/HEZON_ITK/HEZON_ITK.vcxproj
index bae9ec3..54a825b 100644
--- a/HEZON_ITK/HEZON_ITK.vcxproj
+++ b/HEZON_ITK/HEZON_ITK.vcxproj
@@ -29,20 +29,20 @@
Application
true
Unicode
- v140
+ v142
Application
true
Unicode
- v140
+ v142
Application
false
true
Unicode
- v140
+ v142
DynamicLibrary
@@ -141,6 +141,8 @@
libuser_exits.ar.lib;%(IgnoreSpecificDefaultLibraries)
$(OutDir)\bs.dll
/FORCE %(AdditionalOptions)
+
+
false
@@ -163,10 +165,13 @@
+
+
+
@@ -175,10 +180,13 @@
+
+
+
@@ -194,6 +202,7 @@
+
@@ -202,5 +211,6 @@
+
\ No newline at end of file
diff --git a/HEZON_ITK/HEZON_ITK.vcxproj.filters b/HEZON_ITK/HEZON_ITK.vcxproj.filters
index 5a4dab7..b669544 100644
--- a/HEZON_ITK/HEZON_ITK.vcxproj.filters
+++ b/HEZON_ITK/HEZON_ITK.vcxproj.filters
@@ -113,6 +113,24 @@
epm-handler
+
+ epm-handler
+
+
+ epm-handler
+
+
+ epm-handler
+
+
+ epm-handler
+
+
+ epm-handler
+
+
+ epm-handler
+
diff --git a/HEZON_ITK/bs_bom_save_check.cpp b/HEZON_ITK/bs_bom_save_check.cpp
index c02fa38..8a72dff 100644
--- a/HEZON_ITK/bs_bom_save_check.cpp
+++ b/HEZON_ITK/bs_bom_save_check.cpp
@@ -1,49 +1,43 @@
#include "util.h"
-void save_judge(tag_t top, string &check, string &name, vector &type_vec, vector &quantity_type_vec, stringstream &ss, stringstream &status_ss)
-{
+void save_judge(tag_t top, string &check, string &name, vector &type_vec, vector &quantity_type_vec, stringstream &ss, stringstream &status_ss) {
int line_cnt;
tag_t *lines;
BOM_line_ask_child_lines(top, &line_cnt, &lines);
char *val;
- for (int i = 0; i < line_cnt; i++)
- {
+ for (int i = 0; i < line_cnt; i++) {
AOM_ask_value_string(lines[i], "bl_item_object_type", &val);
printf("type :%s\n", val);
if (find(type_vec.begin(), type_vec.end(), val) != type_vec.end())
continue;
- if (find(quantity_type_vec.begin(), quantity_type_vec.end(), val) != quantity_type_vec.end())
- {
+ if (find(quantity_type_vec.begin(), quantity_type_vec.end(), val) != quantity_type_vec.end()) {
char *test;
AOM_ask_value_string(lines[i], "JD2_SFHL", &test);
printf("JD2_SFHL:%s\n", test);
- if(tc_strcmp(test,"1")==0)
+ if (tc_strcmp(test, "1") == 0)
AOM_ask_value_string(lines[i], "JD2_sl", &val);
else
AOM_ask_value_string(lines[i], "bl_quantity", &val);
- if (tc_strlen(val) == 0)
- {
+ if (tc_strlen(val) == 0) {
AOM_ask_value_string(lines[i], "bl_rev_object_string", &val);
- ss << val << ",";
+ ss << val << ",\n";
}
}
AOM_UIF_ask_value(lines[i], "jd2_last_release_status", &val);
string temp = val;
printf("length:%llu status:%s\n", temp.length(), val);
- if (temp.length() == 0 || check.find(temp) != -1)
- {
+ if (temp.length() == 0 || check.find(temp) != -1) {
AOM_ask_value_string(lines[i], "bl_rev_object_string", &val);
- status_ss << val << ",";
+ status_ss << val << ",\n";
}
- save_judge(lines[i], check, name, type_vec, quantity_type_vec, ss,status_ss);
-
+ save_judge(lines[i], check, name, type_vec, quantity_type_vec, ss, status_ss);
+
}
}
-int bs_bom_save_check(METHOD_message_t *msg, va_list args)
-{
+int bs_bom_save_check(METHOD_message_t *msg, va_list args) {
printf("bs_bom_save_check start11\n");
logical is_judge = false;
@@ -56,7 +50,7 @@ int bs_bom_save_check(METHOD_message_t *msg, va_list args)
tag_t win = va_arg(args, tag_t), top;
char *check_val, **type_val, **quantity_type;
string name, check;
- stringstream ss,status_ss;
+ stringstream ss, status_ss;
int type_cnt, quantity_type_cnt;
PREF_ask_char_value("connor_bom_check_value", 0, &check_val);
PREF_ask_char_values("connor_bom_check_type", &type_cnt, &type_val);
@@ -66,9 +60,8 @@ int bs_bom_save_check(METHOD_message_t *msg, va_list args)
check = check_val;
BOM_ask_window_top_line(win, &top);
- save_judge(top, check, name, type_vec, quantity_type_vec, ss, status_ss);
- if (ss.str().length())
- {
+ save_judge(top, check, name, type_vec, quantity_type_vec, ss, status_ss);
+ if (ss.str().length()) {
ss << "物料数量为空,请填写!\n";
ifail = 1;
}
diff --git a/HEZON_ITK/bs_bom_transmit_check.cpp b/HEZON_ITK/bs_bom_transmit_check.cpp
index 27e3d78..9c360c1 100644
--- a/HEZON_ITK/bs_bom_transmit_check.cpp
+++ b/HEZON_ITK/bs_bom_transmit_check.cpp
@@ -70,8 +70,9 @@ int bs_bom_transmit_check(EPM_rule_message_t msg)
}
else
{
- POM_AM__set_application_bypass(false);
- return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "This material cannot initiate a process");
+ //POM_AM__set_application_bypass(false);
+ //return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "This material cannot initiate a process");
+ BOMNum = BOMNum + 1;
}
}
diff --git a/HEZON_ITK/bs_sap.cpp b/HEZON_ITK/bs_sap.cpp
index 28d9105..ab0ee0e 100644
--- a/HEZON_ITK/bs_sap.cpp
+++ b/HEZON_ITK/bs_sap.cpp
@@ -24,11 +24,14 @@ int bs_sap_material(EPM_action_message_t msg) {
paras[temp_key] = temp_val;
}
string d0 = "D00", d1 = "D0";
- for (int i = 0;i < 67;i++) {
- if (i > 8) {
-
+ for (int i = 0; i < 70; i++) {
+ if (i > 67) {
+ class_map[1000 + i + 1] = d1 + to_string(i + 1);
+ }
+ else if (i > 8) {
class_map[1000 + i] = d1 + to_string(i + 1);
- } else {
+ }
+ else {
class_map[1000 + i] = d0 + to_string(i + 1);
}
}
@@ -36,7 +39,7 @@ int bs_sap_material(EPM_action_message_t msg) {
PREF_ask_char_values("connor_sap", &pref_cnt, &pref_vals);
split(pref_vals[4], ",", &rel_vec);
- for (int i = 0;i < rel_vec.size();i++) {
+ for (int i = 0; i < rel_vec.size(); i++) {
vector temp_vec;
split(rel_vec[i], "=", &temp_vec);
if (temp_vec.size() == 2) {
@@ -85,7 +88,7 @@ int bs_sap_material(EPM_action_message_t msg) {
char **relations;
form = attachments[i];
WSOM_where_referenced2(form, 1, &rel_cnt, &levels, &rels, &relations);
- for (int j = 0;j < rel_cnt;j++) {
+ for (int j = 0; j < rel_cnt; j++) {
if (tc_strcmp(relations[j], "IMAN_master_form") == 0) {
rev = rels[j];
}
@@ -94,6 +97,21 @@ int bs_sap_material(EPM_action_message_t msg) {
printf("revision get error\n");
continue;
}
+ char* item_type;
+ AOM_ask_value_string(rev, "object_type", &item_type);
+ int pref_cnt;
+ char** pref_values;
+ PREF_ask_char_values("connor_wl_type", &pref_cnt, &pref_values);
+ bool flag = false;
+ for (int ii = 0; ii < pref_cnt; ii++) {
+ if (tc_strcmp(pref_values[ii], item_type) == 0) {
+ flag = true;
+ }
+ }
+ if (!flag) {
+ printf("revision is not wl\n");
+ continue;
+ }
char *item_id;
AOM_ask_value_string(rev, "item_id", &item_id);
// GRM_list_secondary_objects_only(attachments[i], relation_type, &rel_cnt, &rels);
@@ -105,7 +123,8 @@ int bs_sap_material(EPM_action_message_t msg) {
if (j->second == "item_id") {
AOM_ask_value_string(rev, j->second.c_str(), &val);
temp_val = val;
- } else if (j->second == "release_status_list") {
+ }
+ else if (j->second == "release_status_list") {
// int status_cnt;
// tag_t *rel_status;
// AOM_ask_value_tags(form, j->second.c_str(), &status_cnt, &rel_status);
@@ -113,10 +132,12 @@ int bs_sap_material(EPM_action_message_t msg) {
// AOM_UIF_ask_value(rel_status[status_cnt - 1], "object_string", &val);
// temp_val = rel_map[val];
temp_val = paras["status"];
- } else if (j->second == "jd2_dldw") {
+ }
+ else if (j->second == "jd2_dldw") {
AOM_UIF_ask_value(form, j->second.c_str(), &val);
temp_val = val;
- } else {
+ }
+ else {
tag_t lov;
AOM_ask_lov(form, j->second.c_str(), &lov);
if (lov)
@@ -133,11 +154,20 @@ int bs_sap_material(EPM_action_message_t msg) {
char ***vals;
int cnt, *ids, *val_count;
ICS_ico_ask_attributes(class_obj, &cnt, &ids, &val_count, &vals);
- for (int j = 0;j < cnt;j++) {
+ for (int j = 0; j < cnt; j++) {
printf("id:%d\n", ids[j]);
if (class_map.find(ids[j]) != class_map.end()) {
- if (val_count[j])
- dic[convert_to_cstring(class_map[ids[j]].c_str())] = convert_to_cstring(vals[j][0]);
+ if (ids[j] == 1069) {//层级下拉框特殊处理 Hierarchical drop-down box special handling
+ char* temp;
+ AOM_ask_value_string(form, "jd2_flbm", &temp);
+ cout << "class prop id 1069, jd2_flbm:" << temp << endl;
+ dic[convert_to_cstring(class_map[ids[j]].c_str())] = convert_to_cstring(temp);
+ }
+ else {
+ if (val_count[j]) {
+ dic[convert_to_cstring(class_map[ids[j]].c_str())] = convert_to_cstring(vals[j][0]);
+ }
+ }
}
}
}
@@ -190,8 +220,8 @@ void get_bom(System::Collections::Generic::List (index + 4)) {
quantity = quantity.substr(0, index + 4);
}
- } else {
+ }
+ else {
AOM_ask_value_string(lines[j], "bl_quantity", &val);
quantity = val;
}
@@ -262,7 +293,8 @@ void get_bom(System::Collections::Generic::List 0) {
printf("obj:%s pid:%s\n", obj_str, pid.c_str());
- } else {
+ }
+ else {
printf("obj:%s pid:%s\n", obj_str, id);
}
get_bom(a_list, lines[j], werks, stlan, pid.length() > 0 ? pid : id, relation_type, child_is_hl, is_judge, bom_ids);
diff --git a/HEZON_ITK/epm_handler_common.h b/HEZON_ITK/epm_handler_common.h
index 8fa1966..6047652 100644
--- a/HEZON_ITK/epm_handler_common.h
+++ b/HEZON_ITK/epm_handler_common.h
@@ -58,6 +58,12 @@ extern "C" {
int jd_check_bom_99(EPM_rule_message_t msg);
int jd_check_ID_wllx(EPM_rule_message_t msg);
int jd_check_99_cglx(EPM_rule_message_t msg);
+ int jd_auto_revise(EPM_action_message_t msg);
+ int jd_send_mail2(EPM_action_message_t msg);
+ int jd_get_target2(EPM_action_message_t msg);
+ int jd_rev_release(EPM_rule_message_t msg);
+ int jd_prop_relate(METHOD_message_t *msg, va_list args);
+ int jd_splicing_task(EPM_action_message_t msg);
////锟斤拷锟斤拷锟斤拷锟斤拷息签锟斤拷姹撅拷锟斤拷锟斤拷锟饺
//int qtmc_sign_ir(EPM_action_message_t msg);
diff --git a/HEZON_ITK/epm_register_handler.cxx b/HEZON_ITK/epm_register_handler.cxx
index d8951e6..4c94de2 100644
--- a/HEZON_ITK/epm_register_handler.cxx
+++ b/HEZON_ITK/epm_register_handler.cxx
@@ -40,7 +40,7 @@ $HISTORY$
#include "epm_register_handler.h"
#include "epm_handler_common.h"
-
+#include "util.h"
// Method and Workflow Handler
extern DLLAPI int CUST_init_module(int *decision, va_list args) {
@@ -56,7 +56,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)bs_file_transfer);
if (ifail) {
printf("register bs_file_transfer failed\n");
- } else {
+ }
+ else {
printf("register bs_file_transfer successfully\n");
}
@@ -64,7 +65,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)bs_sap_material);
if (ifail) {
printf("register bs_sap_material failed\n");
- } else {
+ }
+ else {
printf("register bs_sap_material successfully\n");
}
@@ -72,21 +74,24 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)bs_sap_bom);
if (ifail) {
printf("register bs_sap_bom failed\n");
- } else {
+ }
+ else {
printf("register bs_sap_bom successfully\n");
}
ifail = EPM_register_rule_handler("bs_bom_check", "bs_bom_check", (EPM_rule_handler_t)bs_bom_check);
if (ifail) {
printf("register bs_bom_check failed\n");
- } else {
+ }
+ else {
printf("register bs_bom_check successfully\n");
}
ifail = EPM_register_rule_handler("bs_wl_check", "bs_wl_check", (EPM_rule_handler_t)bs_wl_check);
if (ifail) {
printf("register bs_wl_check failed\n");
- } else {
+ }
+ else {
printf("register bs_wl_check successfully\n");
}
@@ -94,7 +99,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)bs_sign_cad);
if (ifail) {
printf("register bs_sign_cad failed\n");
- } else {
+ }
+ else {
printf("register bs_sign_cad successfully\n");
}
@@ -102,7 +108,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)bs_test_release_check);
if (ifail) {
printf("register bs_test_release_check failed\n");
- } else {
+ }
+ else {
printf("register bs_test_release_check successfully\n");
}
@@ -111,7 +118,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)jd_signoff);
if (ifail) {
printf("register jd_signoff failed\n");
- } else {
+ }
+ else {
printf("register jd_signoff successfully\n");
}
@@ -119,14 +127,16 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)jd_schedule_joint);
if (ifail == ITK_ok) {
fprintf(stdout, "Registering action handler jd_schedule_joint completed!\n");
- } else {
+ }
+ else {
fprintf(stdout, "Registering action handler jd_schedule_joint failed %d!\n", ifail);
}
ifail = EPM_register_action_handler("jd_batch_process", "jd_batch_process",
(EPM_action_handler_t)jd_batch_process);
if (ifail) {
printf("register jd_batch_process failed\n");
- } else {
+ }
+ else {
printf("register jd_batch_process successfully\n");
}
@@ -134,14 +144,16 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)jd_add_attachments);
if (ifail) {
printf("register jd_add_attachments failed\n");
- } else {
+ }
+ else {
printf("register jd_add_attachments successfully\n");
}
ifail = EPM_register_rule_handler("jd_check_99_bomyt", "jd_check_99_bomyt",
(EPM_rule_handler_t)jd_check_99_bomyt);
if (ifail) {
printf("register jd_check_99_bomyt failed\n");
- } else {
+ }
+ else {
printf("register jd_check_99_bomyt successfully\n");
}
@@ -149,28 +161,32 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_action_handler_t)jd_send_mail);
if (ifail) {
printf("register jd_send_mail failed\n");
- } else {
+ }
+ else {
printf("register jd_send_mail successfully\n");
}
ifail = EPM_register_action_handler("jd_get_target", "jd_get_target",
(EPM_action_handler_t)jd_get_target);
if (ifail) {
printf("register jd_get_target failed\n");
- } else {
+ }
+ else {
printf("register jd_get_target successfully\n");
}
ifail = EPM_register_rule_handler("jd_check_wlms_len", "jd_check_wlms_len",
(EPM_rule_handler_t)jd_check_wlms_len);
if (ifail) {
printf("register jd_check_wlms_len failed\n");
- } else {
+ }
+ else {
printf("register jd_check_wlms_len successfully\n");
}
ifail = EPM_register_rule_handler("bs_bom_transmit_check", "bs_bom_transmit_check",
(EPM_rule_handler_t)bs_bom_transmit_check);
if (ifail) {
printf("register bs_bom_transmit_check failed\n");
- } else {
+ }
+ else {
printf("register bs_bom_transmit_check successfully\n");
}
@@ -178,7 +194,8 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_rule_handler_t)jd_check_bom_use);
if (ifail) {
printf("register jd_check_bom_use failed\n");
- } else {
+ }
+ else {
printf("register jd_check_bom_use successfully\n");
}
@@ -186,22 +203,64 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
(EPM_rule_handler_t)jd_check_bom_99);
if (ifail) {
printf("register jd_check_bom_99 failed\n");
- } else {
+ }
+ else {
printf("register jd_check_bom_99 successfully\n");
}
ifail = EPM_register_rule_handler("jd_check_ID_wllx", "jd_check_ID_wllx",
(EPM_rule_handler_t)jd_check_ID_wllx);
if (ifail) {
printf("register jd_check_ID_wllx failed\n");
- } else {
+ }
+ else {
printf("register jd_check_ID_wllx successfully\n");
}
ifail = EPM_register_rule_handler("jd_check_99_cglx", "jd_check_99_cglx", (EPM_rule_handler_t)jd_check_99_cglx);
if (ifail) {
printf("register jd_check_99_cglx failed\n");
- } else {
+ }
+ else {
printf("register jd_check_99_cglx successfully\n");
}
+ ifail = EPM_register_action_handler("jd_auto_revise", "jd_auto_revise", (EPM_action_handler_t)jd_auto_revise);
+ if (ifail) {
+ printf("register jd_auto_revise failed\n");
+ }
+ else {
+ printf("register jd_auto_revise successfully\n");
+ }
+ ifail = EPM_register_action_handler("jd_send_mail2", "jd_send_mail2",
+ (EPM_action_handler_t)jd_send_mail2);
+ if (ifail) {
+ printf("register jd_send_mail2 failed\n");
+ }
+ else {
+ printf("register jd_send_mail2 successfully\n");
+ }
+ ifail = EPM_register_action_handler("jd_get_target2", "jd_get_target2",
+ (EPM_action_handler_t)jd_get_target2);
+ if (ifail) {
+ printf("register jd_get_target2 failed\n");
+ }
+ else {
+ printf("register jd_get_target2 successfully\n");
+ }
+ ifail = EPM_register_rule_handler("jd_rev_release", "jd_rev_release",
+ (EPM_rule_handler_t)jd_rev_release);
+ if (ifail) {
+ printf("register jd_rev_release failed\n");
+ }
+ else {
+ printf("register jd_rev_release successfully\n");
+ }
+ ifail = EPM_register_action_handler("jd_splicing_task", "jd_splicing_task",
+ (EPM_action_handler_t)jd_splicing_task);
+ if (ifail) {
+ printf("register jd_splicing_task failed\n");
+ }
+ else {
+ printf("register jd_splicing_task successfully\n");
+ }
//if(ifail == ITK_ok)
//{
// fprintf(stdout,"Registering action handler qtmc-sign-ir completed!\n");
@@ -211,7 +270,6 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args) {
// fprintf(stdout , "Registering action handler qtmc-sign-ir failed %d!\n",ifail);
//}
-
return ifail;
}
//
@@ -228,7 +286,8 @@ extern DLLAPI int USERSERVICE_custom_register_methods() {
if (status == ITK_ok) {
printf("register bomwindow_save success\n");
- } else {
+ }
+ else {
printf("register bomwindow_save failed\n");
}
@@ -242,12 +301,41 @@ extern DLLAPI int USERSERVICE_custom_register_methods() {
status = USERSERVICE_register_method("bs_bypass", functionPtr, numberOfArguments, argumentList, returnValueType);
if (status == ITK_ok) {
printf("register bs_bypass success\n");
- } else {
+ }
+ else {
printf("register bs_bypass failed\n");
}
}
+ vector form_types;
+ form_types.push_back("JD2_GTZJRevisionMaster");
+ form_types.push_back("JD2_GTBJRevisionMaster");
+ form_types.push_back("JD2_BLZJRevisionMaster");
+ form_types.push_back("JD2_BLBJRevisionMaster");
+ form_types.push_back("JD2_BXZJRevisionMaster");
+ form_types.push_back("JD2_BXBJRevisionMaster");
+ form_types.push_back("JD2_YFSBZJRevisionMaster");
+ form_types.push_back("JD2_YFSBBJRevisionMaster");
+ form_types.push_back("JD2_YLRevisionMaster");
+ form_types.push_back("JD2_FLRevisionMaster");
+ form_types.push_back("JD2_RHRevisionMaster");
+ form_types.push_back("JD2_LSWLRevisionMaster");
+ form_types.push_back("JD2_RHRevisionMaster");
+ form_types.push_back("JD2_CDRevisionMaster");
+ for (int i = 0; i < form_types.size(); i++) {
+ METHOD_find_prop_method(form_types[i].c_str(), "jd2_flbm", PROP_set_value_string_msg, &mth_tag);
+ if (mth_tag.id) {
+ status = METHOD_add_action(mth_tag, METHOD_post_action_type, (METHOD_function_t)jd_prop_relate, NULL);
+ if (status == ITK_ok) {
+ cout << "register " << form_types[i].c_str() << " success" << endl;
+ }
+ else {
+ cout << "register " << form_types[i].c_str() << " failed" << endl;
+ }
+ }
+ }
+
return 0;
}
diff --git a/HEZON_ITK/jd_add_attachments.cpp b/HEZON_ITK/jd_add_attachments.cpp
index f003070..8280ae1 100644
--- a/HEZON_ITK/jd_add_attachments.cpp
+++ b/HEZON_ITK/jd_add_attachments.cpp
@@ -77,12 +77,12 @@ int jd_add_attachments(EPM_action_message_t msg) {
printf("relation:%s\n", relation);
printf("item:%s\n", item);
- vector csjh_rev;
+ vector tags;
vector csjh_type;
for (int i = 0;i < att_cnt;i++) {
char *att_type;
AOM_ask_value_string(attachments[i], "object_type", &att_type);
- printf("target type:%s\n",att_type);
+ printf("target type:%s\n", att_type);
if (tc_strcmp(att_type, "JD2_GTSYWTSRevision") == 0) {
tag_t *csjh;
int csjh_cnt;
@@ -101,8 +101,15 @@ int jd_add_attachments(EPM_action_message_t msg) {
char *name;
AOM_ask_value_string(csjh_revs[rev_cnt - 1], "object_string", &name);
printf("%s add success\n", name);
- csjh_rev.push_back(csjh_revs[rev_cnt - 1]);
+ tags.push_back(csjh_revs[rev_cnt - 1]);
csjh_type.push_back(EPM_target_attachment);
+ tag_t *forms;
+ int forms_cnt;
+ AOM_ask_value_tags(csjh_revs[rev_cnt - 1], "IMAN_master_form_rev", &forms_cnt, &forms);
+ if (forms_cnt > 0) {
+ tags.push_back(forms[0]);
+ csjh_type.push_back(EPM_target_attachment);
+ }
}
MEM_free(csjh_revs);
}
@@ -111,10 +118,8 @@ int jd_add_attachments(EPM_action_message_t msg) {
}
}
- if (csjh_rev.size() > 0) {
- tag_t *atts = &csjh_rev[0];
- int *types = &csjh_type[0];
- EPM_add_attachments(root_task, csjh_rev.size(), atts, types);
+ if (tags.size() > 0) {
+ EPM_add_attachments(root_task, tags.size(), &tags[0], &csjh_type[0]);
}
POM_AM__set_application_bypass(false);
diff --git a/HEZON_ITK/jd_auto_revise.cpp b/HEZON_ITK/jd_auto_revise.cpp
new file mode 100644
index 0000000..cc7d78f
--- /dev/null
+++ b/HEZON_ITK/jd_auto_revise.cpp
@@ -0,0 +1,213 @@
+#include "util.h"
+
+static void add_int_to_int_array(int add_int, int *n_int_array, int **int_array) {
+ int count = *n_int_array;
+ count++;
+ if (count == 1) {
+ (*int_array) = (int *)MEM_alloc(sizeof(int));
+ } else {
+ (*int_array) = (int *)MEM_realloc((*int_array), count * sizeof(int));
+ }
+ (*int_array)[count - 1] = add_int;
+ *n_int_array = count;
+}
+
+static void add_tag_to_tag_array(tag_t add_tag, int *n_tag_array, tag_t **tag_array) {
+ int count = *n_tag_array;
+ count++;
+ if (count == 1) {
+ (*tag_array) = (tag_t *)MEM_alloc(sizeof(tag_t));
+ } else {
+ (*tag_array) = (tag_t *)MEM_realloc((*tag_array), count * sizeof(tag_t));
+ }
+ (*tag_array)[count - 1] = add_tag;
+ *n_tag_array = count;
+}
+
+static void revise_item_revisions(int num_target_objs, tag_t *target_object_tags, vector *tags) {
+ int *all_attached_object_count = NULL;
+ tag_t *all_deepcopydata_tags;
+
+ int n_ints_in_list = 0;
+ int n_tags_in_list = 0;
+ int *ifails = NULL;
+ char *id_string = NULL;
+ char type_name[TCTYPE_name_size_c + 1] = "";
+ tag_t object_tag = NULLTAG;
+ tag_t type_tag = NULLTAG;
+ tag_t *attached_objs_tags = NULL;
+ tag_t *target_copy_tags = NULL;
+ tag_t *revise_input_tags = NULL;
+
+ revise_input_tags = (tag_t *)MEM_alloc(num_target_objs * sizeof(tag_t));
+
+ for (int ii = 0; ii < num_target_objs; ii++) {
+ tag_t type_tag = NULLTAG;
+ TCTYPE_ask_object_type(target_object_tags[ii], &type_tag);
+
+ tag_t revise_input_tag = NULLTAG;
+ TCTYPE_construct_operationinput(type_tag, TCTYPE_OPERATIONINPUT_REVISE, &revise_input_tag);
+ revise_input_tags[ii] = revise_input_tag;
+
+ printf("\nTarget Objects::\n");
+ int attached_object_count = 0;
+ tag_t *deepcopydata_tags = NULL;
+ TCTYPE_ask_deepcopydata(target_object_tags[ii],
+ TCTYPE_OPERATIONINPUT_REVISE, &attached_object_count, &deepcopydata_tags);
+ tag_t last_object = NULLTAG;
+ for (int jj = 0; jj < attached_object_count; jj++) {
+ AOM_ask_value_tag(deepcopydata_tags[jj], "targetObject",
+ &object_tag);
+ if (object_tag != last_object) {
+ WSOM_ask_object_id_string(object_tag, &id_string);
+ TCTYPE_ask_object_type(object_tag, &type_tag);
+ TCTYPE_ask_name(type_tag, type_name);
+ printf("%s (%s)\n", id_string, type_name);
+ }
+ last_object = object_tag;
+
+ AOM_ask_value_tag(deepcopydata_tags[jj], "attachedObject", &object_tag);
+ if (object_tag != NULLTAG) {
+ WSOM_ask_object_id_string(object_tag, &id_string);
+ TCTYPE_ask_object_type(object_tag, &type_tag);
+ TCTYPE_ask_name(type_tag, type_name);
+ printf("attachedObject: %s (%s)\n", id_string, type_name);
+ }
+ }
+
+ if (attached_object_count > 0) {
+ add_int_to_int_array(attached_object_count, &n_ints_in_list,
+ &all_attached_object_count);
+ for (int jj = 0; jj < attached_object_count; jj++) {
+ add_tag_to_tag_array(deepcopydata_tags[jj], &n_tags_in_list,
+ &all_deepcopydata_tags);
+ }
+ }
+ if (deepcopydata_tags) MEM_free(deepcopydata_tags);
+ }
+
+ TCTYPE_revise_objects(num_target_objs, target_object_tags,
+ revise_input_tags, all_attached_object_count, all_deepcopydata_tags,
+ &target_copy_tags, &ifails);
+
+ printf("\nNew Revisions:\n");
+ for (int ii = 0; ii < num_target_objs; ii++) {
+
+ WSOM_ask_object_id_string(target_copy_tags[ii],
+ &id_string);
+ TCTYPE_ask_object_type(target_copy_tags[ii], &type_tag);
+ TCTYPE_ask_name(type_tag, type_name);
+
+ if (ifails[ii] == ITK_ok) {
+ printf("%s (%s)\n", id_string, type_name);
+ (*tags).push_back(target_copy_tags[ii]);
+ } else {
+ char *error_message_string;
+ EMH_get_error_string(NULLTAG, ifails[ii], &error_message_string);
+ printf("\t%d %s\n", ifails[ii], error_message_string);
+ if (error_message_string) MEM_free(error_message_string);
+ }
+ }
+
+ if (revise_input_tags) MEM_free(revise_input_tags);
+ if (all_attached_object_count) MEM_free(all_attached_object_count);
+ if (all_deepcopydata_tags) MEM_free(all_deepcopydata_tags);
+ if (attached_objs_tags) MEM_free(attached_objs_tags);
+ if (target_copy_tags) MEM_free(target_copy_tags);
+ if (ifails) MEM_free(ifails);
+ if (id_string) MEM_free(id_string);
+}
+
+int jd_auto_revise(EPM_action_message_t msg) {
+ int att_cnt;
+ tag_t root_task, *attachments;
+ EPM_ask_root_task(msg.task, &root_task);
+ EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
+ vector revs;
+ vector tags;
+ POM_AM__set_application_bypass(true);
+ for (int i = 0;i < att_cnt;i++) {
+ if (isTypeOf(attachments[i], "ItemRevision")) {
+ revs.push_back(attachments[i]);
+ }
+ }
+ revise_item_revisions(revs.size(), &revs[0], &tags);
+ if (tags.size() > 0) {
+ tag_t owning_user, group;
+ char *name, **prefs;
+ int prefs_cnt = 0, tags_cnt = tags.size();
+ AOM_ask_value_tag(msg.task, "owning_user", &owning_user);
+ AOM_ask_value_string(owning_user, "object_string", &name);
+ cout << "owning_user:" << name << endl;
+ SA_ask_user_login_group(owning_user, &group);
+ char *group_name;
+ AOM_ask_value_string(group, "object_string", &group_name);
+ cout << "group name:" << group_name << endl;
+ PREF_ask_char_values("jd2_auto_revise_relations", &prefs_cnt, &prefs);
+ for (int i = 0;i < prefs_cnt;i++) {
+ cout << "relation:" << prefs[i] << endl;
+ for (int ii = 0;ii < tags_cnt;ii++) {
+ tag_t *temp;
+ int num = 0;
+ AOM_ask_value_tags(tags[ii], prefs[i], &num, &temp);
+ for (int iii = 0;iii < num;iii++) {
+ char *str;
+ AOM_ask_value_string(temp[iii], "object_string", &str);
+ cout << "add name:" << str << endl;
+ tags.push_back(temp[iii]);
+ }
+ }
+ }
+
+ for (int i = 0;i < tags.size();i++) {
+ AOM_lock(tags[i]);
+ int res = ITK_ok;
+ char *uid;
+ ITKCALL(AOM_set_ownership(tags[i], owning_user, group));
+ ITKCALL(res = AOM_save(tags[i]));
+ if (res != ITK_ok) {
+ ITK__convert_tag_to_uid(tags[i], &uid);
+ cout << uid << endl;
+ if (uid) MEM_free(uid);
+ }
+ AOM_unlock(tags[i]);
+ //if (isTypeOf(tags[i], "Dataset")) {
+ //int ref_cnt;
+ //tag_t *refs;
+ //AOM_ask_value_tags(tags[i], "ref_list", &ref_cnt, &refs);
+ //cout << "dataset ref cnt:" << ref_cnt << endl;
+ //for (int iiii = 0;iiii < ref_cnt;iiii++) {
+ // //tags.push_back(refs[iiii]);
+ // AOM_lock(refs[iiii]);
+ // ITKCALL(POM_set_owning_group(refs[iiii], group));
+ // ITKCALL(POM_set_owning_user(refs[iiii], owning_user));
+ // AOM_save(refs[iiii]);
+ // AOM_unlock(refs[iiii]);
+ //}
+ //tag_t latest_dataset;
+ //AE_ask_dataset_latest_rev(tags[i], &latest_dataset);
+ //AOM_lock(latest_dataset);
+ // ITKCALL(POM_set_owning_group(tags[i], group));
+
+ // ITKCALL(POM_set_owning_user(tags[i], owning_user));
+ // ITKCALL(POM_set_modification_user(tags[i], owning_user));
+ // ITKCALL(AE_save_myself(tags[i]));
+
+ //
+
+ // AOM_save(tags[i]);
+ // AOM_unlock(tags[i]);
+ //} else {
+ // ITKCALL(POM_set_owning_group(tags[i], group));
+ // ITKCALL(POM_set_owning_user(tags[i], owning_user));
+ // AOM_save(tags[i]);
+ // AOM_unlock(tags[i]);
+ //}
+ }
+ cout << "success" << endl;
+ } else {
+ cout << "revs cnt:0" << endl;
+ }
+ POM_AM__set_application_bypass(false);
+ return 0;
+}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_batch_process.cpp b/HEZON_ITK/jd_batch_process.cpp
index d9d25d5..7420883 100644
--- a/HEZON_ITK/jd_batch_process.cpp
+++ b/HEZON_ITK/jd_batch_process.cpp
@@ -16,10 +16,12 @@ DWORD WINAPI sendRequest(void *uid) {
http::Request request(ss.str().c_str());
const http::Response response = request.send("GET");
std::cout << std::string(response.body.begin(), response.body.end()) << '\n'; // print the result
- } else {
+ }
+ else {
printf("jd2_server_ip error\n");
}
- } catch (const std::exception& e) {
+ }
+ catch (const std::exception& e) {
std::cerr << "Request failed, error: " << e.what() << '\n';
}
return 0;
@@ -33,7 +35,13 @@ int jd_batch_process(EPM_action_message_t msg) {
EPM_ask_root_task(msg.task, &rootTask);
EPM_ask_job(msg.task, &job);
EPM_ask_attachments(rootTask, EPM_target_attachment, &att_count, &attachments);
- if (att_count < 2) {
+ int rev_cnt = 0;
+ for (int i = 0; i < att_count; i++) {
+ if (isTypeOf(attachments[i], "ItemRevision")) {
+ rev_cnt++;
+ }
+ }
+ if (rev_cnt < 2) {
return 0;
}
printf("att_count:%d\n", att_count);
@@ -47,7 +55,7 @@ int jd_batch_process(EPM_action_message_t msg) {
AOM_ask_value_string(attachments[i], "object_type", &object_type);
AOM_ask_value_string(attachments[i], "object_string", &object_string);
printf("object_type:%s object_string:%s\n", object_type, object_string);
- if (isTypeOf(attachments[i], "Form")) {
+ if (!isTypeOf(attachments[i], "ItemRevision")) {
char *name;
AOM_ask_value_string(attachments[i], "object_string", &name);
form_names << name;
@@ -61,7 +69,7 @@ int jd_batch_process(EPM_action_message_t msg) {
tag_t *tasks;
EPM_ask_sub_tasks(rootTask, &sub_cnt, &tasks);
map> task_map;
- for (int i = 0;i < sub_cnt;i++) {
+ for (int i = 0; i < sub_cnt; i++) {
char *task_name, *task_type;
AOM_ask_value_string(tasks[i], "object_name", &task_name);
AOM_ask_value_string(tasks[i], "object_type", &task_type);
@@ -71,12 +79,13 @@ int jd_batch_process(EPM_action_message_t msg) {
AOM_ask_value_tag(tasks[i], "fnd0Assignee", &assignee);
tags.push_back(assignee);
- } else {
+ }
+ else {
tag_t *signoffs;
int signoff_cnt;
AOM_ask_value_tags(tasks[i], "valid_signoffs", &signoff_cnt, &signoffs);
printf("name:%s valid cnt:%d\n", task_name, signoff_cnt);
- for (int j = 0;j < signoff_cnt;j++) {
+ for (int j = 0; j < signoff_cnt; j++) {
tag_t member;
AOM_ask_value_tag(signoffs[j], "group_member", &member);
tags.push_back(member);
@@ -85,7 +94,7 @@ int jd_batch_process(EPM_action_message_t msg) {
task_map[task_name] = tags;
}
- for (auto i = 0;i < process_vec.size();i++) {
+ for (auto i = 0; i < process_vec.size(); i++) {
ITKCALL(AOM_refresh(process_vec[i], false));
@@ -94,7 +103,7 @@ int jd_batch_process(EPM_action_message_t msg) {
EPM_ask_sub_tasks(root, &sub_cnt, &tasks);
- for (auto j = 0;j < sub_cnt;j++) {
+ for (auto j = 0; j < sub_cnt; j++) {
char *task_name, *task_type;
AOM_ask_value_string(tasks[j], "object_name", &task_name);
if (task_map[task_name].size() == 0)
@@ -102,14 +111,15 @@ int jd_batch_process(EPM_action_message_t msg) {
AOM_ask_value_string(tasks[j], "object_type", &task_type);
if (tc_strcmp("EPMDoTask", task_type) == 0) {
EPM_assign_responsible_party(tasks[j], task_map[task_name][0]);
- } else {
+ }
+ else {
tag_t sub_task;
int *types = (int*)MEM_alloc(task_map[task_name].size());
EPM_ask_sub_task(tasks[j], "select-signoff-team", &sub_task);
if (sub_task) {
- for (int k = 0;k < task_map[task_name].size();k++) {
+ for (int k = 0; k < task_map[task_name].size(); k++) {
int temp_cnt;
tag_t *temp;
EPM_create_adhoc_signoff(sub_task, task_map[task_name][k], &temp_cnt, &temp);
@@ -129,15 +139,17 @@ int jd_batch_process(EPM_action_message_t msg) {
int ref_cnt;
tag_t *refs;
tag_t root_task1;
- for (int i = 0;i < att_count;i++) {
- if (isTypeOf(attachments[i], "Form")) {
+ int process_index = 0;
+ for (int i = 0; i < att_count; i++) {
+ if (!isTypeOf(attachments[i], "ItemRevision")) {
continue;
}
- EPM_ask_root_task(process_vec[i], &root_task1);
+ EPM_ask_root_task(process_vec[process_index], &root_task1);
+ process_index++;
EPM_ask_attachments(root_task1, EPM_reference_attachment, &ref_cnt, &refs);
char *name1;
AOM_ask_value_string(attachments[i], "object_string", &name1);
- for (int ii = 0;ii < ref_cnt; ii++) {
+ for (int ii = 0; ii < ref_cnt; ii++) {
char *name2;
AOM_ask_value_string(refs[ii], "object_string", &name2);
if (tc_strcmp(name1, name2) == 0) {
@@ -153,20 +165,18 @@ int jd_batch_process(EPM_action_message_t msg) {
break;
}
}
- if (isTypeOf(attachments[i], "ItemRevision")) {
- int form_cnt;
- tag_t *forms;
- char *name;
- AOM_ask_value_tags(attachments[i], "IMAN_master_form_rev", &form_cnt, &forms);
- if (form_cnt > 0) {
- AOM_ask_value_string(forms[0], "object_string", &name);
- if (form_names.str().find(name) != string::npos) {
- tag_t *new_atts = (tag_t *)MEM_alloc(sizeof(tag_t));
- new_atts[0] = forms[0];
- int types[1];
- types[0] = EPM_target_attachment;
- ITKCALL(EPM_add_attachments(root_task1, 1, new_atts, types));
- }
+ int form_cnt;
+ tag_t *forms;
+ char *name;
+ AOM_ask_value_tags(attachments[i], "IMAN_master_form_rev", &form_cnt, &forms);
+ if (form_cnt > 0) {
+ AOM_ask_value_string(forms[0], "object_string", &name);
+ if (form_names.str().find(name) != string::npos) {
+ tag_t *new_atts = (tag_t *)MEM_alloc(sizeof(tag_t));
+ new_atts[0] = forms[0];
+ int types[1];
+ types[0] = EPM_target_attachment;
+ ITKCALL(EPM_add_attachments(root_task1, 1, new_atts, types));
}
}
}
diff --git a/HEZON_ITK/jd_check_99_cglx.cpp b/HEZON_ITK/jd_check_99_cglx.cpp
index 3d4f0b6..c0d90b0 100644
--- a/HEZON_ITK/jd_check_99_cglx.cpp
+++ b/HEZON_ITK/jd_check_99_cglx.cpp
@@ -3,7 +3,7 @@
#include
-void checkCGLX(tag_t bomline, bool *flag) {
+void checkCGLX(tag_t bomline, bool *flag, vector *res) {
int child_cnt;
tag_t *childrens;
ITKCALL(BOM_line_ask_child_lines(bomline, &child_cnt, &childrens));
@@ -23,10 +23,12 @@ void checkCGLX(tag_t bomline, bool *flag) {
cout << "check item_id:" << item_id << endl;
cout << "cglx:" << cglx << endl;
*flag = *flag&&tc_strlen(cglx) > 0;
- if (!*flag) {
- return;
+ if (tc_strlen(cglx) == 0) {
+ char *rev_name;
+ AOM_ask_value_string(rev, "object_string", &rev_name);
+ (*res).push_back(rev_name);
}
- checkCGLX(childrens[i], flag);
+ checkCGLX(childrens[i], flag, res);
}
}
@@ -53,11 +55,18 @@ int jd_check_99_cglx(EPM_rule_message_t msg) {
continue;
}
bool flag = true;
- checkCGLX(top_line, &flag);
+ vector res;
+ checkCGLX(top_line, &flag, &res);
ITKCALL(BOM_close_window(window));
cout << "flag:" << boolalpha << flag << endl;
if (!flag) {
- return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "包含未填写采购类型的物料,请检查");
+
+ string msg = "包含以下未填写采购类型的物料,请检查\n";
+ for (int ii = 0;ii < res.size();ii++) {
+ msg.append(res[ii]);
+ msg.append("\n");
+ }
+ return EMH_store_error_s1(EMH_severity_error, EMH_AE_error_base, msg.c_str());
}
}
return EPM_go;
diff --git a/HEZON_ITK/jd_check_wlms_len.cpp b/HEZON_ITK/jd_check_wlms_len.cpp
index e00a76e..ccfc3e7 100644
--- a/HEZON_ITK/jd_check_wlms_len.cpp
+++ b/HEZON_ITK/jd_check_wlms_len.cpp
@@ -7,6 +7,7 @@ int jd_check_wlms_len(EPM_rule_message_t msg) {
EPM_ask_root_task(msg.task, &root_task);
//获得根任务下的组件
EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
+ stringstream oss;
for (int i = 0; i < att_cnt; i++) {
if (isTypeOf(attachments[i], "ItemRevision")) {
int form_att;
@@ -16,8 +17,10 @@ int jd_check_wlms_len(EPM_rule_message_t msg) {
continue;
}
char *wlms;
+ char *item_id;
AOM_ask_value_string(forms[0], "jd2_wlms", &wlms);
- cout << "jd2_wlms:" << wlms << endl;
+ AOM_ask_value_string(attachments[i], "item_id", &item_id);
+ cout << "jd2_wlms:" << wlms << endl;
int length = 0;
for (int i = 0; wlms[i] != 0; i++) {
if (wlms[i] < 128 && wlms[i]>0) {
@@ -30,10 +33,19 @@ int jd_check_wlms_len(EPM_rule_message_t msg) {
cout << "length: " << length << endl;
if (length > 40) {
POM_AM__set_application_bypass(false);
- return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, "字符不能超过40!!!");
+ cout << "ID : " << item_id << endl;
+ string a = "ID : ";
+ string b = " , length : ";
+ // string c = " , 字符不能超过40!!!";
+
+ oss << a << item_id << b << length << endl;
+
}
}
- POM_AM__set_application_bypass(false);
- return EPM_go;
}
+ if (oss.str().length() > 0) {
+ return EMH_store_error_s1(EMH_severity_error, EMH_IDGENERATION_ERROR_BASE, oss.str().c_str());
+ }
+ POM_AM__set_application_bypass(false);
+ return EPM_go;
}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_clear_field.cpp b/HEZON_ITK/jd_clear_field.cpp
index 8d21103..d34c622 100644
--- a/HEZON_ITK/jd_clear_field.cpp
+++ b/HEZON_ITK/jd_clear_field.cpp
@@ -238,11 +238,20 @@ extern "C" {
std::cout << "Added " << urlPath << " to the classpath." << std::endl;
}
+ bool find(int prop_cnt, char** props, char* prop) {
+ for (int i = 0;i < prop_cnt;i++) {
+ if (tc_strcmp(props[i], prop) == 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
int JD_clear(METHOD_message_t* msg, va_list args, tag_t new_rev) {
printf("鍗囩増鎵ц\n");
//鑾峰彇鏁版嵁闆
const char *sign_location1, *sign_str;
- char *temp_path, *attach_type,*prop,**pref_values1;
+ char *temp_path, *attach_type, *prop, **pref_values1;
int n_attachs, pref_count1;
tag_t ref_obj, excelx_tag, excel_tag, wordx_tag, word_tag, type_tag, word_ref, excel_ref, *dataset;
stringstream sign_date;
@@ -341,7 +350,7 @@ extern "C" {
s << "sign2fileRunnable.jar";
add_path(env, s.str().c_str());
}
-
+
printf("add path\n");
jclass class_Test;
int file_type = -1;
@@ -362,13 +371,18 @@ extern "C" {
//琛ㄥ崟绛惧悕
for (auto iii = 0; iii < objects_count; iii++) {
AOM_lock(objects[iii]);
+ int prop_cnt;
+ char **prop_names;
+ ITKCALL(AOM_ask_prop_names(objects[iii], &prop_cnt, &prop_names));
for (int i = 0;i < pref_count1;i++) {
sign_date.str("");
sign_date << pref_values1[i];
sign_date << "rq";
- AOM_ask_value_string(objects[iii], pref_values1[i], &prop);
- if (tc_strlen(prop) != 0) {
+
+ if (find(prop_cnt, prop_names, pref_values1[i])) {
AOM_set_value_string(objects[iii], pref_values1[i], "");
+ }
+ if (find(prop_cnt, prop_names, (char *)sign_date.str().c_str())) {
AOM_set_value_string(objects[iii], sign_date.str().c_str(), "");
}
}
@@ -485,17 +499,17 @@ extern "C" {
if (strcmp(operation, "Revise") == 0 || strcmp(operation, "SaveAs") == 0) {
if (isTypeOf(new_rev, "ItemRevision")) {
//鑾峰彇棣栭夐」
- PREF_ask_char_values("jd_revise_clear_revisions",&pref_count,&pref_values);
+ PREF_ask_char_values("jd_revise_clear_revisions", &pref_count, &pref_values);
for (int i = 0;i < pref_count;i++) {
- if (strcmp(pref_values[i],type)==0) {
+ if (strcmp(pref_values[i], type) == 0) {
JD_clear(msg, args, new_rev);
break;
}
}
}
-
+
}
-
+
return ifail;
}
diff --git a/HEZON_ITK/jd_get_target.cpp b/HEZON_ITK/jd_get_target.cpp
index c69a7e5..155dda2 100644
--- a/HEZON_ITK/jd_get_target.cpp
+++ b/HEZON_ITK/jd_get_target.cpp
@@ -8,7 +8,7 @@ int jd_get_target(EPM_action_message_t msg) {
EPM_ask_root_task(msg.task, &root_task);
EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
- for (int i = 0;i < att_cnt;i++) {
+ for (int i = 0; i < att_cnt; i++) {
char *item_id, *item_revision_id;
if (isTypeOf(attachments[i], "ItemRevision")) {
AOM_ask_value_string(attachments[i], "item_id", &item_id);
@@ -20,19 +20,22 @@ int jd_get_target(EPM_action_message_t msg) {
}
}
string temp = ss.str().substr(0, ss.str().length() - 1);
- //AOM_lock(root_task);
- //AOM_set_value_string(root_task, "jd2_task_target", temp.c_str());
- //AOM_save(root_task);
- //AOM_unlock(root_task);
-
+ cout << temp.c_str() << endl;
+ AOM_set_value_string(root_task, "object_desc", temp.c_str());
+ AOM_save(root_task);
+ //char **p = (char **)malloc(sizeof(char *));
+ //p[0] = (char *)malloc(sizeof(char) * 2000);
+ //p[0] = (char *)temp.c_str();
+ //ITKCALL(PREF_set_char_values("jd2_task_target", 1, p));
+ //free(p);
POM_AM__set_application_bypass(false);
- ofstream out;
- stringstream file_location;
- file_location << getenv("temp");
- file_location << "\\";
- file_location << "jd2_task_target.txt";
- out.open(file_location.str().c_str(), ios::out | ios::trunc);
- out << temp.c_str() << endl;
- out.close();
+ //ofstream out;
+ //stringstream file_location;
+ //file_location << getenv("temp");
+ //file_location << "\\";
+ //file_location << "jd2_task_target.txt";
+ //out.open(file_location.str().c_str(), ios::out | ios::trunc);
+ //out << temp.c_str() << endl;
+ //out.close();
return 0;
}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_get_target2.cpp b/HEZON_ITK/jd_get_target2.cpp
new file mode 100644
index 0000000..81e080f
--- /dev/null
+++ b/HEZON_ITK/jd_get_target2.cpp
@@ -0,0 +1,43 @@
+#include "util.h"
+
+int jd_get_target2(EPM_action_message_t msg) {
+ POM_AM__set_application_bypass(true);
+ tag_t root_task, *attachments;
+ int att_cnt;
+ stringstream ss;
+ EPM_ask_root_task(msg.task, &root_task);
+ EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
+
+ for (int i = 0; i < att_cnt; i++) {
+ char *item_id, *item_revision_id;
+ if (isTypeOf(attachments[i], "ItemRevision")) {
+ char *uid;
+ ITK__convert_tag_to_uid(attachments[i], &uid);
+ ss << uid;
+ break;
+ }
+ }
+ cout << ss.str().c_str() << endl;
+ //string temp = ss.str().c_str();
+ //AOM_lock(root_task);
+ //AOM_set_value_string(root_task, "jd2_task_target", temp.c_str());
+ //AOM_save(root_task);
+ //AOM_unlock(root_task);
+ //char **p = (char **)MEM_alloc(sizeof(char *));
+ //p[0] = (char *)MEM_alloc(sizeof(char) * 50);
+ //p[0] = (char *)ss.str().c_str();
+ //ITKCALL(PREF_set_char_values("jd2_task_target2", 1, p));
+ //MEM_free(p);
+ AOM_set_value_string(root_task, "object_desc", ss.str().c_str());
+ AOM_save(root_task);
+ POM_AM__set_application_bypass(false);
+ //ofstream out;
+ //stringstream file_location;
+ //file_location << getenv("temp");
+ //file_location << "\\";
+ //file_location << "jd2_task_target2.txt";
+ //out.open(file_location.str().c_str(), ios::out | ios::trunc);
+ //out << temp.c_str() << endl;
+ //out.close();
+ return 0;
+}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_prop_relate.cpp b/HEZON_ITK/jd_prop_relate.cpp
new file mode 100644
index 0000000..62a37de
--- /dev/null
+++ b/HEZON_ITK/jd_prop_relate.cpp
@@ -0,0 +1,90 @@
+#include "util.h"
+#include "libxl.h"
+using namespace libxl;
+
+char *w2c(char *pcstr, const wchar_t *pwstr, size_t len)
+{
+ int nlength = wcslen(pwstr);
+ //获取转换后的长度
+ int nbytes = WideCharToMultiByte(0, 0, pwstr, nlength, NULL, 0, NULL, NULL);
+ if (nbytes > len) nbytes = len;
+ // 通过以上得到的结果,转换unicode 字符为ascii 字符
+ WideCharToMultiByte(0, 0, pwstr, nlength, pcstr, nbytes, NULL, NULL);
+ return pcstr;
+}
+
+int jd_prop_relate(METHOD_message_t *msg, va_list args) {
+ cout << "jd_prop_relate" << endl;
+ //获取属性对象
+ tag_t prop_tag = va_arg(args, tag_t), form;
+ //获取值
+ char* val = va_arg(args, char*);
+ cout << "jd2_flbm:" << val << endl;
+ ITKCALL(PROP_ask_owning_object(prop_tag, &form));
+ if (val&&strlen(val)) {
+ char **pref_temp;
+ map> pref_map;
+ int pref_cnt;
+ PREF_ask_char_values("connor_default_dataset", &pref_cnt, &pref_temp);
+ for (int i = 0; i < pref_cnt; i++) {
+ string temp1 = string(pref_temp[i]).substr(0, string(pref_temp[i]).find_first_of("="));
+ string temp2 = string(pref_temp[i]).substr(string(pref_temp[i]).find_first_of("=") + 1);
+ vector temp_vec;
+ split(temp2, ",", &temp_vec);
+ pref_map[temp1] = temp_vec;
+ }
+
+ char *pref;
+ PREF_ask_char_value("jd_flbm_fldj_relation", 0, &pref);
+ tag_t dataset;
+ ITK__convert_uid_to_tag(pref, &dataset);
+ char* file_name;
+ ITKCALL(AOM_UIF_ask_value(dataset, "object_name", &file_name));
+ cout << "dataset file name:" << file_name << endl;
+ string suffix = string(file_name).substr(string(file_name).find_last_of(".") + 1);
+ if (pref_map.find(suffix) != pref_map.end()) {
+ string temp = getenv("temp");
+ temp.append("\\").append(file_name);
+ if (ACCESS(temp.c_str(), 0) == 0) {
+ cout << "delete exist file" << endl;
+ remove(temp.c_str());
+ }
+ ITKCALL(AE_export_named_ref(dataset, pref_map[suffix][1].c_str(), temp.c_str()));
+ cout << "download path:" << temp.c_str() << endl;
+ Book* book = xlCreateXMLBook();
+ book->setKey(L"TommoT", L"windows-2421220b07c2e10a6eb96768a2p7r6gc");
+ if (book->load(stringToWchar(temp.c_str()))) {
+ Sheet* sheet = book->getSheet(0);
+ if (sheet) {
+ cout << "open success" << endl;
+ for (int i = 0; i < sheet->lastRow(); i++) {
+ CellType celltype = sheet->cellType(i, 1);
+ if (celltype == CELLTYPE_NUMBER)
+ {
+ const wchar_t * t = sheet->readStr(i, 1);
+ char *pcstr = (char *)malloc(sizeof(char)*(2 * wcslen(t) + 1));
+ memset(pcstr, 0, 2 * wcslen(t) + 1);
+ w2c(pcstr, t, 2 * wcslen(t) + 1);
+ if (tc_strcmp(pcstr, val) == 0) {
+ const wchar_t * t2 = sheet->readStr(i, 3);
+ char *pcstr2 = (char *)malloc(sizeof(char)*(2 * wcslen(t2) + 1));
+ memset(pcstr2, 0, 2 * wcslen(t2) + 1);
+ w2c(pcstr2, t2, 2 * wcslen(t2) + 1);
+ cout << pcstr << "/tfind ckfj:" << pcstr2 << endl;
+ AOM_lock(form);
+ ITKCALL(AOM_set_value_string(form, "jd2_ckfj", pcstr2));
+ AOM_save(form);
+ AOM_unlock(form);
+ cout << "success" << endl;
+ book->release();
+ break;
+ }
+ free(pcstr);
+ }
+ }
+ }
+ }
+ }
+ }
+ return ITK_ok;
+}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_rev_release.cpp b/HEZON_ITK/jd_rev_release.cpp
new file mode 100644
index 0000000..b13dac7
--- /dev/null
+++ b/HEZON_ITK/jd_rev_release.cpp
@@ -0,0 +1,48 @@
+#include "util.h"
+
+int jd_rev_release(EPM_rule_message_t msg)
+{
+ POM_AM__set_application_bypass(true);
+ tag_t root_task, *attachments, *boms, *xjxxds;
+ int att_cnt, bom_cnt, xjxxd_cnt;
+ char *object_string;
+ //获得根任务
+ EPM_ask_root_task(msg.task, &root_task);
+ //获得根任务下的组件
+ EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
+ for (int i = 0; i < att_cnt; i++)
+ {
+ AOM_ask_value_tags(attachments[i], "JD2_BGH", &xjxxd_cnt, &xjxxds);
+ //AOM_ask_value_tags(attachments[i], "FTH4xjxxdgx", &xjxxd_cnt, &xjxxds);
+ for (int i = 0; i < xjxxd_cnt; i++)
+ {
+ //零组件版本
+ if (isTypeOf(xjxxds[i], "ItemRevision"))
+ {
+ vector tags1(1, xjxxds[i]);
+ vector types1(1, EPM_target_attachment);
+ EPM_add_attachments(root_task, 1, &tags1[0], &types1[0]);
+ AOM_ask_value_tags(xjxxds[i], "structure_revisions", &bom_cnt, &boms);
+ if (bom_cnt > 0)
+ {
+ //bom视图版本
+ for (int i = 0; i < bom_cnt; i++)
+ {
+ vector tags2(1, boms[i]);
+ vector types2(1, EPM_target_attachment);
+ EPM_add_attachments(root_task, 1, &tags2[0], &types2[0]);
+ }
+ }
+ }
+ //版本表单
+ if (isTypeOf(xjxxds[i], "Form"))
+ {
+ vector tags3(1, xjxxds[i]);
+ vector types3(1, EPM_target_attachment);
+ EPM_add_attachments(root_task, 1, &tags3[0], &types3[0]);
+ }
+ }
+ }
+ POM_AM__set_application_bypass(false);
+ return EPM_go;
+}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_schedule_joint.cpp b/HEZON_ITK/jd_schedule_joint.cpp
index dfc267d..8cfb671 100644
--- a/HEZON_ITK/jd_schedule_joint.cpp
+++ b/HEZON_ITK/jd_schedule_joint.cpp
@@ -76,7 +76,7 @@ int jd_schedule_joint(EPM_action_message_t msg) {
printf("获取SCHDULE任务 count =[%d] \n", count);
//printf("task_name:%s\n",task_name);
printf("task_name-------------\n");
- if (count >0) {
+ if (count > 0) {
char * schdule_task_node_type = NULL;
AOM_ask_value_string(schdule_task_nodes[0], "object_type", &schdule_task_node_type);
@@ -99,8 +99,8 @@ int jd_schedule_joint(EPM_action_message_t msg) {
int project_cnt;
char* project_name = NULL;
char* project_id = NULL;
- AOM_ask_value_tags(schdule,"project_list",&project_cnt,&project_list);
- if (project_list!=NULL) {
+ AOM_ask_value_tags(schdule, "project_list", &project_cnt, &project_list);
+ if (project_list != NULL) {
AOM_ask_value_string(project_list[0], "project_id", &project_id);
AOM_ask_value_string(project_list[0], "object_name", &project_name);
ss << job_name;
@@ -111,13 +111,19 @@ int jd_schedule_joint(EPM_action_message_t msg) {
printf("new job name %s\n", ss.str().c_str());
AOM_lock(job);
+ printf("设置属性\n");
AOM_set_value_string(job, "object_name", ss.str().c_str());
+ cout << "更改所有者" << endl;
+ tag_t owning_user, group;
+ AOM_ask_value_tag(schdule, "owning_user", &owning_user);
+ SA_ask_user_login_group(owning_user, &group);
+ ITKCALL(AOM_set_ownership(job, owning_user, group));
//printf("str:%s\n", finish_date_str);
- printf("设置属性\n");
+
AOM_save(job);
AOM_unlock(job);
}
-
+
if (job_name != NULL) {
MEM_free(job_name);
job_name = NULL;
diff --git a/HEZON_ITK/jd_send_mail.cpp b/HEZON_ITK/jd_send_mail.cpp
index ceec64c..84f8c3d 100644
--- a/HEZON_ITK/jd_send_mail.cpp
+++ b/HEZON_ITK/jd_send_mail.cpp
@@ -22,79 +22,39 @@ int jd_send_mail(EPM_action_message_t msg) {
if (att_cnt <= 0) {
return 0;
}
- char target_str[2000];
+ char *target_str;
+ //PREF_refresh("jd2_task_target");
+ //PREF_ask_char_value("jd2_task_target", 0, &target_str);
+ //ITKCALL(AOM_refresh(root_task, false));
+ AOM_ask_value_string(root_task, "object_desc", &target_str);
vector target_vec;
//AOM_ask_value_string(root_task, "jd2_task_target", &target_str);
- ifstream in;
- stringstream file_location;
- file_location << getenv("temp");
- file_location << "\\";
- file_location << "jd2_task_target.txt";
- in.open(file_location.str().c_str(), ios::in);
- in >> target_str;
- in.close();
+ //ifstream in;
+ //stringstream file_location;
+ //file_location << getenv("temp");
+ //file_location << "\\";
+ //file_location << "jd2_task_target.txt";
+ //in.open(file_location.str().c_str(), ios::in);
+ //in >> target_str;
+ //in.close();
printf("target_str====>%s\n", target_str);
-
+ if (tc_strlen(target_str) == 0) {
+ return EMH_store_error_s1(EMH_severity_error, EMH_AE_error_base, string("鑾峰彇target鍐呭寮傚父,璇锋鏌andler:jd_get_target鏄惁閰嶇疆").c_str());;
+ }
+ //remove(file_location.str().c_str());
+ //char **p = (char **)malloc(sizeof(char *));
+ //p[0] = (char *)malloc(sizeof(char) * 10);
+ //p[0] = "";
+ //ITKCALL(PREF_set_char_values("jd2_task_target", 1, p));
+ //free(p);
split(target_str, ",", &target_vec);
- for (int i = 0;i < target_vec.size();i++) {
+ for (int i = 0; i < target_vec.size(); i++) {
mail_content << target_vec[i].c_str();
mail_content << " ";
mail_content << paras["mail_para"];
mail_content << "\r\n";
}
- //tag_t win;
- //BOM_create_window(&win);
- //for (int i = 0;i < att_cnt;i++) {
- // if (isTypeOf(attachments[i], "Form")) {
- // int rel_cnt, *levels;
- // tag_t *rels, rev = NULLTAG, form;
- // char **relations;
- // form = attachments[i];
- // WSOM_where_referenced2(form, 1, &rel_cnt, &levels, &rels, &relations);
- // for (int j = 0;j < rel_cnt;j++) {
- // printf("relations:%s\n", relations[j]);
- // if (tc_strcmp(relations[j], "IMAN_master_form") == 0) {
- // rev = rels[j];
- // }
- // }
- // if (rev == NULLTAG) {
- // printf("revision get error\n");
- // continue;
- // }
- // char *item_id;
- // AOM_ask_value_string(rev, "item_id", &item_id);
-
- // char *rev_id;
- // AOM_ask_value_string(rev, "item_revision_id", &rev_id);
- // mail_content << item_id;
- // mail_content << "/";
- // mail_content << rev_id;
- // mail_content << " ";
- // mail_content << paras["mail_para"];
- // mail_content << "\r\n";
- // } else if (isTypeOf(attachments[i], "PSBOMViewRevision")) {
- // tag_t top_line, rev;
- // char *id;
- // BOM_set_window_top_line_bvr(win, attachments[i], &top_line);
- // if (top_line == NULLTAG)
- // continue;
- // AOM_ask_value_tag(top_line, "bl_line_object", &rev);
- // if (rev == NULLTAG)
- // continue;
- // AOM_ask_value_string(rev, "item_id", &id);
-
- // char *rev_id;
- // AOM_ask_value_string(rev, "item_revision_id", &rev_id);
- // mail_content << id;
- // mail_content << "/";
- // mail_content << rev_id;
- // mail_content << " ";
- // mail_content << paras["mail_para"];
- // mail_content << "\r\n";
- // }
- //}
- //BOM_close_window(win);
POM_AM__set_application_bypass(false);
vector address, to_name, from_pref;
@@ -110,13 +70,9 @@ int jd_send_mail(EPM_action_message_t msg) {
printf("from_user:%s\n", from_user);
- for (int i = 0;i < pref_cnt;i++) {
+ for (int i = 0; i < pref_cnt; i++) {
split(pref_values[i], ":", &from_pref);
printf("pref:%s\n", pref_values[i]);
- //if (tc_strcmp(from_user, from_pref[0].c_str()) == 0) {
- // break;
- //}
- //from_pref.clear();
}
if (from_pref.size() == 0) {
@@ -125,7 +81,6 @@ int jd_send_mail(EPM_action_message_t msg) {
}
CSendMail sMailer;
- // freopen("F://mailfile//out.txt","w+",stdout);
sMailer.setServerName("smtp.mxhichina.com"); //閭smtp,濡"smtp.126.com"
sMailer.setUserName("lvmh@jide.cn"); //閭璐﹀彿鍚嶏紝濡"****@126.com"
diff --git a/HEZON_ITK/jd_send_mail2.cpp b/HEZON_ITK/jd_send_mail2.cpp
new file mode 100644
index 0000000..6934cee
--- /dev/null
+++ b/HEZON_ITK/jd_send_mail2.cpp
@@ -0,0 +1,186 @@
+#include "CSendMail.h"
+#include "boost\algorithm\\string.hpp"
+#include "util.h"
+
+int jd_send_mail2(EPM_action_message_t msg) {
+ POM_AM__set_application_bypass(true);
+ tag_t root_task, *attachments;
+ int att_cnt;
+ EPM_ask_root_task(msg.task, &root_task);
+ EPM_ask_attachments(root_task, EPM_target_attachment, &att_cnt, &attachments);
+ TC_argument_list_t *arguments = msg.arguments;
+ int arg_cnt = TC_number_of_arguments(arguments);
+ map paras;
+ for (auto i = 0; i < arg_cnt; i++) {
+ char *temp_key, *temp_val;
+ ITKCALL(ITK_ask_argument_named_value(TC_next_argument(arguments), &temp_key, &temp_val));
+ paras[temp_key] = temp_val;
+ }
+ tag_t parent_task, *signoffs;
+ vector mail_address;
+ int signoff_cnt;
+ ITKCALL(EPM_ask_parent_task(msg.task, &parent_task));
+ ITKCALL(AOM_ask_value_tags(parent_task, "valid_signoffs", &signoff_cnt, &signoffs));
+ for (int i = 0; i < signoff_cnt; i++) {
+ tag_t user, person;
+ char *address;
+ AOM_ask_value_tag(signoffs[i], "fnd0Assignee", &user);
+ ITKCALL(SA_ask_user_person(user, &person));
+ ITKCALL(AOM_ask_value_string(person, "PA9", &address));
+ mail_address.push_back(address);
+ }
+ char *target_str;
+ //PREF_refresh("jd2_task_target2");
+ //PREF_ask_char_value("jd2_task_target2", 0, &target_str);
+ //ITKCALL(AOM_refresh(root_task, false));
+ ITKCALL(AOM_ask_value_string(root_task, "object_desc", &target_str));
+ //for (int i = 0; i < att_cnt; i++) {
+ // char *item_id, *item_revision_id;
+ // if (isTypeOf(attachments[i], "ItemRevision")) {
+ // ITK__convert_tag_to_uid(attachments[i], &target_str);
+ // break;
+ // }
+ //}
+ //vector target_vec;
+ //ifstream in;
+ //stringstream file_location;
+ //file_location << getenv("temp");
+ //file_location << "\\";
+ //file_location << "jd2_task_target2.txt";
+ //in.open(file_location.str().c_str(), ios::in);
+ //in >> target_str;
+ //in.close();
+ printf("target_str====>%s\n", target_str);
+ if (tc_strlen(target_str) == 0) {
+ return EMH_store_error_s1(EMH_severity_error, EMH_AE_error_base, string("获取target内容异常,请检查handler:jd_get_target2是否配置").c_str());;
+ }
+ //remove(file_location.str().c_str());
+ //char **p = (char **)malloc(sizeof(char *));
+ //p[0] = (char *)malloc(sizeof(char) * 10);
+ //p[0] = "";
+ //ITKCALL(PREF_set_char_values("jd2_task_target2", 1, p));
+ //free(p);
+ vector relations;
+ vector file_types;
+ tag_t target = NULLTAG, excelx_tag, excel_tag, word_tag, wordx_tag, ppt_tag, pptx_tag;
+ vector file_address;
+ map> pref_map;
+ char **pref_temp;
+ int pref_cnt;
+ PREF_ask_char_values("connor_default_dataset", &pref_cnt, &pref_temp);
+ for (int i = 0; i < pref_cnt; i++) {
+ string temp1 = string(pref_temp[i]).substr(0, string(pref_temp[i]).find_first_of("="));
+ string temp2 = string(pref_temp[i]).substr(string(pref_temp[i]).find_first_of("=") + 1);
+ vector temp_vec;
+ split(temp2, ",", &temp_vec);
+ pref_map[temp1] = temp_vec;
+ }
+ //TCTYPE_find_type("MSExcel", "Dataset", &excel_tag);
+ //TCTYPE_find_type("MSExcelX", "Dataset", &excelx_tag);
+ //TCTYPE_find_type("MSWord", "Dataset", &word_tag);
+ //TCTYPE_find_type("MSWordX", "Dataset", &wordx_tag);
+ //TCTYPE_find_type("MSPowerPoint", "Dataset", &ppt_tag);
+ //TCTYPE_find_type("MSPowerPointX", "Dataset", &pptx_tag);
+ ITK__convert_uid_to_tag(target_str, &target);
+ if (target == NULLTAG) {
+ EMH_store_error_s1(EMH_severity_error, EMH_ATTR_error_base, "获取选中目标失败,检查是否配置了jd_get_target2");
+ return 1;
+ }
+ else {
+ char *item_id;
+ AOM_ask_value_string(target, "item_id", &item_id);
+ cout << "item_id:" << item_id << endl;
+ }
+ split(paras["relation"], ",", &relations);
+ split(paras["suffix"], ",", &file_types);
+ for (int i = 0; i < relations.size(); i++) {
+ tag_t *dataset;
+ int dataset_cnt;
+ cout << relations[i].c_str() << endl;
+ AOM_ask_value_tags(target, relations[i].c_str(), &dataset_cnt, &dataset);
+ for (int ii = 0; ii < dataset_cnt; ii++) {
+ string temp = getenv("temp");
+ tag_t type;
+ char *file_name;
+ ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+ cout << "dataset file name:" << file_name << endl;
+ string suffix = string(file_name).substr(string(file_name).find_last_of(".") + 1);
+ //ITKCALL(TCTYPE_ask_object_type(dataset[ii], &type));
+ if (find(file_types.begin(), file_types.end(), suffix) != file_types.end() && pref_map.find(suffix) != pref_map.end()) {
+ temp.append("\\").append(file_name).c_str();
+ if (ACCESS(temp.c_str(), 0) == 0) {
+ cout << "delete exist file" << endl;
+ remove(temp.c_str());
+ }
+ ITKCALL(AE_export_named_ref(dataset[ii], pref_map[suffix][1].c_str(), temp.c_str()));
+ cout << "file path:" << temp.c_str() << endl;
+ file_address.push_back(temp);
+ }
+ //else if (type == excelx_tag&& find(file_types.begin(), file_types.end(), "xlsx") != file_types.end()) {
+ // ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+ // ITKCALL(AE_export_named_ref(dataset[ii], "excel", temp.append("\\").append(file_name).c_str()));
+ // cout << "file path:" << temp.c_str() << endl;
+ // file_address.push_back(temp);
+ //}
+ //else if (type == word_tag && find(file_types.begin(), file_types.end(), "doc") != file_types.end()) {
+ // ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+ // ITKCALL(AE_export_named_ref(dataset[ii], "word", temp.append("\\").append(file_name).c_str()));
+ // cout << "file path:" << temp.c_str() << endl;
+ // file_address.push_back(temp);
+ //}
+ //else if (type == wordx_tag&&find(file_types.begin(), file_types.end(), "docx") != file_types.end()) {
+ // ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+ // ITKCALL(AE_export_named_ref(dataset[ii], "word", temp.append("\\").append(file_name).c_str()));
+ // cout << "file path:" << temp.c_str() << endl;
+ // file_address.push_back(temp);
+ //}
+ //else if (type == ppt_tag && find(file_types.begin(), file_types.end(), "ppt") != file_types.end()) {
+ // ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+ // ITKCALL(AE_export_named_ref(dataset[ii], "powerpoint", temp.append("\\").append(file_name).c_str()));
+ // cout << "file path:" << temp.c_str() << endl;
+ // file_address.push_back(temp);
+ //}
+ //else if (type == pptx_tag&&find(file_types.begin(), file_types.end(), "pptx") != file_types.end()) {
+ // ITKCALL(AOM_UIF_ask_value(dataset[ii], "object_name", &file_name));
+
+ // ITKCALL(AE_export_named_ref(dataset[ii], "powerpoint", temp.append("\\").append(file_name).c_str()));
+ // cout << "file path:" << temp.c_str() << endl;
+ // file_address.push_back(temp);
+ //}
+ }
+ }
+
+ POM_AM__set_application_bypass(false);
+
+ CSendMail sMailer;
+
+ sMailer.setServerName("smtp.mxhichina.com");
+ sMailer.setUserName("lvmh@jide.cn");
+ sMailer.setUserPwd("lmh1995815.");
+ sMailer.setSenderName("PLM管理员");
+ sMailer.setSenderAddress("lvmh@jide.cn");
+
+ for (int i = 0; i < mail_address.size(); i++) {
+ tag_t user;
+ char *name;
+ AOM_ask_value_tag(signoffs[i], "fnd0Assignee", &user);
+ AOM_ask_value_string(user, "user_name", &name);
+ sMailer.addReceiver(name, mail_address[i]);
+ }
+ if (file_address.size() > 0) {
+ for (int i = 0; i < file_address.size(); i++) {
+ sMailer.AddFilePath(file_address[i].c_str());
+ }
+ }
+ if (sMailer.Connent()) {
+ if (sMailer.SendMail(paras["subject"], paras["content"]))
+ cout << "邮件发送成功" << endl;
+ }
+ if (file_address.size() > 0) {
+ for (int i = 0; i < file_address.size(); i++) {
+ remove(file_address[i].c_str());
+ }
+ }
+ //POM_AM__set_application_bypass(false);
+ return 0;
+}
\ No newline at end of file
diff --git a/HEZON_ITK/jd_signoff.cpp b/HEZON_ITK/jd_signoff.cpp
index fe9b325..e6a5eef 100644
--- a/HEZON_ITK/jd_signoff.cpp
+++ b/HEZON_ITK/jd_signoff.cpp
@@ -1,55 +1,4 @@
-锘#include "epm_handler_common.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include "tc/envelope.h"
-#include
-#include "ae/dataset.h"
-#include
-#include
-#include
-#include
-#include
-#include