From 31fc859a69256acaa03013b32387cf89fc2e755d Mon Sep 17 00:00:00 2001 From: liyf Date: Mon, 30 Mar 2020 09:47:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=A0=E9=80=92=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HEZON_ITK/bs_bom_check.cpp | 28 +++++++++++++++------------- HEZON_ITK/bs_sap.cpp | 13 +++++++------ 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/HEZON_ITK/bs_bom_check.cpp b/HEZON_ITK/bs_bom_check.cpp index 5ccf513..a01490c 100644 --- a/HEZON_ITK/bs_bom_check.cpp +++ b/HEZON_ITK/bs_bom_check.cpp @@ -1,6 +1,6 @@ #include "util.h" -boolean judge(tag_t top,string &status,string &name) +void judge(tag_t top,string &status,stringstream &ss) { int line_cnt; tag_t *lines; @@ -14,13 +14,11 @@ boolean judge(tag_t top,string &status,string &name) if (temp.length()>0&&status.find(val) != -1) { AOM_ask_value_string(lines[j], "bl_rev_object_string", &val); - name = val; - return false; + ss << val << ','; } - if (!judge(lines[j], status, name)) - return false; + judge(lines[j], status, ss); + } - return true; } int bs_bom_check(EPM_rule_message_t msg) @@ -34,8 +32,8 @@ int bs_bom_check(EPM_rule_message_t msg) TC_argument_list_t * arguments = msg.arguments; int arg_cnt = TC_number_of_arguments(arguments), status = 0; vector types; - string name; map paras; + stringstream ss; for (auto i = 0; i < arg_cnt; i++) { char *temp_key, *temp_val; @@ -61,18 +59,22 @@ int bs_bom_check(EPM_rule_message_t msg) continue; printf("begin check \n"); BOM_set_window_top_line(win, NULLTAG, attachments[i], NULLTAG, &top); - if(!judge(top, paras["status"],name)) + AOM_UIF_ask_value(top, "jd2_last_release_status", &val); + if (tc_strlen(val) && paras["status"].find(val) != -1) { - ifail = EPM_nogo; - break; + AOM_ask_value_string(top, "bl_rev_object_string", &val); + ss << val << ','; } + judge(top, paras["status"], ss); + printf("end check \n"); } BOM_close_window(win); - if (ifail==EPM_nogo) { - name += paras["prompt"]; - EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, name.c_str()); + if (ss.str().length()) { + ss<< paras["prompt"]; + EMH_store_error_s1(EMH_severity_user_error, EMH_PROP_error_base, ss.str().c_str()); + ifail = EPM_nogo; } return ifail; } diff --git a/HEZON_ITK/bs_sap.cpp b/HEZON_ITK/bs_sap.cpp index 7048af5..51be4be 100644 --- a/HEZON_ITK/bs_sap.cpp +++ b/HEZON_ITK/bs_sap.cpp @@ -122,12 +122,13 @@ int bs_sap_material(EPM_action_message_t msg) temp_val = val; } 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); - if (status_cnt) - AOM_UIF_ask_value(rel_status[status_cnt - 1], "object_string", &val); - temp_val = rel_map[val]; + // int status_cnt; + // tag_t *rel_status; + // AOM_ask_value_tags(form, j->second.c_str(), &status_cnt, &rel_status); + // if (status_cnt) + // 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") { AOM_UIF_ask_value(form, j->second.c_str(), &val);