예제 #1
0
파일: Sync.cs 프로젝트: shew990/TaiBang
        //protected override void OnStart(string[] args)
        public void OnStart()
        {
            StopSync                   = false;
            server                     = WCF.GetWCF();
            syncReceiptTimeFile        = Path.Combine(basePath, syncReceiptFileName);
            syncDeliveryTimeFile       = Path.Combine(basePath, syncDeliveryFileName);
            syncBaseTimeFile           = Path.Combine(basePath, syncBaseFileName);
            syncQualityStatuceTimeFile = Path.Combine(basePath, synQualityStatuceFileName);
            int FirstSyncTime = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["FirstSyncTime"]);

            //同步时间文件不存在,自动创建
            createSyncTimeFile(syncReceiptTimeFile, FirstSyncTime);
            createSyncTimeFile(syncDeliveryTimeFile, FirstSyncTime);
            createSyncTimeFile(syncBaseTimeFile, FirstSyncTime);
            createSyncTimeFile(syncQualityStatuceTimeFile, FirstSyncTime);
            LogNet.LogInfo("Server Start:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

            //DocumentSyncReceipt = new Thread(new ThreadStart(SyncReceipt));
            //DocumentSyncReceipt.Start();
            //DocumentSyncDelivery = new Thread(new ThreadStart(SyncDelivery));
            //DocumentSyncDelivery.Start();
            DocumentSyncBase = new Thread(new ThreadStart(SyncBase));
            DocumentSyncBase.Start();
            //QualitySyncStatus = new Thread(new ThreadStart(QualityStatus));
            //QualitySyncStatus.Start();
        }
예제 #2
0
        /// <summary>
        /// 向Dict[709]中插入一行
        /// </summary>
        /// <param name="pEntity">带插入的实体</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>返回操作成功的行数,若失败则返回DefaultResult[int].RetInt</returns>
        static public int AddRow_Order(Product_WMS_Interface pEntity, out string pMsg)
        {
            #region  validate parameters
            if (null == pEntity)
            {
                pMsg = "AddRow结束,非法入参";
                return(TError.Post_ParamError.Int());
            }
            #endregion
            // WCF操作
            var retRslt = WCF <Product_WMS_Interface> .Add(pEntity);

            #region Handle result
            if (null == retRslt)
            {
                pMsg = "WCF插入记录行失败,返回null对象";
                return(TError.WCF_RunError.Int());
            }
            else
            {
                pMsg = string.Format("WCF插入记录行结束, retRslt.RetInt={0}, retRslt.RETData={1}, retRslt.Data={2}", retRslt.RetInt, retRslt.RETData, retRslt.Data);
                return(retRslt.RetInt);
            }
            #endregion
        }
예제 #3
0
 private async Task OnNextAsync(Tuple <string, Message> item)
 {
     try
     {
         this.TraceMessage(true, item);
         if (this.IsSelf(item.Item1))
         {
             this.Incoming.OnNext(item);
         }
         else if (!this.groupConfig.Settings.IsUseHttpTransportForInstanceCommunication)
         {
             ChannelFactory <IDxStoreInstance> factory = this.GetChannelFactory(item.Item1);
             await Concurrency.DropContext(WCF.WithServiceAsync <IDxStoreInstance>(factory, (IDxStoreInstance instance) => instance.PaxosMessageAsync(this.groupConfig.Self, item.Item2), null, default(CancellationToken)));
         }
         else
         {
             HttpRequest.PaxosMessage msg = new HttpRequest.PaxosMessage(this.nodeEndPoints.Self, item.Item2);
             string targetHost            = this.groupConfig.GetMemberNetworkAddress(item.Item1);
             await HttpClient.SendMessageAsync(targetHost, item.Item1, this.groupConfig.Name, msg);
         }
     }
     catch (Exception ex)
     {
         if (GroupMembersMesh.Tracer.IsTraceEnabled(TraceType.ErrorTrace))
         {
             GroupMembersMesh.Tracer.TraceError((long)this.identity.GetHashCode(), "{0}: OnNextAsync(Node:{1}, Msg:{2}) failed with {3}", new object[]
             {
                 this.identity,
                 item.Item1,
                 item.Item2,
                 ex
             });
         }
     }
 }
예제 #4
0
        //

        public ActionResult befagua()
        {
            string cuenta = Request.Form["numIdetificacion1"].ToString();

            BancoHabana.Models.WCF w = new WCF();
            w.agua(cuenta);

            if (Session["opcionagua"].ToString() == "AyA")
            {
                if (w.montoagua == "error")
                {
                    Session["mensaje"] = "El numero de servicio no tiene facturas pendientes";
                    return(View("SolicitudAgua"));
                }
                else
                {
                    Session["montoagua"] = w.montoagua;
                    Session["fechaagua"] = w.fechaagua;
                    return(View("Agua"));
                }
            }
            else
            {
                Session["mensaje1"] = "El servicio no esta en funcionamiento";
                return(View("SolicitudAgua"));
            }
        }
예제 #5
0
        public ActionResult befluz()
        {
            string cuenta = Request.Form["numIdetificacion1"].ToString();

            BancoHabana.Models.WCF w = new WCF();
            w.luz(cuenta);

            if (Session["opcionluz"].ToString() == "jasec")
            {
                if (w.montoluz == "error")
                {
                    Session["mensaje"] = "El numero de servicio no tiene facturas pendientes";
                    return(View("SolicitudLuz"));
                }
                else
                {
                    Session["montoluz"] = w.montoluz;
                    Session["fechaluz"] = w.fechaluz;



                    return(View("Luz"));
                }
            }
            else
            {
                Session["mensaje1"] = "El Servicio de no esta en funcionamiento";
                return(View("SolicitudLuz"));
            }
        }
예제 #6
0
        public ActionResult befinternet()
        {
            string cuenta = Request.Form["numIdetificacion1"].ToString();

            BancoHabana.Models.WCF w = new WCF();
            w.internet(cuenta);

            if (Session["opcioninternet"].ToString() == "ICE")
            {
                if (w.montointernet == "error")
                {
                    Session["mensaje"] = "El numero de servicio no tiene facturas pendientes";
                    return(View("SolicitudInternet"));
                }
                else
                {
                    Session["montointernet"] = w.montointernet;
                    Session["fechainternet"] = w.fechainternet;

                    return(View("internet"));
                }
            }
            else
            {
                Session["mensaje1"] = "El servicio no esta en funcionamiento";
                return(View("SolicitudInternet"));
            }
        }
예제 #7
0
        public ActionResult beftelefono()
        {
            string cuenta = Request.Form["numIdetificacion1"].ToString();

            BancoHabana.Models.WCF w = new WCF();

            w.telefono(cuenta);


            if (Session["opciontelefono"].ToString() == "Kolbi")
            {
                if (w.montotelefono == "error")
                {
                    Session["mensaje"] = "El numero de servicio no tiene facturas pendientes";
                    return(View("SolicitudTelefono"));
                }
                else
                {
                    Session["consumokolbi"]    = w.consumokolbi;
                    Session["consumomovistar"] = w.consumomovistar;
                    Session["consumoclaro"]    = w.consumoclaro;
                    Session["consumointernet"] = w.consumointernet;
                    Session["monto"]           = w.montotelefono;



                    return(View("Telefono"));
                }
            }
            else
            {
                Session["mensaje1"] = "El servicio no esta en funcionamiento";
                return(View("SolicitudTelefono"));
            }
        }
예제 #8
0
        private void GetData(string sql, int pagenumber, int pagesize, object userState)
        {
            var ws = WCF.GetService();

            ws.GetDataSetDataCompleted += new EventHandler <DataSetInDataGrid.Silverlight.MyDataService.GetDataSetDataCompletedEventArgs>(ws_GetDataSetDataCompleted);
            ws.GetDataSetDataAsync(sql, pagenumber, pagesize, userState);
        }
예제 #9
0
        private void GetData()
        {
            object userState = "Data";
            var    ws        = WCF.GetService();

            ws.GetSchoolsCompleted += new EventHandler <GetSchoolsCompletedEventArgs>(ws_GetSchoolsCompleted);
            ws.GetSchoolsAsync(userState);
        }
예제 #10
0
        void Update_Click(object sender, RoutedEventArgs e)
        {
            var ws = WCF.GetService();

            ws.UpdateCompleted += new EventHandler <DataSetInDataGrid.Silverlight.MyDataService.UpdateCompletedEventArgs>(ws_UpdateCompleted);
            ws.UpdateAsync(DynamicDataBuilder.GetUpdatedDataSet(theGrid.ItemsSource as IEnumerable, _tables));
            this.Progress.Start();
        }
예제 #11
0
        /// <summary>
        /// 更新Dict[709]中pEntity对应的行。
        /// </summary>
        /// <param name="pEntity">被插入的实体</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>若成功则返回成功操作的行数;否则返回TError.WCF_RunError</returns>
        static public int UpdateRow_Order(Product_WMS_Interface pEntity, out string pMsg)
        {
            #region  validate parameters
            pMsg = string.Empty;
            DefaultResult <List <Product_WMS_Interface> > queryRslt = null;
            DefaultResult <int> rslt = null;
            if (null == pEntity)
            {
                return(TError.Post_ParamError.Int());
            }
            #endregion
            #region 在Dict[709]中找pEntity, var wcfPWI
            var filter = new List <CommonFilterModel>()
            {
            };                                              // query filter
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId1, "=", pEntity.MapId1.ToString()));
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId2, "=", pEntity.MapId2.ToString()));
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_IsDel, "!=", TDict285_Values.EDeleted.Int().ToString()));
            queryRslt = WCF <Product_WMS_Interface> .Query(1, 1, filter, new List <CommonOrderModel>() { }); // query,只取第一页第一条(同一个子单据不应该有2条数据)

            if (null == queryRslt)
            {
                pMsg = "尝试获取符合条件的实体,WCF操作失败,返回null对象";
                return(TError.WCF_RunError.Int());
            }
            else if (null == queryRslt.Data)
            {
                pMsg = queryRslt.RETData;
                return(queryRslt.RetInt);
            }
            #endregion
            #region WCF操作,更新
            if (0 == queryRslt.Data.Count)
            {
                pMsg = string.Format("Dict[709]中没有符合条件的行, MapId1={0}, MapId2={1}", pEntity.MapId1.ToString(), pEntity.MapId2.ToString());
                return(TError.WCF_RunError.Int());
            } // Dict[709]中没有符合条件的行
            else
            {
                pEntity.WMS_InterfaceId = queryRslt.Data[0].WMS_InterfaceId;

                rslt = WCF <Product_WMS_Interface> .Update(pEntity);

                #region Handle result
                if (null == rslt)
                {
                    pMsg = "更新或插入,WCF操作记录行失败,返回null对象";
                    return(TError.WCF_RunError.Int());
                }
                else
                {
                    pMsg = string.Format("UpdateRowA(Product_WMS_Interface pEntity)结束, rslt.RetInt={0}, rslt.RetData={1}, rslt.Data={2}", rslt.RetInt, rslt.RETData, rslt.Data);
                    return(1);
                }
                #endregion
            } // Dict[709]中有符合条件的行,更新
            #endregion
        }
예제 #12
0
        /// <summary>
        /// 更新商品
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        static public int UpdateRow_Product(List <Product_WMS_Interface> row)
        {
            var ret    = new ThirdResult <List <object> >("向表Product_WMS_Interface更新一行商品");
            var wcfPWI = WCF <Product_WMS_Interface> .Update(row);

            InnerDebug(ret, wcfPWI, "更新商品");
            ret.End();
            return(wcfPWI.RetInt);
        }
예제 #13
0
        public ActionResult hacerrecarga()
        {
            string numero = Request.Form["numero"].ToString();
            string monto  = Request.Form["monto"].ToString();

            BancoHabana.Models.WCF w = new WCF();
            w.recarga(numero, monto);

            return(View("MenuPrincipal"));
        }
예제 #14
0
        public ChannelFactory <IDxStoreInstance> GetChannelFactory(string nodeName)
        {
            ServiceEndpoint key = this.nodeEndPoints.Map(nodeName);

            WCF.CachedChannelFactory <IDxStoreInstance> orAdd = this.factoryByEndPoint.GetOrAdd(key, delegate(ServiceEndpoint e)
            {
                WCF.Initialize(e);
                return(new WCF.CachedChannelFactory <IDxStoreInstance>(e));
            });
            return(orAdd.Factory);
        }
예제 #15
0
        /// <summary>
        /// 添加商品
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// ------+++++++++-------
        /// --姓名:dongtianyi时间:2018/5/29 16:25
        /// --操作简单描述:
        /// --本次操作需求来源URL:
        ///  --当前设备:DONGTIANYI
        /// ------+++++++++-------
        /// </remarks>
        static public int AddRow_Product(Product_WMS_Interface row)
        {
            var ret = new ThirdResult <List <object> >("向表Product_WMS_Interface插入一行商品");

            row.IsDel     = 1;
            row.AddTime   = DateTime.Now;
            row.AddUserid = MangoMis.Frame.Frame.CommonFrame.userid;
            var wcfPWI = WCF <Product_WMS_Interface> .Add(row);

            InnerDebug(ret, wcfPWI, "添加商品");
            ret.End();
            return(wcfPWI.RetInt);
        }
예제 #16
0
        /// <summary>
        /// 返回Mis2014系统定义的子入库单实例列表
        /// </summary>
        /// <param name="pOrderId">子入库单ID</param>
        /// <param name="pSubOrderList">返回子入库单实例列表,若失败则返回Count=0的列表</param>
        /// <returns>若添加成功则返回string.Empty; 否则返回添加失败的错误描述</returns>
        static public string GetSubEntryOrderList(string pOrderId, out List <Product_Warehouse_ProductInput> pSubOrderList)
        {
            var ret = new ThirdResult <List <object> >(string.Format("返回Mis2014系统定义的子入库单({0})实例列表开始", pOrderId));

            // temp variables definition
            string retStr = string.Empty;

            pSubOrderList = new List <Product_Warehouse_ProductInput>(1);

            try
            {
                // fileter for query sub entry order list
                List <CommonFilterModel> filters = new List <CommonFilterModel>(1)
                {
                    new CommonFilterModel(Mis2014_SubEntryOrder_Column.MainId, "=", pOrderId)
                    , new CommonFilterModel(Mis2014_SubEntryOrder_Column.IsDel, "<>", TDict285_Values.EDeleted.Int().ToString())
                };

                var wcfSubListRet = WCF <Product_Warehouse_ProductInput> .Query(1, CWmsConsts.cIntDefaultWcfQueryPageSize, filters, null);

                if (null != wcfSubListRet && null != wcfSubListRet.Data)
                {
                    pSubOrderList = wcfSubListRet.Data;
                    retStr        = string.Empty;
                    ret.Append(string.Format("WCF查询完成, ret={0}, ret.Data={1}, SubListCount={2}", wcfSubListRet, wcfSubListRet.Data, wcfSubListRet.Data.Count));
                }
                else
                {
                    retStr = string.Format("ERROR!! 获取子入库单列表失败, pOrderId={0}, wcfSubListRet={1}", pOrderId, wcfSubListRet);
                    ret.Append(retStr);
                }
            }
            catch (Exception ex)
            {
                pSubOrderList.Clear();
                retStr = string.Format("Exception!! 获取子入库单列表失败, pOrderId={0}, Message={1}", pOrderId, ex.Message);

                if (null != ex.InnerException)
                {
                    ret.Append(string.Format("InnerException: {0}", ex.InnerException.Message));
                }
                ret.Append(string.Format("发生异常: {0}\r\n调用堆栈:{1}", ex.Message, ex.StackTrace));
            }

            ret.End();
            return(retStr);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="msgType"></param>
 /// <param name="message"></param>
 private void sendMessageToClients(WCF.OSAEWCFMessageType msgType, string message)
 {
     try
     {
         WCF.OSAEWCFMessage msg = new WCF.OSAEWCFMessage();
         msg.Type = msgType;
         msg.Message = message;
         msg.From = OSAE.Common.ComputerName;
         msg.TimeSent = DateTime.Now;
         Thread thread = new Thread(() => wcfService.SendMessageToClients(msg));
         thread.Start();
     }
     catch (Exception ex)
     {
         logging.AddToLog("Error sending message to clients: " + ex.Message, true);
     }
 }
예제 #18
0
        /// <summary>
        /// 返回Mis2014系统定义的子入库单实例列表
        /// </summary>
        /// <param name="pOrderId">子入库单ID</param>
        /// <param name="pSubOrderList">返回子入库单实例列表,若失败则返回Count=0的列表</param>
        /// <returns>若添加成功则返回string.Empty; 否则返回添加失败的错误描述</returns>
        static protected string GetMisSubEntryOrderList(string pOrderId, out List <Product_Warehouse_ProductInput> pSubOrderList)
        {
            string retStr = string.Empty;

            pSubOrderList = null; // reset pSubOrderList

            // validate argument
            int orderId = -1;   // stores an integer value of pOrderId

            if (!int.TryParse(pOrderId, out orderId))
            {
                retStr = string.Format("ERROR!! 异常的输入参数pOrderId={0}", pOrderId);
                return(retStr);
            }

            try
            {
                // temp variables definition
                // fileter for query sub entry order list
                List <CommonFilterModel> filters = new List <CommonFilterModel>(1)
                {
                    new CommonFilterModel("MainId", "=", orderId.ToString())
                };                                                                                       // TODO: donot use MainId
                Product_Warehouse_ProductMainInput entity = new Product_Warehouse_ProductMainInput();    // main entry order entity

                var wcfSubListRet = WCF <Product_Warehouse_ProductInput> .Query(1, 1000, filters, null); // TODO: donot use 1 and 1000

                if (null != wcfSubListRet && null != wcfSubListRet.Data)
                {
                    pSubOrderList = wcfSubListRet.Data;
                    retStr        = string.Empty;
                }
                else
                {
                    retStr = string.Format("ERROR!! 获取子入库单列表失败, pOrderId={0}, wcfSubListRet={1}", pOrderId, wcfSubListRet);
                }
            }
            catch (Exception ex)
            {
                retStr = string.Format("Exception ERROR!! 获取子入库单列表失败, pOrderId={0}, Message={1}", pOrderId, ex.Message);
            }

            return(retStr);
        }
예제 #19
0
        /// <summary>
        /// 更新Mis实体。若执行成功则返回WCF.RetInt,否则返回其他
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entity">待更新实体</param>
        /// <returns></returns>
        static public int UpdateEntity <T>(T entity) where T : class, new()
        {
            try
            {
                if (null == entity)
                {
                    C_WMS.Data.Utility.MyLog.Instance.Error("在{0}中,待更新实体为空", System.Reflection.MethodBase.GetCurrentMethod().Name);
                    return(TError.Pro_HaveNoData.Int());
                }
                var rslt = WCF <T> .Update(entity);

                return((null == rslt) ? TError.WCF_RunError.Int() : rslt.RetInt.Int());
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Error(ex, "更新实体[{0}]发生异常", entity);
                return(TError.WCF_RunError.Int());
            }
        }
예제 #20
0
        /// <summary>
        /// 向709批量插入数据,废弃
        /// </summary>
        /// <param name="rowlist"></param>
        /// <returns></returns>
        static public int AddRow_Product(List <Product_WMS_Interface> rowlist)
        {
            var ret    = new ThirdResult <List <object> >("向表Product_WMS_Interface插入多条商品");
            var renInt = 0;

            foreach (var row in rowlist)
            {
                row.IsDel     = 2;
                row.AddTime   = DateTime.Now;
                row.AddUserid = MangoMis.Frame.Frame.CommonFrame.userid;
                var wcfPWI = WCF <Product_WMS_Interface> .Add(row); // TODO: 不能add整个list

                InnerDebug(ret, wcfPWI, "向709批量插入数据,废弃");
                renInt += wcfPWI.RetInt;
            }

            ret.End();
            return(renInt);
        }
예제 #21
0
        /// <summary>
        /// 根据主键Id获取实体
        /// </summary>
        /// <param name="id">主键Id</param>
        /// <returns></returns>
        public DefaultResult <TEntity> GetEntity(int id)
        {
            try
            {
                var rslt = WCF <TEntity> .Query(id);

                if (null == rslt || null == rslt.Data)
                {
                    C_WMS.Data.Utility.MyLog.Instance.Warning("WCF(V2),根据Id[{0}]获取实体失败", id);
                    return(null);
                }
                return(rslt);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Fatal(ex, "WCF(V2),根据Id[{0}]获取实体异常", id);
                return(null);
            }
        }
예제 #22
0
        /// <summary>
        /// 根据过滤器pFilters获取实体列表,若执行成功则返回DefaultResult[List[TEntity]],否则返回null
        /// </summary>
        /// <param name="pFilters"></param>
        /// <returns></returns>
        public DefaultResult <List <TEntity> > GetList(List <CommonFilterModel> pFilters)
        {
            try
            {
                var rslt = WCF <TEntity> .QueryAll(pFilters);

                if (null == rslt || null == rslt.Data)
                {
                    C_WMS.Data.Utility.MyLog.Instance.Warning("WCF(V2),根据过滤器Filter={0}获取实体列表失败", pFilters);
                    return(null);
                }
                return(rslt);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Fatal(ex, "WCF(V2),根据过滤器Filter={0}获取实体列表异常", pFilters);
                return(null);
            }
        }
예제 #23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pFilters"></param>
        /// <param name="pOrders"></param>
        /// <param name="page"></param>
        /// <param name="size"></param>
        /// <returns></returns>
        public DefaultResult <List <TEntity> > GetList(List <CommonFilterModel> pFilters, List <CommonOrderModel> pOrders, int page, int size)
        {
            try
            {
                var rslt = WCF <TEntity> .Query(page, size, pFilters, pOrders);

                if (null == rslt || null == rslt.Data)
                {
                    C_WMS.Data.Utility.MyLog.Instance.Warning("WCF(V2),根据({0}, {1}, {2}, {3})获取实体列表失败", pFilters, pOrders, page, size);
                    return(null);
                }
                return(rslt);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Fatal(ex, "WCF(V2),根据({0}, {1}, {2}, {3})获取实体列表异常", pFilters, pOrders, page, size);
                return(null);
            }
        }
예제 #24
0
        /// <summary>
        /// 添加实体
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public DefaultResult <int> Add(TEntity entity)
        {
            try
            {
                var rslt = WCF <TEntity> .Add(entity);

                if (null == rslt)
                {
                    C_WMS.Data.Utility.MyLog.Instance.Warning("WCF(V2),添加实体[{0}]失败", entity);
                    return(null);
                }
                return(rslt);
            }
            catch (Exception ex)
            {
                C_WMS.Data.Utility.MyLog.Instance.Fatal(ex, "WCF(V2),添加实体[{0}]异常", entity);
                return(null);
            }
        }
예제 #25
0
        /// <summary>
        /// 返回Mis2014系统定义的子采购单实例列表
        /// </summary>
        /// <param name="pOrderId">主采购单ID</param>
        /// <param name="pSubOrderList">返回子采购单实例列表,若失败则返回Count=0的列表</param>
        /// <returns>若添加成功则返回string.Empty; 否则返回添加失败的错误描述</returns>
        static public string GetSubPurchaseOrderList(string pOrderId, out List <Product_Warehouse_ProductBuy> pSubOrderList)
        {
            var ret = new ThirdResult <int>("返回Mis2014系统定义的子采购单实例列表 开始");

            string retStr = string.Empty;

            pSubOrderList = null;

            try
            {
                List <CommonFilterModel> filter = new List <CommonFilterModel>(2);
                filter.Add(new CommonFilterModel(Mis2014_SubPurchaseOrder_Column.MainId, "=", pOrderId));
                filter.Add(new CommonFilterModel(Mis2014_SubPurchaseOrder_Column.IsDel, "=", TMis2014_IsDel.EDeleted.ToString()));

                var wcfSubPurchaseOrder = WCF <Product_Warehouse_ProductBuy> .ColumnsAll(filter, Mis2014_SubPurchaseOrder_Column.AllColumnNameList());

                if (null == wcfSubPurchaseOrder || null == wcfSubPurchaseOrder.Data)
                {
                    retStr = "WCF取得列表返回null,判定为WCF连接失败";
                    ret.Append(retStr);
                }
                else
                {
                    ret.Append(string.Format("WCF取得列表,item数量={0}", wcfSubPurchaseOrder.Data.Count));
                    pSubOrderList = wcfSubPurchaseOrder.Data; // reset pSubOrderList
                    retStr        = string.Empty;
                }
            }
            catch (Exception ex)
            {
                ret.Append(string.Format("发生异常: {0}\r\n{1}", ex.Message, ex.StackTrace));
                if (null != ex.InnerException)
                {
                    ret.Append(string.Format("InnerException: {0}", ex.InnerException.Message));
                }
            }

            ret.Append(string.Format("MisModelFactory.GetMisSubPurchaseOrderList() 开始结束:{0}", retStr));
            ret.End();
            return(retStr);
        }
예제 #26
0
        /// <summary>
        /// 获取所有商品。若操作失败则返回Count=0的List
        /// </summary>
        /// <remarks>
        /// ------+++++++++-------
        /// --姓名:dongtianyi时间:2018/5/29 16:01
        /// --操作简单描述:
        /// --本次操作需求来源URL:
        ///  --当前设备:DONGTIANYI
        /// ------+++++++++-------
        /// </remarks>
        public static List <Product_WMS_Interface> GetProductList()
        {
            var ret = new ThirdResult <List <object> >("取得表Product_WMS_Interface所有商品数据,包含添加商品or更新商品");

            // Set filter
            var filter = new List <CommonFilterModel>()
            {
            };

            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapCalssID, "in", new List <object>()
            {
                1, 2
            }));
            filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_IsDel, "!=", TDict285_Values.EDeleted.Int().ToString()));

            // query
            var wcfPWI = WCF <Product_WMS_Interface> .QueryAll(filter);

            // query finished.
            InnerDebug(ret, wcfPWI, "获取所有商品");
            ret.End();
            return((null == wcfPWI || null == wcfPWI.Data || 0 >= wcfPWI.RetInt)? new List <Product_WMS_Interface>(): wcfPWI.Data);
        }
예제 #27
0
        /// <summary>
        /// 新增一条创建出库订单的记录
        /// </summary>
        /// <param name="pData">待插入的记录</param>
        /// <param name="pMsg">返回错误描述信息</param>
        /// <returns>返回成功操作的记录行数,若失败则返回0</returns>
        static protected int AddRow_StockoutCreate(Product_WMS_Interface pData, out string pMsg)
        {
            if (null == pData)
            {
                pMsg = "非法入参, pMsg=null";
                return(0);
            }

            int rslt    = 0;
            var retRslt = WCF <Product_WMS_Interface> .Add(pData);

            if (null == retRslt)
            {
                pMsg = "WCF插入记录行失败,返回null对象";
                return(0);
            }
            else
            {
                rslt = retRslt.RetInt;
                pMsg = retRslt.RETData;
                return(rslt);
            }
        }
예제 #28
0
        /// <summary>
        /// 根据主退货订单ID获取主退货订单及其所有子订单的实例
        /// </summary>
        /// <param name="pOrderId">芒果商城主退货订单ID</param>
        /// <returns>CWmsReturnOrder实体,若失败则返回null</returns>
        static public CWmsReturnOrder GetCWmsReturnOrder(string pOrderId)
        {
            var                        ret        = new ThirdResult <List <object> >(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例, 开始", pOrderId));
            string                     errMsg     = string.Empty;
            CWmsReturnOrder            retObj     = null;
            MangoReturnOrder           mangoOrder = null;
            List <MangoSubReturnOrder> tmpList    = new List <MangoSubReturnOrder>(1);; // 缓存子退货订单实体列表

            #region validate parameters
            if (string.IsNullOrEmpty(pOrderId))
            {
                ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 非法入参", pOrderId));
                ret.End();
                return(retObj);
            }
            #endregion
            try
            {
                #region Handle MangoOrder
                #region  获取主退货订单 MangoReturnOrder
                if (null == (mangoOrder = MangoFactory.GetMangoOrder(TCWmsOrderCategory.EReturnOrder, pOrderId) as MangoReturnOrder))
                {
                    ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取主退货订单失败", pOrderId));
                    ret.End();
                    return(retObj);
                }
                #endregion
                #region 获取子退货订单列表 List<MangoSubReturnOrder>
                errMsg = MangoFactory.GetVSubReturnOrders(pOrderId, out tmpList);
                ret.Append(string.Format("tmplist.count={0}", tmpList.Count));
                ret.Append(string.Format("errMsg={0}", errMsg));

                if (!string.IsNullOrEmpty(errMsg) || null == tmpList || 0 >= tmpList.Count)
                {
                    ret.Append(string.Format("1根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取子退货订单失败, message={1}", pOrderId, errMsg));
                    ret.End();
                    return(retObj);
                }
                #endregion
                #endregion // Handle MangoOrder
                #region 创建CWmsReturnOrder实例及其子出库订单实例列表
                retObj = new CWmsReturnOrder();
                (retObj.MangoOrder as MangoReturnOrder).CopyFrom(mangoOrder);
                foreach (var t in tmpList)
                {
                    CWmsSubReturnOrder tmpSo = new CWmsSubReturnOrder();
                    tmpSo.CopyFrom(t, null);
                    // TODO: 根据子退货订单Id找原子订单Id, 移到Mis的Factory里面!!
                    var wcfSo = WCF <Product_Warehouse_ProductOutput> .Query((tmpSo.MangoOrder as MangoSubReturnOrder).ProductIOputId.Int()).Data;

                    // 根据原子订单Id取仓库Id, 根据仓库Id取货主
                    tmpSo.WmsOrderDetail.Owner.CopyFrom(MangoFactory.GetOwner(wcfSo.WarehouseId.ToString()));

                    // 设置商品Id
                    tmpSo.Product.ItemCode = (string.IsNullOrEmpty(t.ProductGuiGeID.ToString()) || "0".Equals(t.ProductGuiGeID.ToString())) ?
                                             t.ProductId.ToString() : string.Format("{0}-{1}", t.ProductId, t.ProductGuiGeID);
                    retObj.SubOrders.Add(t.ZiTuihuoID.ToString(), tmpSo);// new CWmsSubReturnOrder(t, null));
                }
                #region Handle WMS order
                switch ((T芒果商城退货物流)(retObj.MangoOrder as MangoReturnOrder).THwuLiu)
                {
                case T芒果商城退货物流.自行返还:
                {
                    (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(false, true, false);
                    break;
                }

                case T芒果商城退货物流.蓝江上门:
                {
                    (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(true, false, false);
                    break;
                }

                default:
                {
                    (retObj.WmsOrder as Wms.Data.WmsReturnOrder).SetOrderFlag(false, false, false);
                    break;
                }
                }
                #region TuiHuoType
                switch ((retObj.MangoOrder as MangoReturnOrder).TuiHuoType)
                {
                case 2:
                    (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int();
                    break;

                case 3:
                    (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int();
                    break;

                case 6:
                    (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int();
                    break;

                default:
                {
                    (retObj.MangoOrder as MangoReturnOrder).TuiHuoType = TWmsReturnOrderType.HHRK.Int();
                    break;
                }
                }
                #endregion
                #endregion // Handle WMS order
                #endregion // 创建CWmsReturnOrder实例及其子出库订单实例列表
            }
            catch (Exception ex)
            {
                if (null != ex.InnerException)
                {
                    ret.Append(string.Format("InnerException: {0}", ex.InnerException.Message));
                }
                ret.Append(string.Format("发生异常: {0}\r\n调用堆栈:{1}", ex.Message, ex.StackTrace));
            }
            ret.Append(string.Format("根据主退货订单{0}获取主退货订单及其所有子订单的实例失败, 获取子退货订单失败, message={1}", pOrderId, errMsg));
            ret.End();
            return(retObj);
        }
예제 #29
0
        /// <summary>
        /// Event happens when a wcf client invokes it
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        private void wcfService_MessageReceived(object source, WCF.CustomEventArgs e)
        {
            try
            {
                logging.AddToLog("received message: " + e.Message, false);
                if (e.Message.Type == WCF.OSAEWCFMessageType.CONNECT)
                {
                    try
                    {
                        logging.AddToLog("client connected", false);
                        foreach (Plugin p in masterPlugins)
                        {
                            string msg = p.PluginName + " | " + p.Enabled.ToString() + " | " + p.PluginVersion + " | " + p.Status + " | " + p.LatestAvailableVersion + " | " + p.PluginType + " | " + osae.ComputerName;

                            sendMessageToClients(WCF.OSAEWCFMessageType.PLUGIN, msg);
                        }
                    }
                    catch (Exception ex)
                    {
                        logging.AddToLog("Error sending plugin messages to clients: " + ex.Message, true);
                    }
                }
                else
                {
                    string[] arguments = e.Message.Message.Split('|');
                    if (arguments[0] == "ENABLEPLUGIN")
                    {
                        bool local = false;
                        if (arguments[2] == "True")
                            osae.ObjectStateSet(arguments[1], "ON");
                        else if (arguments[2] == "False")
                            osae.ObjectStateSet(arguments[1], "OFF");
                        foreach (Plugin p in plugins)
                        {
                            if (p.PluginName == arguments[1])
                            {
                                local = true;
                                OSAEObject obj = osae.GetObjectByName(p.PluginName);
                                if (obj != null)
                                {
                                    if (arguments[2] == "True")
                                    {
                                        enablePlugin(p);
                                    }
                                    else if (arguments[2] == "False")
                                    {
                                        disablePlugin(p);
                                    }
                                }
                            }
                        }
                        if (!local)
                        {
                            sendMessageToClients(WCF.OSAEWCFMessageType.PLUGIN, e.Message.Message);
                        }
                    }
                    else if (arguments[0] == "plugin")
                    {
                        bool found = false;
                        foreach (Plugin plugin in masterPlugins)
                        {

                            if (plugin.PluginName == arguments[1])
                            {
                                if (arguments[4].ToLower() == "true")
                                    plugin.Enabled = true;
                                else
                                    plugin.Enabled = false;
                                plugin.PluginVersion = arguments[3];
                                found = true;
                                break;
                            }
                        }
                        if (!found)
                        {
                            Plugin p = new Plugin();
                            p.PluginName = arguments[1];
                            p.PluginVersion = arguments[3];
                            if (arguments[4].ToLower() == "true")
                                p.Enabled = true;
                            else
                                p.Enabled = false;
                            masterPlugins.Add(p);
                        }
                    }
                    else if (arguments[0] == "updatePlugin")
                    {
                        foreach (Plugin plugin in masterPlugins)
                        {
                            if (plugin.PluginName == arguments[1])
                            {
                                if (plugin.Status == "Running")
                                    disablePlugin(plugin);

                                //code for downloading and installing plugin
                                break;
                            }
                        }
                    }
                }

                logging.AddToLog("-----------Master plugin list", false);
                foreach (Plugin p in masterPlugins)
                    logging.AddToLog(" --- " + p.PluginName, false);
            }
            catch (Exception ex)
            {
                logging.AddToLog("Error receiving message: " + ex.Message, true);
            }
        }
예제 #30
0
        /// <summary>
        /// 更新子出库订单的记录, 若没找到记录则新增一条
        /// </summary>
        /// <param name="pOrderId">主出库单Id</param>
        /// <param name="pUpdateOk">记录的更新状态,遵照Dict[285]</param>
        /// <param name="pDel">Dict[285]</param>
        /// <param name="pCount">返回成功更新的行数</param>
        /// <param name="pMsg">返回错误描述信息</param>
        /// <returns>若更新成功则返回操作的行数;其他错误返回TError.WCF_RunError</returns>
        static public int UpdateRow_StockoutCreate(string pOrderId, TDict285_Values pUpdateOk, TDict285_Values pDel, out int pCount, out string pMsg)
        {
            pCount = 0; pMsg = string.Empty;
            CWmsStockOrder        order     = null;
            Product_WMS_Interface tmpEntity = null;

            try
            {
                // get order instance
                if (null == (order = CWms.CWmsDataFactory.GetCWmsStockoutOrder(pOrderId)))
                {
                    return(TError.WCF_RunError.Int());
                }

                #region prepare updated rows
                foreach (var subOrder in order.SubOrders)
                {
                    // 根据主单据Id和子单据Id找到行
                    var filter = new List <CommonFilterModel>()
                    {
                    };                                              // query filter
                    filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId1, "=", order.GetId()));
                    filter.Add(new CommonFilterModel(Product_WMS_Interface_Properties.PropName_MapId2, "=", subOrder.Value.GetId()));
                    var wcfPWI = WCF <Product_WMS_Interface> .QueryAll(filter); // query,只取第一页第一条(同一个子单据不应该有2条数据)

                    if (null == wcfPWI || null == wcfPWI.Data)
                    {
                        pCount = TError.WCF_RunError.Int(); pMsg = "WCF返回null异常";
                        break;
                    } // TODO: 系统异常
                    else if (0 >= wcfPWI.RetInt)
                    {
                        tmpEntity = new Product_WMS_Interface();
                    }                                                                         // 没有找到
                    else
                    {
                        tmpEntity = wcfPWI.Data[0];
                    }                                    // 找到了一条

                    #region 实例赋值并更新
                    tmpEntity.MapCalssID   = TDict709_Value.EExwarehouseOrder.Int();
                    tmpEntity.MapId1       = (order.MangoOrder as MangoStockouOrder).ProductOutputMainId;
                    tmpEntity.MapId2       = (subOrder.Value.MangoOrder as MangoSubStockoutOrder).ProductOutputId;
                    tmpEntity.IsUpdateOK   = pUpdateOk.Int();
                    tmpEntity.IsDel        = pDel.Int();
                    tmpEntity.LastTime     = DateTime.Now;
                    tmpEntity.UpdateUserID = MangoMis.Frame.Frame.CommonFrame.userid;
                    var updateRslt = (0 >= wcfPWI.RetInt) ? WCF <Product_WMS_Interface> .Add(tmpEntity) : WCF <Product_WMS_Interface> .Update(tmpEntity);

                    if (null == updateRslt)
                    {
                        pCount = TError.WCF_RunError.Int(); pMsg = "WCF返回null异常"; break;
                    }                                                                                            // TODO: 系统异常
                    else
                    {
                        pCount++; pMsg = updateRslt.RETData;
                    }
                    #endregion
                }
                #endregion

                return(pCount);
            }
            catch (Exception ex)
            {
                var ret = new ThirdResult <List <object> >("");
                if (null != ex.InnerException)
                {
                    ret.Append(string.Format("InnerException: {0}", ex.InnerException.Message));
                }
                ret.Append(string.Format("发生异常: {0}\r\n调用堆栈:{1}", ex.Message, ex.StackTrace));
                ret.End();
                return(pCount = TError.WCF_RunError.Int());
            }
        }
예제 #31
0
 public void Test()
 {
     Iconnection connection     = new FakeConnection();
     WCF         classUnderTest = new WCF(connection);
     //Run test logic
 }
 public void OnMessageReceived(WCF.OSAEWCFMessage message)
 {
     throw new NotImplementedException();
 }