From 1ef46fed69e4917ca7b483b7cf84efa2fcd58ba5 Mon Sep 17 00:00:00 2001 From: liyf Date: Thu, 16 Jan 2020 14:03:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HEZON_ITK/bs_bom_save_check.cpp | 48 ++++++++++++------ HEZON_ITK/bs_test_release_check.cpp | 66 +++++++++++++++++++++++++ HEZON_ITK/epm_handler_common.h | 2 +- HEZON_ITK/epm_register_handler.cxx | 76 +++++++++++++++++------------ 4 files changed, 146 insertions(+), 46 deletions(-) create mode 100644 HEZON_ITK/bs_test_release_check.cpp diff --git a/HEZON_ITK/bs_bom_save_check.cpp b/HEZON_ITK/bs_bom_save_check.cpp index 0a197a9..7631a4d 100644 --- a/HEZON_ITK/bs_bom_save_check.cpp +++ b/HEZON_ITK/bs_bom_save_check.cpp @@ -1,17 +1,27 @@ #include "util.h" -boolean save_judge(tag_t top,string &check,string &name,vector &type_vec) +int save_judge(tag_t top, string &check, string &name, vector &type_vec, vector &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 &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 type_vec(type_val,type_val+type_cnt); + PREF_ask_char_values("connor_bom_quantity_check_type", &quantity_type_cnt, &quantity_type); + + vector 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"); diff --git a/HEZON_ITK/bs_test_release_check.cpp b/HEZON_ITK/bs_test_release_check.cpp new file mode 100644 index 0000000..1646f8d --- /dev/null +++ b/HEZON_ITK/bs_test_release_check.cpp @@ -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 paras; + for (auto i = 0; i