/// <summary> /// Handler /// </summary> public void Handler() { List <InterfaceConfigInfo> interfaceConfigInfos = new InterfaceConfigBLL().GetList("[SYS_NAME] = N'" + targetSystem + "'", string.Empty); Log.WriteLogToFile("The interfaceConfigInfos.cout|" + interfaceConfigInfos.Count, AppDomain.CurrentDomain.BaseDirectory + @"\log\", DateTime.Now.ToString("yyyyMMddHHmm")); if (interfaceConfigInfos.Count == 0) { return; } ///发送消息前需要获取执行结果⑨为10.submit、60.submit的数据,逐条按methodCode④提交到不同的业务处理函数内 List <QmisOutboundLogInfo> qmisOutboundLogInfos = new QmisOutboundLogBLL().GetListForUnsend(); if (qmisOutboundLogInfos.Count == 0) { return; } foreach (QmisOutboundLogInfo srmOutboundInfo in qmisOutboundLogInfos) { Log.WriteLogToFile("The srmOutboundInfo.MethodCode|" + srmOutboundInfo.MethodCode, AppDomain.CurrentDomain.BaseDirectory + @"\log\", DateTime.Now.ToString("yyyyMMddHHmm")); ///业务处理函数开始处理之前需要根据logFid更新executeResult⑧为20.processing ///executeStartTime为当前数据库时间 ///在BLL.LES.CommonBll提供UpdateProcessingLog函数,参数为Guid logFid BLL.LES.CommonBLL.UpdateProcessingLog(targetSystem, srmOutboundInfo.Id, loginUser); ///处理结果 ExecuteResultConstants executeResult = ExecuteResultConstants.Processing; ///错误代码 string errorCode = string.Empty; ///报文内容 string msgContent = null; ///错误消息 string errorMsg = string.Empty; InterfaceConfigInfo interfaceConfigInfo = interfaceConfigInfos.FirstOrDefault(d => d.InterfaceCode.ToLower() == srmOutboundInfo.MethodCode.ToLower()); if (interfaceConfigInfo == null) { errorCode = "MC:3x00000021";///接口配置错误 executeResult = ExecuteResultConstants.Exception; } else { /// Log.WriteLogToFile("The switch|" + srmOutboundInfo.MethodCode, AppDomain.CurrentDomain.BaseDirectory + @"\log\", DateTime.Now.ToString("yyyyMMddHHmm")); switch (srmOutboundInfo.MethodCode.ToLower()) { ///LES-SRM-001 VMI供应商物料关系 post 形式发送数据 case "les-qmis-002": executeResult = BFDAQmisVmiAsnPullSheetBLL.SendQmisAsnPullSheet(srmOutboundInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; } } if (!string.IsNullOrEmpty(errorCode)) { errorMsg = GetMessage(ref errorCode); } ///更新任务状态 BLL.LES.CommonBLL.UpdateResultLog(targetSystem, srmOutboundInfo.Id, executeResult, msgContent, errorCode, errorMsg, loginUser); } }
/// <summary> /// Handler /// </summary> public void Handler() { List <InterfaceConfigInfo> interfaceConfigInfos = new InterfaceConfigBLL().GetList("[SYS_NAME] = N'" + targetSystem + "'", string.Empty); if (interfaceConfigInfos.Count == 0) { return; } ///发送消息前需要获取执行结果⑨为10.submit、60.submit的数据,逐条按methodCode④提交到不同的业务处理函数内 List <VmiOutboundLogInfo> vmiOutboundLogInfos = new VmiOutboundLogBLL().GetListForUnsend(); if (vmiOutboundLogInfos.Count == 0) { return; } foreach (VmiOutboundLogInfo vmiOutboundLogInfo in vmiOutboundLogInfos) { ///业务处理函数开始处理之前需要根据logFid更新executeResult⑧为20.processing ///executeStartTime为当前数据库时间 ///在BLL.LES.CommonBll提供UpdateProcessingLog函数,参数为Guid logFid BLL.LES.CommonBLL.UpdateProcessingLog(targetSystem, vmiOutboundLogInfo.Id, loginUser); ///处理结果 ExecuteResultConstants executeResult = ExecuteResultConstants.Processing; ///错误代码 string errorCode = string.Empty; ///报文内容 string msgContent = null; ///错误消息 string errorMsg = string.Empty; InterfaceConfigInfo interfaceConfigInfo = interfaceConfigInfos.FirstOrDefault(d => d.InterfaceCode.Trim().ToLower() == vmiOutboundLogInfo.MethodCode.Trim().ToLower()); if (interfaceConfigInfo == null) { errorCode = "MC:3x00000021";///接口配置错误 executeResult = ExecuteResultConstants.Exception; } else { Log.WriteLogToFile("vmiOutboundLogInfo.MethodCode:" + vmiOutboundLogInfo.MethodCode.ToString().Trim(), AppDomain.CurrentDomain.BaseDirectory + @"\LOG\", DateTime.Now.ToString("yyyyMMdd")); switch (vmiOutboundLogInfo.MethodCode.ToLower()) { ///les-wms-001 物料发货单 (又名供应商发货单) LW001 // case "les-wms-001": executeResult = BFDAInboundOrderBLL.SendInboundOrder(vmiOutboundLogInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; } } if (!string.IsNullOrEmpty(errorCode)) { errorMsg = GetMessage(ref errorCode); } ///更新任务状态 BLL.LES.CommonBLL.UpdateResultLog(targetSystem, vmiOutboundLogInfo.Id, executeResult, msgContent, errorCode, errorMsg, loginUser); } }
/// <summary> /// IFM-005系统接口-发送 /// </summary> /// <param name="targetSystem"></param> /// <param name="id"></param> /// <param name="keyValue"></param> /// <param name="executeResult"></param> /// <param name="msgContent"></param> /// <param name="errorCode"></param> /// <param name="errorMsg"></param> /// <param name="loginUser"></param> /// <returns></returns> public static bool UpdateResultLog(string targetSystem, long id, ExecuteResultConstants executeResult, string msgContent, string errorCode, string errorMsg, string loginUser) { string sql = GetUpdateResultLogSql(targetSystem, id, executeResult, msgContent, errorCode, errorMsg, loginUser); using (var trans = new TransactionScope()) { if (!string.IsNullOrEmpty(sql)) { CommonDAL.ExecuteNonQueryBySql(sql); } trans.Complete(); } return(true); }
/// <summary> /// /// </summary> /// <param name="targetSystem"></param> /// <param name="id"></param> /// <param name="executeResult"></param> /// <param name="msgContent"></param> /// <param name="errorCode"></param> /// <param name="errorMsg"></param> /// <param name="loginUser"></param> /// <returns></returns> public static string GetUpdateResultLogSql(string targetSystem, long id, ExecuteResultConstants executeResult, string msgContent, string errorCode, string errorMsg, string loginUser) { ///时间更新条件 string timeUpdateFields = string.Empty; if (executeResult == ExecuteResultConstants.Processing) { timeUpdateFields = ",[EXECUTE_START_TIME] = GETDATE(),[EXECUTE_TIMES] = ISNULL([EXECUTE_TIMES],0) + 1 "; } else if (executeResult == ExecuteResultConstants.Resend) { timeUpdateFields = ",[EXECUTE_START_TIME] = NULL,[EXECUTE_END_TIME] = NULL "; } else if (executeResult == ExecuteResultConstants.Cancel) { timeUpdateFields = string.Empty; } else { timeUpdateFields = ",[EXECUTE_END_TIME] = GETDATE() "; } return("update [LES].[TI_IFM_" + targetSystem.ToUpper() + "_OUTBOUND_LOG] " + "set [EXECUTE_RESULT] = " + (int)executeResult + "," + "[MSG_CONTENT] = N'" + msgContent + "'," + "[ERROR_CODE] = N'" + errorCode + "'," + "[ERROR_MSG] = N'" + errorMsg + "'," + "[MODIFY_USER] = N'" + loginUser + "'," + "[MODIFY_DATE] = GETDATE()" + timeUpdateFields + "where [ID] = " + id + ";" + "insert into [LES].[TI_IFM_" + targetSystem.ToUpper() + "_OUTBOUND_DETAIL_LOG] " + "(FID, LOG_FID, TRANS_NO, METHOD_CODE, EXECUTE_START_TIME, EXECUTE_END_TIME, EXECUTE_RESULT, ERROR_CODE, ERROR_MSG, VALID_FLAG, CREATE_USER, CREATE_DATE) " + "select NEWID(),[FID],[TRANS_NO],[METHOD_CODE],[EXECUTE_START_TIME],[EXECUTE_END_TIME],[EXECUTE_RESULT],[ERROR_CODE],[ERROR_MSG],1,N'" + loginUser + "',GETDATE() " + "from [LES].[TI_IFM_" + targetSystem.ToUpper() + "_OUTBOUND_LOG] " + "where [ID] = " + id + ";"); }
/// <summary> /// Handler /// </summary> public void Handler() { List <InterfaceConfigInfo> interfaceConfigInfos = new InterfaceConfigBLL().GetList("[SYS_NAME] = N'" + targetSystem + "'", string.Empty); if (interfaceConfigInfos.Count == 0) { return; } ///发送消息前需要获取执行结果⑨为10.submit、60.submit的数据,逐条按methodCode④提交到不同的业务处理函数内 List <SapOutboundLogInfo> sapOutboundLogInfos = new SapOutboundLogBLL().GetListForUnsend(); if (sapOutboundLogInfos.Count == 0) { return; } foreach (SapOutboundLogInfo sapOutboundLogInfo in sapOutboundLogInfos) { ///业务处理函数开始处理之前需要根据logFid更新executeResult⑧为20.processing ///executeStartTime为当前数据库时间 ///在BLL.LES.CommonBll提供UpdateProcessingLog函数,参数为Guid logFid BLL.LES.CommonBLL.UpdateProcessingLog(targetSystem, sapOutboundLogInfo.Id, loginUser); ///处理结果 ExecuteResultConstants executeResult = ExecuteResultConstants.Processing; ///错误代码 string errorCode = string.Empty; ///报文内容 string msgContent = null; ///错误消息 string errorMsg = string.Empty; InterfaceConfigInfo interfaceConfigInfo = interfaceConfigInfos.FirstOrDefault(d => d.InterfaceCode.ToLower() == sapOutboundLogInfo.MethodCode.ToLower()); if (interfaceConfigInfo == null) { errorCode = "MC:3x00000021";///接口配置错误 executeResult = ExecuteResultConstants.Exception; } else { /// switch (sapOutboundLogInfo.MethodCode.ToLower().Trim()) { ///物料移动数据发送至SAP TI_IFM_SAP_TRAN_OUT case "les-sap-009": executeResult = BFDAMaterialMoveBLL.SendMaterialMoveData(sapOutboundLogInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-SAP-017 缺件影响生产订单范围 TI_IFM_SAP_PRODUCTION_ORDER_LACK_MATERIAL case "les-sap-017": executeResult = BFDAProductionOrderLackMaterialBLL.SendLackMaterialData(sapOutboundLogInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-SAP-015 断点替换记录 TI_IFM_SAP_BREAKPOINT_REPLACE case "les-sap-015": executeResult = BFDASAPBreakpointReplaceBLL.SendBreakpointReplaceData(sapOutboundLogInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-SAP-012 发送盘点报告 TI_IFM_SAP_INVENTORY_CHECK_REPORT case "les-sap-012": executeResult = BFDASAPInventoryCheckReportBLL.SendInventoryCheckReportData(sapOutboundLogInfo.Fid, interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; } } if (!string.IsNullOrEmpty(errorCode)) { errorMsg = GetMessage(ref errorCode); } ///更新任务状态 BLL.LES.CommonBLL.UpdateResultLog(targetSystem, sapOutboundLogInfo.Id, executeResult, msgContent, errorCode, errorMsg, loginUser); } }
/// <summary> /// Handler /// </summary> public void Handler() { List <InterfaceConfigInfo> interfaceConfigInfos = new InterfaceConfigBLL().GetList("[SYS_NAME] = N'" + targetSystem + "'", string.Empty); if (interfaceConfigInfos.Count == 0) { return; } ///发送消息前需要获取执行结果⑨为10.submit、60.submit的数据,逐条按methodCode④提交到不同的业务处理函数内 List <SrmOutboundLogInfo> vmiOutboundLogInfos = new SrmOutboundLogBLL().GetListForUnsend(); if (vmiOutboundLogInfos.Count == 0) { return; } foreach (SrmOutboundLogInfo srmOutboundInfo in vmiOutboundLogInfos) { ///业务处理函数开始处理之前需要根据logFid更新executeResult⑧为20.processing ///executeStartTime为当前数据库时间 ///在BLL.LES.CommonBll提供UpdateProcessingLog函数,参数为Guid logFid BLL.LES.CommonBLL.UpdateProcessingLog(targetSystem, srmOutboundInfo.Id, loginUser); ///处理结果 ExecuteResultConstants executeResult = ExecuteResultConstants.Processing; ///错误代码 string errorCode = string.Empty; ///报文内容 string msgContent = null; ///错误消息 string errorMsg = string.Empty; InterfaceConfigInfo interfaceConfigInfo = interfaceConfigInfos.FirstOrDefault(d => d.InterfaceCode.ToLower() == srmOutboundInfo.MethodCode.ToLower()); if (interfaceConfigInfo == null) { executeResult = ExecuteResultConstants.Exception; errorCode = "3x00000021";///接口配置错误 errorMsg = GetMessage(ref errorCode); BLL.LES.CommonBLL.UpdateResultLog(targetSystem, srmOutboundInfo.Id, executeResult, msgContent, errorCode, errorMsg, loginUser); continue; } /// switch (srmOutboundInfo.MethodCode.ToLower()) { ///LES-SRM-001 VMI供应商物料关系 √ case "les-srm-001": executeResult = BFDAVmiSupplierPartBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-SRM-002 供货计划 √ TI_IFM_SRM_SUPPLY_PLAN case "les-srm-002": executeResult = BFDASupplyPlanBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-WMS-004 JIS 拉动单 (排序拉动单) √ TI_IFM_SRM_JIS_PULL_ORDER case "les-srm-004": executeResult = BFDAJisPullOrderBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; /// LES-SRM-005 物料拉动单 √ TI_IFM_SRM_PULLING_ORDER case "les-srm-005": executeResult = BFDAPullingOrderBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; ///LES-SRM-008 入库数据 √ TI_IFM_SRM_TRAN_OUT case "les-srm-008": executeResult = BFDATranOutBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; /// LES-SRM-009 物料退货单 TI_IFM_SRM_PART_RETURN_SHEET case "les-srm-009": executeResult = BFDAPartReturnSheetBLL.Send(srmOutboundInfo.Fid.GetValueOrDefault(), interfaceConfigInfo, ref errorCode, ref errorMsg, out msgContent); break; } errorMsg = GetMessage(ref errorCode); Log.WriteLogToFile(logFlag, srmOutboundInfo.MethodCode + ":Handler:msgContent:" + msgContent, AppDomain.CurrentDomain.BaseDirectory + @"\log\", DateTime.Now.ToString("yyyyMMddHH")); ///更新任务状态 BLL.LES.CommonBLL.UpdateResultLog(targetSystem, srmOutboundInfo.Id, executeResult, msgContent, errorCode, errorMsg, loginUser); } }