You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
380 lines
11 KiB
380 lines
11 KiB
#include <epm/epm.h>
|
|
#include <server_exits/user_server_exits.h>
|
|
#include <tccore/custom.h>
|
|
#include <tccore/item_msg.h>
|
|
#include "BH_handler.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <ctype.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <tccore/method.h>
|
|
#include "BH_task_dateset.h"
|
|
|
|
|
|
/**
|
|
* @headerfile user's header files
|
|
*/
|
|
#include "BH_handler.h"
|
|
#include "handler_common.h"
|
|
|
|
|
|
int checkvalue(char* str)
|
|
{
|
|
|
|
int i;
|
|
for (i = 0;i < strlen(str);i++)
|
|
{
|
|
if (isdigit(str[i]) == 0)
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
char* decrypt(char* lic_file)
|
|
{
|
|
char* p = NULL, buf[512], * str;
|
|
int i = 0;
|
|
|
|
FILE* fp1 = NULL;
|
|
if ((fp1 = fopen(lic_file, "r")) == NULL)
|
|
{
|
|
printf("can not open the license file\n");
|
|
return "";
|
|
}
|
|
fgets(buf, 9, fp1);
|
|
//printf("buf=%s\n",buf);
|
|
p = buf;
|
|
while (*p != '\0')
|
|
*p++ ^= i++;
|
|
p = buf;
|
|
while (*p != '\0')
|
|
*p++ ^= i++;
|
|
p = buf;
|
|
while (*p != '\0')
|
|
*p++ ^= i++;
|
|
return buf;
|
|
}
|
|
char* encrypt(char* str)
|
|
{
|
|
char* p = str;
|
|
int i = 0;
|
|
while (*p != '\0')
|
|
*p++ ^= i++;
|
|
return str;
|
|
}
|
|
|
|
extern DLLAPI int USERSERVICE_custom_register_handlers(int* decision, va_list args)
|
|
{
|
|
int ifail = ITK_ok, n = 0;
|
|
char date_buf[80], * expire_date, env[512], temp1[512], temp2[512];
|
|
time_t now;
|
|
struct tm* p;
|
|
|
|
*decision = ALL_CUSTOMIZATIONS;
|
|
|
|
//DWG签名
|
|
ifail = EPM_register_action_handler("BH_Mapping_Att", "BH_Mapping_Att",
|
|
(EPM_action_handler_t)BH_Mapping_Att);
|
|
if (ifail == ITK_ok)
|
|
{
|
|
fprintf(stdout, "Registering action handler BH_Mapping_Att completed!\n");
|
|
}
|
|
else
|
|
{
|
|
fprintf(stdout, "Registering action handler BH_Mapping_Att failed %d!\n", ifail);
|
|
}
|
|
|
|
//数据移植
|
|
(ifail = EPM_register_action_handler("Connor_Data_Transplant", "Connor_Data_Transplant",
|
|
(EPM_action_handler_t)Connor_Data_Transplant));
|
|
if (ifail == 0) {
|
|
printf("Registering action handler Connor_Data_Transplant successful\n");
|
|
}
|
|
else {
|
|
printf("Registering action handler Connor_Data_Transplant failed %d\n", ifail);
|
|
}
|
|
|
|
//物料&BOM数据自动下发
|
|
(ifail = EPM_register_action_handler("BH_Part_Capp", "物料&BOM数据自动下发",
|
|
(EPM_action_handler_t)BH_Part_Capp));
|
|
if (ifail == 0){
|
|
printf("Registering action handler BH_Part_Capp successful\n");
|
|
}else{
|
|
printf("Registering action handler BH_Part_Capp failed %d\n", ifail);
|
|
}
|
|
|
|
//图纸&BOM数据自动下发
|
|
(ifail = EPM_register_action_handler("BH_Design_Capp", "图纸&BOM数据自动下发",
|
|
(EPM_action_handler_t)BH_Design_Capp));
|
|
if (ifail == 0){
|
|
printf("Registering action handler BH_Design_Capp successful\n");
|
|
}else{
|
|
printf("Registering action handler BH_Design_Capp failed %d\n", ifail);
|
|
}
|
|
//变更数据自动下发
|
|
(ifail = EPM_register_action_handler("BH_Change_Capp", "变更数据自动下发",
|
|
(EPM_action_handler_t)BH_Change_Capp));
|
|
if (ifail == 0) {
|
|
printf("Registering action handler BH_Change_Capp successful\n");
|
|
}
|
|
else {
|
|
printf("Registering action handler BH_Change_Capp failed %d\n", ifail);
|
|
}
|
|
|
|
|
|
return ifail;
|
|
}
|
|
//定义JAVA调用的服务
|
|
//register service method
|
|
extern DLLAPI int USERSERVICE_custom_register_methods(int* decision, va_list args)
|
|
{
|
|
int
|
|
status = ITK_ok,
|
|
numberOfArguments = 0,
|
|
returnValueType = USERARG_STRING_TYPE,
|
|
* argumentList = NULL;
|
|
USER_function_t functionPtr;
|
|
|
|
//QTM_ebom_to_pbom
|
|
//规定java需要传递过来的个数
|
|
numberOfArguments = 1;
|
|
//需要调用的函数地址函数地址
|
|
functionPtr = Connor_set_bypass;
|
|
//定义java需要传递的参数
|
|
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
|
|
argumentList[0] = USERARG_STRING_TYPE;
|
|
//argumentList[1] = USERARG_DATE_TYPE;
|
|
//argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE;
|
|
//argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
|
|
//returnValueType = USERARG_STRING_TYPE;
|
|
//定义返回值的类型
|
|
returnValueType = USERARG_VOID_TYPE;
|
|
ITKCALL(status = USERSERVICE_register_method("Connor_set_bypass", functionPtr, numberOfArguments,
|
|
argumentList, returnValueType));
|
|
MEM_free(argumentList);
|
|
if (status == ITK_ok)
|
|
{
|
|
fprintf(stdout, "\n Registering Connor_set_bypass finished\n");
|
|
}
|
|
else
|
|
{
|
|
fprintf(stdout, "\n Registering Connor_set_bypass failed %d\n", status);
|
|
}
|
|
|
|
|
|
|
|
////===========================================
|
|
numberOfArguments = 1;
|
|
//需要调用的函数地址函数地址
|
|
functionPtr = Connor_close_bypass;
|
|
//定义java需要传递的参数
|
|
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
|
|
argumentList[0] = USERARG_STRING_TYPE;
|
|
//argumentList[1] = USERARG_DATE_TYPE;
|
|
//argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE;
|
|
//argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
|
|
//returnValueType = USERARG_STRING_TYPE;
|
|
//定义返回值的类型
|
|
returnValueType = USERARG_VOID_TYPE;
|
|
ITKCALL(status = USERSERVICE_register_method("Connor_close_bypass", functionPtr, numberOfArguments,
|
|
argumentList, returnValueType));
|
|
MEM_free(argumentList);
|
|
if (status == ITK_ok)
|
|
{
|
|
fprintf(stdout, "\n Registering Connor_close_bypass finished\n");
|
|
}
|
|
else
|
|
{
|
|
fprintf(stdout, "\n Registering Connor_close_bypass failed %d\n", status);
|
|
}
|
|
|
|
//numberOfArguments = 1;
|
|
////需要调用的函数地址函数地址
|
|
//functionPtr = remove_class;
|
|
////定义java需要传递的参数
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] = USERARG_STRING_TYPE;
|
|
//
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("IcoRemove", functionPtr, numberOfArguments,
|
|
// argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_set_bypass finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_set_bypass failed %d\n" , status );
|
|
//}
|
|
|
|
|
|
|
|
////===========================================
|
|
|
|
//numberOfArguments = 1;
|
|
////需要调用的函数地址函数地址
|
|
//functionPtr = ORIGIN_set_bypass;
|
|
////定义java需要传递的参数
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] = USERARG_STRING_TYPE;
|
|
////argumentList[1] = USERARG_DATE_TYPE;
|
|
////argumentList[2] = USERARG_STRING_TYPE +USERARG_ARRAY_TYPE;
|
|
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
|
|
////returnValueType = USERARG_STRING_TYPE;
|
|
////定义返回值的类型
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("ORIGIN_set_bypass", functionPtr, numberOfArguments,
|
|
// argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_set_bypass finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_set_bypass failed %d\n" , status );
|
|
//}
|
|
|
|
|
|
//===========================================
|
|
|
|
//numberOfArguments = 2;
|
|
//functionPtr = connor_set_release_status;
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] =USERARG_TAG_TYPE ;
|
|
//argumentList[1] =USERARG_STRING_TYPE ;
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("connor_set_release_status", functionPtr, numberOfArguments,
|
|
//argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
//fprintf( stdout, "\n Registering connor_set_release_status finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
//fprintf( stdout, "\n Registering connor_set_release_status failed %d\n" , status );
|
|
//}
|
|
|
|
////=============================================
|
|
//numberOfArguments = 1;
|
|
//functionPtr = ORIGIN_close_bypass;
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] = USERARG_STRING_TYPE;
|
|
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
|
|
////returnValueType = USERARG_STRING_TYPE;
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("ORIGIN_close_bypass", functionPtr, numberOfArguments,
|
|
// argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_close_bypass finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
// fprintf( stdout, "\n Registering ORIGIN_close_bypass failed %d\n" , status );
|
|
//}
|
|
////=================================================================
|
|
//numberOfArguments = 1;
|
|
//functionPtr = getDbMsg;
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] = USERARG_STRING_TYPE;
|
|
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
|
|
////returnValueType = USERARG_STRING_TYPE;
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("HX_GetProjMsg", functionPtr, numberOfArguments,
|
|
// argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
// fprintf( stdout, "\n Registering Connor_GetProjMsg finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
// fprintf( stdout, "\n Registering Connor_GetProjMsg failed %d\n" , status );
|
|
//}
|
|
|
|
////=============================================
|
|
|
|
|
|
|
|
////=======================
|
|
//numberOfArguments = 1;
|
|
//functionPtr = USERSEVICE_TEST;
|
|
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
|
|
//argumentList[0] =USERARG_TAG_TYPE ;
|
|
//returnValueType = USERARG_VOID_TYPE;
|
|
//ITKCALL(status = USERSERVICE_register_method("SendItem", functionPtr, numberOfArguments,
|
|
// argumentList, returnValueType ));
|
|
//MEM_free(argumentList);
|
|
//if(status == ITK_ok)
|
|
//{
|
|
// fprintf( stdout, "\n Registering SendItem finished\n" );
|
|
//}
|
|
//else
|
|
//{
|
|
// fprintf( stdout, "\n Registering SendItem failed %d\n" , status );
|
|
//}
|
|
|
|
//=======================
|
|
|
|
* decision = ALL_CUSTOMIZATIONS;
|
|
METHOD_id_t mth_tag;
|
|
//int status = ITK_ok;
|
|
|
|
/*
|
|
{
|
|
|
|
ITKCALL( METHOD_find_prop_method ( "HX3_GYTRevision", "HX3_MUJT", PROP_set_value_tags_msg, &mth_tag ) );
|
|
if ( mth_tag.id != NULLTAG )
|
|
{
|
|
printf("find HX3_GYTRevision HX3_MUJT \n ");
|
|
ITKCALL(status = METHOD_add_action( mth_tag, METHOD_post_action_type,( METHOD_function_t ) HX3_post_prop_set_MJ, NULL ) );
|
|
if(status == ITK_ok){
|
|
printf("success HX3_MUJT \n ");
|
|
}else{
|
|
printf("faild HX3_MUJT \n ");
|
|
}
|
|
}else{
|
|
printf("not find HX3_GYTRevision HX3_MUJT \n ");
|
|
}
|
|
}
|
|
|
|
{
|
|
ITKCALL( METHOD_find_prop_method ( "JK8MaterialRevisionMaster", "jk8SpecModel", PROP_set_value_string_msg, &mth_tag ) );
|
|
if ( mth_tag.id != NULLTAG )
|
|
{
|
|
printf("find HX3_GYTRevision JK8Material \n ");
|
|
ITKCALL(status = METHOD_add_action( mth_tag, METHOD_pre_action_type,( METHOD_function_t ) LP_set_prop, NULL ) );
|
|
if(status == ITK_ok){
|
|
printf("success JK8Material \n ");
|
|
}else{
|
|
printf("faild JK8Material \n ");
|
|
}
|
|
}else{
|
|
printf("not find JK8Material HX3_JIANJT \n ");
|
|
}
|
|
}
|
|
|
|
{
|
|
ITKCALL( METHOD_find_prop_method ( "HX3_ZPTRevision", "last_mod_date", PROP_set_value_date_msg, &mth_tag ) );
|
|
if ( mth_tag.id != NULLTAG )
|
|
{
|
|
printf("find HX3_ZPTRevision last_mod_date \n ");
|
|
ITKCALL(status = METHOD_add_action( mth_tag, METHOD_post_action_type,( METHOD_function_t ) HX3_mod_date, NULL ) );
|
|
if(status == ITK_ok){
|
|
printf("success last_mod_date \n ");
|
|
}else{
|
|
printf("faild last_mod_date \n ");
|
|
}
|
|
}else{
|
|
printf("not find HX3_ZPTRevision last_mod_date \n ");
|
|
}
|
|
}
|
|
*/
|
|
|
|
return(status);
|
|
} |