Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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 + ";");
        }
Ejemplo n.º 5
0
        /// <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);
            }
        }
Ejemplo n.º 6
0
        /// <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);
            }
        }