增加测试报告检测

main
李岩峰 5 years ago
parent 641238ca06
commit 1ef46fed69

@ -1,17 +1,27 @@
#include "util.h" #include "util.h"
boolean save_judge(tag_t top,string &check,string &name,vector<string> &type_vec) int save_judge(tag_t top, string &check, string &name, vector<string> &type_vec, vector<string> &quantity_type_vec, stringstream &ss)
{ {
int line_cnt; int line_cnt;
tag_t *lines; tag_t *lines;
BOM_line_ask_child_lines(top, &line_cnt, &lines); BOM_line_ask_child_lines(top, &line_cnt, &lines);
char *val; 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); AOM_ask_value_string(lines[i], "bl_item_object_type", &val);
printf("type :%s\n", val); printf("type :%s\n", val);
if (find(type_vec.begin(), type_vec.end(), val) != type_vec.end()) if (find(type_vec.begin(), type_vec.end(), val) != type_vec.end())
continue; continue;
if (find(quantity_type_vec.begin(), quantity_type_vec.end(), val) != quantity_type_vec.end())
{
AOM_ask_value_string(lines[i], "bl_quantity", &val);
if (tc_strlen(val) == 0)
{
AOM_ask_value_string(lines[i], "bl_rev_object_string", &val);
ss << val << ",";
}
}
AOM_UIF_ask_value(lines[i], "jd2_last_release_status", &val); AOM_UIF_ask_value(lines[i], "jd2_last_release_status", &val);
string temp = val; string temp = val;
printf("length:%llu status:%s\n", temp.length(), val); printf("length:%llu status:%s\n", temp.length(), val);
@ -20,12 +30,13 @@ boolean save_judge(tag_t top,string &check,string &name,vector<string> &type_vec
{ {
AOM_ask_value_string(lines[i], "bl_rev_object_string", &val); AOM_ask_value_string(lines[i], "bl_rev_object_string", &val);
name = val; name = val;
return false; return 1;
} }
if (!save_judge(lines[i], check, name,type_vec)) int result = save_judge(lines[i], check, name, type_vec, quantity_type_vec, ss);
return false; if (result)
return result;
} }
return true; return 0;
} }
int bs_bom_save_check(METHOD_message_t *msg, va_list args) int bs_bom_save_check(METHOD_message_t *msg, va_list args)
@ -40,20 +51,29 @@ int bs_bom_save_check(METHOD_message_t *msg, va_list args)
//»ñÈ¡ÊôÐÔ¶ÔÏó //»ñÈ¡ÊôÐÔ¶ÔÏó
tag_t win = va_arg(args, tag_t), top; tag_t win = va_arg(args, tag_t), top;
char *check_val,**type_val; char *check_val, **type_val, **quantity_type;
string name,check; string name, check;
int type_cnt; stringstream ss;
int type_cnt, quantity_type_cnt;
PREF_ask_char_value("connor_bom_check_value", 0, &check_val); PREF_ask_char_value("connor_bom_check_value", 0, &check_val);
PREF_ask_char_values("connor_bom_check_type", &type_cnt, &type_val); PREF_ask_char_values("connor_bom_check_type", &type_cnt, &type_val);
vector<string> type_vec(type_val,type_val+type_cnt); PREF_ask_char_values("connor_bom_quantity_check_type", &quantity_type_cnt, &quantity_type);
vector<string> type_vec(type_val, type_val + type_cnt), quantity_type_vec(quantity_type, quantity_type + quantity_type_cnt);
check = check_val; check = check_val;
BOM_ask_window_top_line(win, &top); BOM_ask_window_top_line(win, &top);
if (!save_judge(top, check, name,type_vec)) { ifail = save_judge(top, check, name, type_vec, quantity_type_vec, ss);
ifail = 1; if (ss.str().length())
name += "对象为冻结状态或未发布不能保存BOM!"; {
EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, name.c_str()); ss << "物料数量为空,请填写!\n";
ifail = 2;
}
else if (ifail) {
ss << name << "对象为冻结状态或未发布不能保存BOM!";
} }
if (ss.str().length())
EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, ss.str().c_str());
printf("bs_bom_save_check end11\n"); printf("bs_bom_save_check end11\n");

@ -0,0 +1,66 @@
#include "util.h"
int bs_test_release_check(EPM_rule_message_t msg)
{
int ifail = EPM_go, att_count, tag_cnt, rel_cnt;
tag_t rootTask, *attachments, win, top, *tags, tag,*rels;
char *val;
EPM_ask_root_task(msg.task, &rootTask);
EPM_ask_attachments(rootTask, EPM_target_attachment, &att_count, &attachments);
TC_argument_list_t * arguments = msg.arguments;
int arg_cnt = TC_number_of_arguments(arguments), status = 0;
stringstream name;
map<string, string> paras;
for (auto i = 0; i<arg_cnt; i++)
{
char *temp_key, *temp_val;
ITK_ask_argument_named_value(TC_next_argument(arguments), &temp_key, &temp_val);
paras[temp_key] = temp_val;
}
for (int i = 0; i<att_count; i++)
{
bool pass = true;
if(!isTypeOf(attachments[i],"JD2_GTSYWTSRevision"))
{
continue;
}
printf("release check1\n");
AOM_ask_value_tags(attachments[i], "JD2_CSJH", &tag_cnt, &tags);
for(int j=0;j<tag_cnt;j++)
{
int tag_cnt2;
tag_t *tags2;
ITEM_ask_latest_rev(tags[j], &tag);
AOM_ask_value_tags(attachments[i], "JD2_CSBG", &tag_cnt2, &tags2);
}
printf("release check2\n");
AOM_ask_value_tags(attachments[i], "JD2_CSBG", &tag_cnt, &tags);
for (int j = 0; j<tag_cnt; j++)
{
if (isTypeOf(tags[j], "JD2_CSBGHZ"))
{
ITEM_ask_latest_rev(tags[j], &tag);
AOM_ask_value_tags(tag, "release_status_list", &rel_cnt, &rels);
if (rel_cnt == 0)
{
AOM_ask_value_string(tag, "object_string", &val);
name <<val<<",";
ifail = EPM_nogo;
}
}
}
}
if (ifail == EPM_nogo) {
name <<"测试计划未发布,请先审核发布!";
EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, name.str().c_str());
}
return ifail;
}

@ -44,7 +44,7 @@ int bs_wl_check(EPM_rule_message_t msg);
int bs_bom_save_check(METHOD_message_t *msg, va_list args); int bs_bom_save_check(METHOD_message_t *msg, va_list args);
int bs_sign_cad(EPM_action_message_t msg); int bs_sign_cad(EPM_action_message_t msg);
int jd_signoff(EPM_action_message_t msg); int jd_signoff(EPM_action_message_t msg);
int bs_test_release_check(EPM_rule_message_t msg);
////将流程信息签入版本属性上去 ////将流程信息签入版本属性上去
//int qtmc_sign_ir(EPM_action_message_t msg); //int qtmc_sign_ir(EPM_action_message_t msg);

@ -45,8 +45,8 @@ $HISTORY$
// Method and Workflow Handler // Method and Workflow Handler
extern DLLAPI int CUST_init_module(int *decision, va_list args) extern DLLAPI int CUST_init_module(int *decision, va_list args)
{ {
int ifail = ITK_ok, n=0; int ifail = ITK_ok, n = 0;
char date_buf[80],*expire_date; char date_buf[80], *expire_date;
time_t now; time_t now;
struct tm *p; struct tm *p;
@ -55,10 +55,11 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args)
printf("register start\n"); printf("register start\n");
ifail = EPM_register_action_handler("bs_file_transfer", "bs_file_transfer", ifail = EPM_register_action_handler("bs_file_transfer", "bs_file_transfer",
(EPM_action_handler_t)bs_file_transfer); (EPM_action_handler_t)bs_file_transfer);
if(ifail) if (ifail)
{ {
printf("register bs_file_transfer failed\n"); printf("register bs_file_transfer failed\n");
}else }
else
{ {
printf("register bs_file_transfer successfully\n"); printf("register bs_file_transfer successfully\n");
@ -115,13 +116,25 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args)
{ {
printf("register bs_sign_cad successfully\n"); printf("register bs_sign_cad successfully\n");
}
ifail = EPM_register_rule_handler("bs_test_release_check", "bs_test_release_check",
(EPM_rule_handler_t)bs_test_release_check);
if (ifail)
{
printf("register bs_test_release_check failed\n");
}
else
{
printf("register bs_test_release_check successfully\n");
} }
ifail = EPM_register_action_handler("jd_signoff", "jd_signoff", ifail = EPM_register_action_handler("jd_signoff", "jd_signoff",
(EPM_action_handler_t)jd_signoff); (EPM_action_handler_t)jd_signoff);
if (ifail) { if (ifail) {
printf("register jd_signoff failed\n"); printf("register jd_signoff failed\n");
} else { }
else {
printf("register jd_signoff successfully\n"); printf("register jd_signoff successfully\n");
} }
@ -149,12 +162,13 @@ extern DLLAPI int USERSERVICE_custom_register_methods()
if (mth_tag.id) if (mth_tag.id)
{ {
printf("register bomwindow_save\n"); printf("register bomwindow_save\n");
status=METHOD_add_action(mth_tag, METHOD_pre_action_type, (METHOD_function_t)bs_bom_save_check, NULL); status = METHOD_add_action(mth_tag, METHOD_pre_action_type, (METHOD_function_t)bs_bom_save_check, NULL);
if(status==ITK_ok) if (status == ITK_ok)
{ {
printf("register bomwindow_save success\n"); printf("register bomwindow_save success\n");
}else }
else
{ {
printf("register bomwindow_save failed\n"); printf("register bomwindow_save failed\n");

Loading…
Cancel
Save