增加测试报告检测

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

@ -1,17 +1,27 @@
#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;
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())
{
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);
string temp = 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);
name = val;
return false;
return 1;
}
if (!save_judge(lines[i], check, name,type_vec))
return false;
int result = save_judge(lines[i], check, name, type_vec, quantity_type_vec, ss);
if (result)
return result;
}
return true;
return 0;
}
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;
char *check_val,**type_val;
string name,check;
int type_cnt;
char *check_val, **type_val, **quantity_type;
string name, check;
stringstream 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);
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;
BOM_ask_window_top_line(win, &top);
if (!save_judge(top, check, name,type_vec)) {
ifail = 1;
name += "对象为冻结状态或未发布不能保存BOM!";
EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, name.c_str());
ifail = save_judge(top, check, name, type_vec, quantity_type_vec, ss);
if (ss.str().length())
{
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");

@ -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_sign_cad(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);

@ -1,12 +1,12 @@
/*===================================================================================================
Copyright(c) 2011 Siemens PLM Software Corp. All rights reserved.
Unpublished - All rights reserved
Copyright(c) 2011 Siemens PLM Software Corp. All rights reserved.
Unpublished - All rights reserved
====================================================================================================
File description:
Filename : epm_register_handler.c
This file registers functions which are called when Teamcenter is being initialized
Filename : epm_register_handler.c
This file registers functions which are called when Teamcenter is being initialized
====================================================================================================
Date Name Description of Change
@ -45,20 +45,21 @@ $HISTORY$
// Method and Workflow Handler
extern DLLAPI int CUST_init_module(int *decision, va_list args)
{
int ifail = ITK_ok, n=0;
char date_buf[80],*expire_date;
int ifail = ITK_ok, n = 0;
char date_buf[80], *expire_date;
time_t now;
struct tm *p;
*decision = ALL_CUSTOMIZATIONS;
printf("register start\n");
ifail = EPM_register_action_handler("bs_file_transfer", "bs_file_transfer",
(EPM_action_handler_t)bs_file_transfer);
if(ifail)
ifail = EPM_register_action_handler("bs_file_transfer", "bs_file_transfer",
(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");
@ -105,26 +106,38 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args)
printf("register bs_wl_check successfully\n");
}
ifail = EPM_register_action_handler("bs_sign_cad", "bs_sign_cad",
ifail = EPM_register_action_handler("bs_sign_cad", "bs_sign_cad",
(EPM_action_handler_t)bs_sign_cad);
if (ifail)
{
printf("register bs_sign_cad failed\n");
}
else
{
printf("register bs_sign_cad successfully\n");
if (ifail)
{
printf("register bs_sign_cad failed\n");
}
else
{
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",
(EPM_action_handler_t)jd_signoff);
if (ifail) {
printf("register jd_signoff failed\n");
} else {
printf("register jd_signoff successfully\n");
ifail = EPM_register_action_handler("jd_signoff", "jd_signoff",
(EPM_action_handler_t)jd_signoff);
if (ifail) {
printf("register jd_signoff failed\n");
}
else {
printf("register jd_signoff successfully\n");
}
}
//if(ifail == ITK_ok)
//{
// fprintf(stdout,"Registering action handler qtmc-sign-ir completed!\n");
@ -134,7 +147,7 @@ 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;
}
//
@ -149,12 +162,13 @@ extern DLLAPI int USERSERVICE_custom_register_methods()
if (mth_tag.id)
{
printf("register bomwindow_save\n");
status=METHOD_add_action(mth_tag, METHOD_pre_action_type, (METHOD_function_t)bs_bom_save_check, NULL);
if(status==ITK_ok)
status = METHOD_add_action(mth_tag, METHOD_pre_action_type, (METHOD_function_t)bs_bom_save_check, NULL);
if (status == ITK_ok)
{
printf("register bomwindow_save success\n");
}else
}
else
{
printf("register bomwindow_save failed\n");

Loading…
Cancel
Save