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.

500 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include <server_exits/user_server_exits.h>
#include <epm/epm.h>
#include <time.h>
#include <bom/bom_msg.h>
#include <tccore/item_msg.h>
#include <tccore\iman_msg.h>
#include <vector>
#include <string.h>
/**
* @headerfile user's header files
*/
#include "epm_register_handler.h"
#include "epm_handler_common.h"
using namespace std;
// Method and Workflow Handler
extern DLLAPI int CUST_init_module(int *decision, va_list args)
{
int ifail = ITK_ok;
//把目标对象下的属性id,名称,物料分类,"新增"写入excel放到附件中
ifail = EPM_register_action_handler("JL_Target_Moveto_Annex", "JL_Target_Moveto_Annex",
(EPM_action_handler_t)JL_Target_Moveto_Annex);
if (ifail)
{
printf("register JL_Target_Moveto_Annex failed\n");
}
else
{
printf("register JL_Target_Moveto_Annex successfully\n");
}
//当零部件发布时若为D状态且版本非D00版本则向焊装排产系统数据库表写入发布的零件号、件名、版本、发布日期、发布时间等信息
ifail = EPM_register_action_handler("JL_Welding_Syetem", "JL_Welding_Syetem",
(EPM_action_handler_t)JL_Welding_Syetem);
if (ifail)
{
printf("register JL_Welding_Syetem failed\n");
}
else
{
printf("register JL_Welding_Syetem successfully\n");
}
//订单评审流程结束之后按钮发起bom搭建'才能够点击
ifail = EPM_register_action_handler("JL_Auto_Order_Process", "JL_Auto_Order_Process",
(EPM_action_handler_t)JL_Auto_Order_Process);
if (ifail)
{
printf("register JL_Auto_Order_Process failed\n");
}
else
{
printf("register JL_Auto_Order_Process successfully\n");
}
//添加完成下一个节点的时间到流程描述
ifail = EPM_register_action_handler("JL_Add_FinishTime", "JL_Add_FinishTime",
(EPM_action_handler_t)JL_Add_FinishTime);
if (ifail)
{
printf("register JL_Add_FinishTime failed\n");
}
else
{
printf("register JL_Add_FinishTime successfully\n");
}
//基础件变更检查
ifail = EPM_register_action_handler("JL_Change_Inspection_Of_Basic_Part", "JL_Change_Inspection_Of_Basic_Part",
(EPM_action_handler_t)JL_Change_Inspection_Of_Basic_Part);
if (ifail)
{
printf("register JL_Change_Inspection_Of_Basic_Part failed\n");
}
else
{
printf("register JL_Change_Inspection_Of_Basic_Part successfully\n");
}
//变更信息邮件通知
ifail = EPM_register_action_handler("JL_Send_Mail", "JL_Send_Mail",
(EPM_action_handler_t)JL_Send_Mail);
if (ifail)
{
printf("register JL_Send_Mail failed\n");
}
else
{
printf("register JL_Send_Mail successfully\n");
}
//上传物料BOM到SAP
ifail = EPM_register_action_handler("JLCS_05_BOMSendOutSap", "JLCS_05_BOMSendOutSap",
(EPM_action_handler_t)JLCS_05_BOMSendOutSap);
if(ifail)
{
printf("register JLCS_05_BOMSendOutSap failed\n");
}else
{
printf("register JLCS_05_BOMSendOutSap successfully\n");
}
//上传物料BOM到SAP不需要校验仅需下发一层子件
ifail = EPM_register_action_handler("JLCS_05_BOMSendOutSap_Single", "JLCS_05_BOMSendOutSap_Single",
(EPM_action_handler_t)JLCS_05_BOMSendOutSap_Single);
if(ifail)
{
printf("register JLCS_05_BOMSendOutSap_Single failed\n");
}else
{
printf("register JLCS_05_BOMSendOutSap_Single successfully\n");
}
//更新SAP物料主数据
ifail = EPM_register_action_handler("JLCS_05_BOMUpdateSap_MasterData", "JLCS_05_BOMUpdateSap_MasterData",
(EPM_action_handler_t)JLCS_05_BOMUpdateSap_MasterData);
if(ifail)
{
printf("register JLCS_05_BOMUpdateSap_MasterData failed\n");
}else
{
printf("register JLCS_05_BOMUpdateSap_MasterData successfully\n");
}
//删除SAP物料主数据
ifail = EPM_register_action_handler("JLCS_05_BOMDeleteSap_MasterData", "JLCS_05_BOMDeleteSap_MasterData",
(EPM_action_handler_t)JLCS_05_BOMDeleteSap_MasterData);
if(ifail)
{
printf("register JLCS_05_BOMDeleteSap_MasterData failed\n");
}else
{
printf("register JLCS_05_BOMDeleteSap_MasterData successfully\n");
}
//上传物料主数据到SAP
ifail = EPM_register_action_handler("JLCS_05_BOMSendOutSap_MasterData", "JLCS_05_BOMSendOutSap_MasterData",
(EPM_action_handler_t)JLCS_05_BOMSendOutSap_MasterData);
if (ifail)
{
printf("register JLCS_05_BOMSendOutSap_MasterData failed\n");
}
else
{
printf("register JLCS_05_BOMSendOutSap_MasterData successfully\n");
}
//PDF插入图片
ifail = EPM_register_action_handler("JL_insert_img_pdf", "JL_insert_img_pdf",
(EPM_action_handler_t)jl_insert_img_pdf);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler tm_insert_img_pdf completed!\n");
}
else
{
fprintf(stdout, "Registering action handler tm_insert_img_pdf failed %d!\n", ifail);
}
//订单移至历史订单
ifail = EPM_register_action_handler("JL_insert_modular", "JL_insert_modular",
(EPM_action_handler_t)jl_insert_modular);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_insert_modular completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_insert_modular failed %d!\n", ifail);
}
//DMU验证完成
ifail = EPM_register_action_handler("jl_dmu_auto", "jl_dmu_auto",
(EPM_action_handler_t)jl_dmu_auto);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler jl_dmu_auto completed!\n");
}
else
{
fprintf(stdout, "Registering action handler jl_dmu_auto failed %d!\n", ifail);
}
//变更单移到零件的指定关系文件夹下
ifail = EPM_register_action_handler("jl_locomotion_item", "jl_locomotion_item",
(EPM_action_handler_t)jl_locomotion_item);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler jl_locomotion_item completed!\n");
}
else
{
fprintf(stdout, "Registering action handler jl_locomotion_item failed %d!\n", ifail);
}
//通知节点属性签名
ifail = EPM_register_action_handler("JL_sign_tongzhi", "JL_sign_tongzhi",
(EPM_action_handler_t)JL_sign_tongzhi);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_sign_tongzhi completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_sign_tongzhi failed %d!\n", ifail);
}
//各节点属性签名
ifail = EPM_register_action_handler("JL_sign_master", "JL_sign_master",
(EPM_action_handler_t)JL_sign_master);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_sign_master completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_sign_master failed %d!\n", ifail);
}
//判断对象版本号是否包含参数中配置的版本号
ifail = EPM_register_action_handler("JL_Judge_Revision", "JL_Judge_Revision",
(EPM_action_handler_t)JL_Judge_Revision);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_Judge_Revision completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_Judge_Revision failed %d!\n", ifail);
}
//将引用下的文件移到目标中
ifail = EPM_register_action_handler("JL_add_to_referenece", "JL_add_to_referenece",
(EPM_action_handler_t)JL_add_to_referenece);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_add_to_referenece completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_add_to_referenece failed %d!\n", ifail);
}
//发起SAP主数据维护流程
ifail = EPM_register_action_handler("JL_create_process", "JL_create_process",
(EPM_action_handler_t)JL_create_process);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler JL_create_process completed!\n");
}
else
{
fprintf(stdout, "Registering action handler JL_create_process failed %d!\n", ifail);
}
//测试
ifail = EPM_register_action_handler("test", "test",
(EPM_action_handler_t)test);
if (ifail == ITK_ok)
{
fprintf(stdout, "Registering action handler test completed!\n");
}
else
{
fprintf(stdout, "Registering action handler test failed %d!\n", ifail);
}
return ifail;
}
//
////register service method
extern DLLAPI int USERSERVICE_custom_register_methods()
{
int
status = ITK_ok,
numberOfArguments = 0,
returnValueType = USERARG_STRING_TYPE,
*argumentList = NULL;
USER_function_t functionPtr;
//METHOD_id_t mth_tag;
////METHOD_find_method("Gd6_PartsRevisionMaster",TC_import_msg,&mth_tag);
//
//vector<string> typeVec;
//typeVec.push_back("gd6_sjzl");
//typeVec.push_back("gd6_mz");
//typeVec.push_back("gd6_wlfl");
//typeVec.push_back("gd6_dw");
//typeVec.push_back("gd6_jcjwlh");
//typeVec.push_back("gd6_sfqdj");
//typeVec.push_back("gd6_gyzy");
//for (int i = 0; i < typeVec.size(); i++) {
// METHOD_find_prop_method("Gd6_PartsRevisionMaster", typeVec[i].c_str(), PROP_set_value_string_msg, &mth_tag);
// if ( mth_tag.id != NULLTAG )
// {
// printf("update superBOM start \n ");
// ITKCALL(status = METHOD_add_action2( mth_tag, METHOD_post_action_type,( METHOD_function_t ) JL_form_save, NULL ,true) );
// if(status == ITK_ok){
// printf("success superBOM \n ");
// }else{
// printf("faild superBOM \n ");
// }
// }else{
// printf("not find Gd6_PartsRevisionMaster \n ");
// }
//}
//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;
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 = 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;
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);
}
//===========================================
//规定java需要传递过来的个数
numberOfArguments = 3;
//需要调用的函数地址函数地址
functionPtr = DMU_Review_Process;
//定义java需要传递的参数
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
argumentList[0] = USERARG_TAG_TYPE;
argumentList[1] = USERARG_STRING_TYPE;
argumentList[2] = USERARG_STRING_TYPE;
//argumentList[1] = USERARG_TAG_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("DMU_Review_Process", functionPtr, numberOfArguments,
argumentList, returnValueType);
MEM_free(argumentList);
if (status == ITK_ok)
{
fprintf(stdout, "\n Registering DMU_Review_Process finished\n");
}
else
{
fprintf(stdout, "\n Registering DMU_Review_Process failed %d\n", status);
}
//===========================================
//规定java需要传递过来的个数
numberOfArguments = 3;
//需要调用的函数地址函数地址
functionPtr = Send_Order_Process;
//定义java需要传递的参数
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
argumentList[0] = USERARG_TAG_TYPE;
argumentList[1] = USERARG_STRING_TYPE;
argumentList[2] = USERARG_STRING_TYPE;
//argumentList[1] = USERARG_TAG_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("Send_Order_Process", functionPtr, numberOfArguments,
argumentList, returnValueType);
MEM_free(argumentList);
if (status == ITK_ok)
{
fprintf(stdout, "\n Registering Send_Order_Process finished\n");
}
else
{
fprintf(stdout, "\n Registering Send_Order_Process failed %d\n", status);
}
//===========================================
//规定java需要传递过来的个数
numberOfArguments = 3;
//需要调用的函数地址函数地址
functionPtr = Create_Remodel_Process;
//定义java需要传递的参数
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
argumentList[0] = USERARG_TAG_TYPE;
argumentList[1] = USERARG_STRING_TYPE;
argumentList[2] = USERARG_STRING_TYPE;
//argumentList[1] = USERARG_TAG_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("Create_Remodel_Process", functionPtr, numberOfArguments,
argumentList, returnValueType);
MEM_free(argumentList);
if (status == ITK_ok)
{
fprintf(stdout, "\n Registering Create_Remodel_Process finished\n");
}
else
{
fprintf(stdout, "\n Registering Create_Remodel_Process failed %d\n", status);
}
//===========================================
//规定java需要传递过来的个数
numberOfArguments = 1;
//需要调用的函数地址函数地址
functionPtr = Super_Bom_Appent_Data;
//定义java需要传递的参数
argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int));
argumentList[0] = USERARG_TAG_TYPE;
//argumentList[1] = USERARG_TAG_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("Super_Bom_Appent_Data", functionPtr, numberOfArguments,
argumentList, returnValueType);
MEM_free(argumentList);
if (status == ITK_ok)
{
fprintf(stdout, "\n Registering Super_Bom_Appent_Data finished\n");
}
else
{
fprintf(stdout, "\n Registering Super_Bom_Appent_Data failed %d\n", status);
}
//===========================================
return(status);
}