Exemple #1
0
        public async Task <List <MSGBindingModels> > GetMessagesBySequenceIDList(List <int> sequenceIdList)
        {
            var list = new List <MSGBindingModels>();

            try
            {
                userid = HttpContext.Current.User.Identity.GetUserId();
                var systemCode = UserManager.FindById(userid).SystemCode;

                foreach (int sequenceId in sequenceIdList)
                {
                    var oMSG = _db.OMSG.Find(sequenceId);
                    if (oMSG.FromSystem == systemCode)
                    {
                        var MSG1 = _db.MSG1.Find(sequenceId);
                        var MSG  = new MSGBindingModels();
                        MSG.OMSG = oMSG;
                        MSG.MSG1 = MSG1;
                        if (!list.Contains(MSG))
                        {
                            list.Add(MSG);
                        }
                    }
                }
                return(list);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Exemple #2
0
 public async Task <MSGBindingModels> GetFirstMesssage()
 {
     try
     {
         userid = HttpContext.Current.User.Identity.GetUserId();
         var systemCode = UserManager.FindById(userid).SystemCode;
         //通过此SQL获取当前未处理的SequenceID最小的ID值
         var sqlcmd = string.Format(@"SELECT TOP 1 T0.SequenceID FROM IF_OMSG T0
                                       JOIN IF_OMSG3 T1 on T0.FromSystem = T1.FromSystem AND T0.FromCompany = T1.FromCompany AND T0.Flag = T1.Flag AND T0.ObjectType = T1.ObjectType AND T1.ToSystem = '{0}'
                                       LEFT JOIN IF_MSG2 T2 on T0.SequenceID = T2.SequenceID AND T2.targetsystem = '{0}'
                                     WHERE (T0.Status <> -1) AND (( T2.Status IS NULL) OR (T2.Status <>0 AND T2.Status <= T0.Status))  ORDER BY T0.SequenceID ", systemCode);
         var data   = _db.Database.SqlQuery <int>(sqlcmd);
         if (data.Count() > 0)
         {
             var sequenceId = data.First();
             var oMSG       = _db.OMSG.Find(sequenceId);
             var MSG1       = _db.MSG1.Find(sequenceId);
             var MSG        = new MSGBindingModels();
             MSG.OMSG = oMSG;
             MSG.MSG1 = MSG1;
             return(MSG);
         }
         else
         {
             return(null);
         }
     }
     catch (Exception ex)
     {
         //return null;
         Logger.Writer("GetFirstMessage:\r\n" + ex.Message);
         throw new MyHttpException("GetFirstMessage:", ex);
     }
 }
Exemple #3
0
        public ActionResult GetMSG()
        {
            MSGBindingModels MSGBindingModels = new MSGBindingModels();
            var o = _db.OMSG.Find(1);
            var b = _db.MSG1.Find(1);

            MSGBindingModels.OMSG = o;
            MSGBindingModels.MSG1 = b;
            return(Json(MSGBindingModels, JsonRequestBehavior.AllowGet));
        }
Exemple #4
0
 public ActionResult AddTestWithObject(MSGBindingModels MSG)
 {
     try
     {
         var o = MSG.OMSG;
         var b = MSG.MSG1;
         _db.OMSG.Add(o);
         _db.MSG1.Add(b);
         _db.SaveChanges();
         return(Json("Ok", JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(ex.Message, JsonRequestBehavior.AllowGet));
     }
 }
Exemple #5
0
        public async Task <MSGBindingModels> GetMessageBySequenceID()
        {
            var sequenceId = Convert.ToInt32(HttpContext.Current.Request["sequenceId"]);

            try
            {
                var oMSG = _db.OMSG.Find(sequenceId);
                var MSG1 = _db.MSG1.Find(sequenceId);
                var MSG  = new MSGBindingModels();
                MSG.OMSG = oMSG;
                MSG.MSG1 = MSG1;
                return(MSG);
            }
            catch (Exception ex)
            {
                var MSG = new MSGBindingModels();
                return(MSG);
            }
        }
Exemple #6
0
        public async Task <List <MSGBindingModels> > GetMessagesByTOPNumber()
        {
            string top  = HttpContext.Current.Request["top"];
            var    list = new List <MSGBindingModels>();

            try
            {
                userid = HttpContext.Current.User.Identity.GetUserId();
                var systemCode     = UserManager.FindById(userid).SystemCode;
                var sqlcmd         = string.Format(@"SELECT TOP {0}  T0.SequenceID FROM IF_OMSG T0
                                            JOIN IF_OMSG3 T1 ON T0.FromSystem = T1.FromSystem AND T0.FromCompany = T1.FromCompany AND T0.Flag = T1.Flag AND T0.ObjectType = T1.ObjectType AND T1.ToSystem = '{1}'
                                            LEFT JOIN IF_MSG2 T2 ON T0.SequenceID = T2.SequenceID AND T2.targetsystem = '{1}'
                                            WHERE (T0.Status <> -1) AND (( T2.Status IS NULL) OR (T2.Status <>0 AND T2.Status <= T0.Status))  ORDER BY T0.SequenceID ", top, systemCode);
                var sequenceIdList = _db.Database.SqlQuery <int>(sqlcmd);
                if (sequenceIdList.Count() > 0)
                {
                    foreach (int sequenceId in sequenceIdList)
                    {
                        var oMSG = _db.OMSG.Find(sequenceId);
                        var MSG1 = _db.MSG1.Find(sequenceId);
                        var MSG  = new MSGBindingModels();
                        MSG.OMSG = oMSG;
                        MSG.MSG1 = MSG1;
                        if (!list.Contains(MSG))
                        {
                            list.Add(MSG);
                        }
                    }
                }
                else
                {
                    return(null);
                }
                return(list);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Exemple #7
0
        public async Task <MSGReturnModels> ResetMessageBySequenceID(MSGBindingModels MSG)
        {
            var returnModel = new MSGReturnModels();

            try
            {
                var oMSG     = MSG.OMSG;
                var MSG1     = MSG.MSG1;
                var objModel = _db.OMSG.Find(oMSG.SequenceID);

                //if (_db.OMSG.Find(oMSG.SequenceID) == null)
                if (objModel == null)
                {
                    returnModel.ErrMSG = "找不到相应的消息对象,无法进行重置";
                    return(returnModel);
                }

                oMSG.UpDateTime = DateTime.Now;
                oMSG.Status     = 0;
                _db.MSG1.AddOrUpdate(MSG1);
                _db.OMSG.AddOrUpdate(oMSG);
                //先写入日志表MSG1_LOG,然后再保存(需要记录更新前的XML内容)
                var sqlLog1 = string.Format(@"INSERT INTO DBO.IF_MSG1_LOG( SequenceID,Content ,iLength ,UpdateTime ,UpdateUser)
                                            SELECT T0.SequenceID,T0.Content,T0.iLength,GETDATE(),'{0}'
                                            FROM DBO.IF_MSG1 T0
                                            WHERE T0.SequenceID = {1}", userid, oMSG.SequenceID);
                _db.Database.ExecuteSqlCommand(sqlLog1);
                _db.SaveChanges();
                returnModel.ErrMSG     = "";
                returnModel.SequenceId = oMSG.SequenceID;
                return(returnModel);
            }
            catch (Exception ex)
            {
                returnModel.ErrMSG     = ex.Message + ex.InnerException.InnerException.Message;
                returnModel.SequenceId = MSG.OMSG.SequenceID;
                return(returnModel);
            }
        }
Exemple #8
0
        public async Task <MSGReturnModels> AddMessage(MSGBindingModels MSG)
        {
            var    returnModel     = new MSGReturnModels();
            string errMsgCheckData = string.Empty; //errMsgCheckData=""表示数据无异常,否则表示数据校验错误

            try
            {
                userid = HttpContext.Current.User.Identity.GetUserId();
                var systemCode = UserManager.FindById(userid).SystemCode;
                var oMSG       = MSG.OMSG;
                var MSG1       = MSG.MSG1;
                //数据初步验证
                var objectType = string.Empty;
                var transType  = string.Empty;
                objectType = oMSG.ObjectType;
                transType  = oMSG.TransType;
                if (systemCode.ToUpper() == "SAP")
                {
                    #region SAP接收
                    switch (objectType.ToUpper())
                    {
                    case "ITEMS":     //SAP发起
                                      //商品信息同步数据校验
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.ItemsDataCheck(transType, MSG1.Content);
                        break;

                    case "UDAOREW":    //SAP发起
                                       //发货区域
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDAOREWDataCheck(transType, MSG1.Content);
                        break;

                    case "WAREHOUSES":    //SAP发起
                                          //仓库主数据
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.WareshousesDataCheck(transType, MSG1.Content);
                        break;

                    case "UDAOITC":    //SAP发起
                                       //物料分类主数据
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDAOITCDataCheck(transType, MSG1.Content);
                        break;

                    case "OITT":    //SAP发起
                                    //加工BOM
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDAOITCDataCheck(transType, MSG1.Content);
                        break;

                    case "UDAOLIF":    //SAP发起
                                       //线路主数据
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDAOLIFDataCheck(transType, MSG1.Content);
                        break;

                    case "UDSORDER_P":    //SAP发起
                                          //订单已分拣状态数据提交
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDSORDER_PDataCheck(transType, MSG1.Content);
                        break;

                    case "UDIOOSO":    //SAP发起
                                       //订单发货送态
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDIOOSODataCheck(transType, MSG1.Content);
                        break;

                    case "UORDNL":    //SAP发起
                                      //退货入库
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UORDNLDataCheck(transType, MSG1.Content);
                        break;

                    case "UORCT":    //SAP发起
                                     //收款信息
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UORCTDataCheck(transType, MSG1.Content);
                        break;

                    default:
                        break;
                    }
                    #endregion
                }
                else
                {
                    #region SAP接收部分
                    switch (objectType.ToUpper())
                    {
                    case "BusinessPartners":    //SAP接收
                                                //会员资料
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.BusinessPartnersDataCheck(transType, MSG1.Content);
                        break;

                    case "UDSORDR":    //SAP接收
                                       //订单同步
                    {
                        if (transType.ToUpper() != "R")
                        {
                            //订单新增,修改,取消,删除,关闭
                            errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDSORDRDataCheck(transType, MSG1.Content);
                        }
                        else
                        {
                            //订单更改配送日期
                            errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UDSORDER_RDataCheck(transType, MSG1.Content);
                        }
                        break;
                    }

                    case "UOINV":    //SAP接收
                                     //开票信息
                                     //errMsgCheckData = Models.DataCheckSubmitBefore.UDSORDRDataCheck(transType, MSG1.Content);
                        break;

                    case "UORDNR":    //SAP接收
                                      //开票信息
                        errMsgCheckData = CommonModel.Models.DataCheckSubmitBefore.UORDNRDataCheck(transType, MSG1.Content);
                        break;

                    case "UORCRR":    //SAP接收
                                      //退款请求
                                      //errMsgCheckData = Models.DataCheckSubmitBefore.UORDNRDataCheck(transType, MSG1.Content);
                        break;

                    case "UORCTR":    //SAP接收
                                      //待收款请求列表
                                      //errMsgCheckData = Models.DataCheckSubmitBefore.UORDNRDataCheck(transType, MSG1.Content);
                        break;

                    default:
                        break;
                    }
                    #endregion
                }

                //如果同步数据校验错误,则抛出异常
                if (!string.IsNullOrEmpty(errMsgCheckData))
                {
                    returnModel.ErrMSG     = errMsgCheckData;
                    returnModel.SequenceId = null;
                    return(returnModel);
                }


                var sqlcmd     = String.Format(" EXEC DBO.U_IF_GetAutoKey 10 ");
                var sequenceId = _db.Database.SqlQuery <int>(sqlcmd).First();
                oMSG.SequenceID = sequenceId;
                oMSG.UpDateTime = DateTime.Now;
                MSG1.SequenceID = sequenceId;
                oMSG.FromSystem = systemCode;
                oMSG.Status     = 0;
                _db.MSG1.Add(MSG1);
                _db.OMSG.Add(oMSG);
                _db.SaveChanges();

                returnModel.ErrMSG     = "";
                returnModel.SequenceId = sequenceId;
                return(returnModel);
            }
            catch (Exception ex)
            {
                Logger.Writer("AddMessage:\r\n" + ex.Message);
                throw new MyHttpException("AddMessage:", ex);

                //returnModel.ErrMSG = ex.Message + ex.InnerException.InnerException.Message;
                //returnModel.SequenceId = null;
                //return returnModel;
            }
        }