parent
bdcac11b43
commit
2891a6fbf2
@ -0,0 +1,225 @@
|
|||||||
|
#include "cJSON.h"
|
||||||
|
|
||||||
|
#include <tc/tc.h>
|
||||||
|
#include "epm_handler_common.h"
|
||||||
|
#include <ict/ict_userservice.h>
|
||||||
|
#include <tccore/custom.h>
|
||||||
|
#include <epm/epm_toolkit_tc_utils.h>
|
||||||
|
#include <tccore/aom.h>
|
||||||
|
#include <tccore/aom_prop.h>
|
||||||
|
#include <tccore/item.h>
|
||||||
|
#include <bom/bom.h>
|
||||||
|
#include "ps/ps.h";
|
||||||
|
#include "ps/vrule.h"
|
||||||
|
#include "sstream"
|
||||||
|
#include <tccore/grm.h>
|
||||||
|
#include "epm/epm.h"
|
||||||
|
#include "sa/sa.h"
|
||||||
|
#include "libxl.h"
|
||||||
|
#include <map>
|
||||||
|
#include "epm/signoff.h"
|
||||||
|
#include <ctime>
|
||||||
|
#include <vector>
|
||||||
|
#include <locale>
|
||||||
|
#include <codecvt>
|
||||||
|
#include "ae/dataset.h"
|
||||||
|
#include <iostream>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <tccore/aom.h>
|
||||||
|
#include <tc/emh.h>
|
||||||
|
#include <ict/ict_userservice.h>
|
||||||
|
#include <tc/tc.h>
|
||||||
|
#include <tccore/tctype.h>
|
||||||
|
#include <sa/tcfile.h>
|
||||||
|
#include <ss/ss_errors.h>
|
||||||
|
#include <ae/datasettype.h>
|
||||||
|
#include "chint_Handler.h"
|
||||||
|
#include <regex>
|
||||||
|
#include <ics/ics.h>
|
||||||
|
#include "ado.h"
|
||||||
|
#include "ocilib.h"
|
||||||
|
#include <property/nr.h>
|
||||||
|
#include "CRUL_server_call_httpserver.h"
|
||||||
|
#include "common_itk_util.h"
|
||||||
|
#define EPM_HANDLER_COMMON
|
||||||
|
#define MAX_PATH_LENGTH 200
|
||||||
|
#define MAX_PRINTLINE_LENGTH 400000
|
||||||
|
void WriteLog21(logical debug, const char* format, ...)
|
||||||
|
{
|
||||||
|
va_list arg;
|
||||||
|
char tmp[MAX_PRINTLINE_LENGTH];
|
||||||
|
char date_string[MAX_PATH_LENGTH];
|
||||||
|
time_t now;
|
||||||
|
struct tm* p;
|
||||||
|
|
||||||
|
//get the message
|
||||||
|
memset(tmp, 0, sizeof(tmp));
|
||||||
|
va_start(arg, format);
|
||||||
|
vsprintf(tmp, format, arg);
|
||||||
|
va_end(arg);
|
||||||
|
//----------print to command window for trace--------//
|
||||||
|
//printf("%s\n", tmp);
|
||||||
|
printf("%s\n", tmp);
|
||||||
|
//print message to log file
|
||||||
|
TC_write_syslog("%s\n", tmp);
|
||||||
|
}
|
||||||
|
int CHINT_CHANGETZCG_TO_SRM(EPM_action_message_t msg) {
|
||||||
|
|
||||||
|
tag_t task_tag = NULL_TAG,
|
||||||
|
root_task_tag = NULLTAG,
|
||||||
|
* attachments;;
|
||||||
|
task_tag = msg.task;
|
||||||
|
int att_cnt = 0, ifail = 0;
|
||||||
|
int c_sql_value_count = 0;
|
||||||
|
char** c_sql_values;
|
||||||
|
ITKCALL(PREF_ask_char_values("CHINT_SRM_SQL_CONNECT", &c_sql_value_count, &c_sql_values));
|
||||||
|
|
||||||
|
WriteLog21(true, "------------------------------------------------------------------------------------");
|
||||||
|
WriteLog21(true, "=========================");
|
||||||
|
WriteLog21(true, "CHINT_CHANGETZCG_TO_SRM start");
|
||||||
|
WriteLog21(true, "=========================");
|
||||||
|
|
||||||
|
EPM_ask_root_task(task_tag, &root_task_tag);
|
||||||
|
EPM_ask_attachments(root_task_tag, EPM_target_attachment, &att_cnt, &attachments);
|
||||||
|
WriteLog21(true, "流程目标下的对象数量:%d", att_cnt);
|
||||||
|
for (int i = 0; i < att_cnt; i++)
|
||||||
|
{
|
||||||
|
tag_t tagt = NULLTAG;
|
||||||
|
tagt = attachments[i];
|
||||||
|
char* type1;
|
||||||
|
//获取版本下的数据集
|
||||||
|
int dataset_num = 0;
|
||||||
|
tag_t* dataset_tags = NULL;
|
||||||
|
char* tempValue = NULL;
|
||||||
|
char taskpuid[56] = "\0";
|
||||||
|
ITK__convert_tag_to_uid(task_tag, &tempValue);
|
||||||
|
tc_strcpy(taskpuid, tempValue);
|
||||||
|
ITKCALL(AOM_ask_value_string(tagt, "object_type", &type1));
|
||||||
|
printf("object_type=%s\n", type1);
|
||||||
|
//获取当前登入人组
|
||||||
|
char* groupName = NULL;
|
||||||
|
tag_t t_group = NULLTAG;
|
||||||
|
ITKCALL(POM_ask_group(&groupName, &t_group));
|
||||||
|
printf("g=%s\n", groupName);
|
||||||
|
//获取当前登入人的名称和id
|
||||||
|
char* name;
|
||||||
|
char* id;
|
||||||
|
tag_t user;
|
||||||
|
POM_get_user(&name, &user);
|
||||||
|
POM_get_user_id(&id);
|
||||||
|
printf("name================%s\n", name);
|
||||||
|
printf("id================%s\n", id);
|
||||||
|
|
||||||
|
if (strcmp("ZT2_Change", type1) == 0) {
|
||||||
|
|
||||||
|
int ZT2_ChangeAfter_num = 0;
|
||||||
|
tag_t* ZT2_ChangeAfter_tags = NULL;
|
||||||
|
ITKCALL(AOM_ask_value_tags(tagt, "ZT2_ChangeAfter", &ZT2_ChangeAfter_num, &ZT2_ChangeAfter_tags));
|
||||||
|
|
||||||
|
for (int z = 0; z < ZT2_ChangeAfter_num; z++)
|
||||||
|
{
|
||||||
|
char* type2;
|
||||||
|
ITKCALL(AOM_ask_value_string(ZT2_ChangeAfter_tags[z], "object_type", &type2));
|
||||||
|
|
||||||
|
if (strcmp("ZT2_ProcureRevision", type2) == 0) {
|
||||||
|
//判断是否存在dwg文件
|
||||||
|
//获取版本下的数据集
|
||||||
|
|
||||||
|
|
||||||
|
char* file_name;
|
||||||
|
char* origin_file_name;
|
||||||
|
tag_t* ref_object = NULL;
|
||||||
|
int n_found = 0;
|
||||||
|
ITKCALL(AOM_ask_value_tags(ZT2_ChangeAfter_tags[z], "IMAN_specification", &dataset_num, &dataset_tags));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (int k = 0; k < dataset_num; k++)
|
||||||
|
{
|
||||||
|
|
||||||
|
ITKCALL(AOM_ask_value_string(dataset_tags[k], "object_name", &file_name));
|
||||||
|
printf("file_name=%s\n", file_name);
|
||||||
|
if (strstr(file_name, "pdf") || strstr(file_name, "PDF")) {
|
||||||
|
//获取数据集文件名称
|
||||||
|
ITKCALL(AOM_ask_value_string(dataset_tags[k], "current_name", &origin_file_name));
|
||||||
|
ITKCALL(AE_ask_dataset_named_refs(dataset_tags[k], &n_found, &ref_object));
|
||||||
|
printf("n_found=%d\n", n_found);
|
||||||
|
if (n_found > 0) {
|
||||||
|
//存在.dwg数据集
|
||||||
|
//DFL_ DRAWING_TO_SRM_TASK存储信息
|
||||||
|
|
||||||
|
if (ConnServer(c_sql_values[1], c_sql_values[2], c_sql_values[0]))//"tc11","infodba","//172.16.50.40/tc11" "TC12","infodba","172.16.68.13/tc1"
|
||||||
|
{
|
||||||
|
printf("提示:中间数据表访问失败\n");
|
||||||
|
return ifail;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("提示:中间数据表访问成功\n");
|
||||||
|
char sql1[1024] = "\0";
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(sql1, "insert into CHINT_DRAWING_TO_SRM_TASK(tasksource,flowid,status,factory,username,userid) values ('%s','%s','%s','%s','%s','%s')", "更改后", taskpuid, "未开始", groupName, name, id);
|
||||||
|
printf("提示:sql1==%s\n", sql1);
|
||||||
|
if (ExecuteSQLNoInputParam(sql1) == -1)
|
||||||
|
{
|
||||||
|
printf("提示:数据插入 失败, %s \n", sql1);
|
||||||
|
ifail = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ExecuteSQLNoInputParam("commit");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;//如果发起多个对象,只写一条数据
|
||||||
|
}
|
||||||
|
else if (strcmp("ZT2_Design3DRevision", type2) == 0) {
|
||||||
|
|
||||||
|
//判断是否存在物料
|
||||||
|
int material_num = 0;
|
||||||
|
tag_t* material_tags = NULL;
|
||||||
|
ITKCALL(AOM_ask_value_tags(ZT2_ChangeAfter_tags[z], "representation_for", &material_num, &material_tags));
|
||||||
|
if (material_num > 0) {
|
||||||
|
if (ConnServer(c_sql_values[1], c_sql_values[2], c_sql_values[0]))//"tc11","infodba","//172.16.50.40/tc11" "TC12","infodba","172.16.68.13/tc1"
|
||||||
|
{
|
||||||
|
printf("提示:中间数据表访问失败\n");
|
||||||
|
return ifail;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("提示:中间数据表访问成功\n");
|
||||||
|
char sql1[1024] = "\0";
|
||||||
|
sprintf(sql1, "insert into CHINT_DRAWING_TO_SRM_TASK(tasksource,flowid,status,factory,username,userid) values ('%s','%s','%s','%s','%s','%s')", "更改后", taskpuid, "未开始", groupName, name, id);
|
||||||
|
printf("提示:sql1==%s\n", sql1);
|
||||||
|
if (ExecuteSQLNoInputParam(sql1) == -1)
|
||||||
|
{
|
||||||
|
printf("提示:数据插入 失败, %s \n", sql1);
|
||||||
|
ifail = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ExecuteSQLNoInputParam("commit");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ifail == 1)
|
||||||
|
{
|
||||||
|
EMH_store_error_s1(EMH_severity_user_error, EMH_USER_error_base, "插入数据失败\n"); //错误弹窗
|
||||||
|
}
|
||||||
|
DOFREE(attachments);
|
||||||
|
WriteLog21(true, "=========================");
|
||||||
|
WriteLog21(true, "CHINT_CHANGETZCG_TO_SRM end");
|
||||||
|
WriteLog21(true, "=========================");
|
||||||
|
return ifail;
|
||||||
|
}
|
Loading…
Reference in new issue