Example #1
0
        /// <summary>
        /// 更新Dict[709]中pEntity对应的行。若Dict【709】没有对应行则插入
        /// </summary>
        /// <param name="pEntity">被插入的实体</param>
        /// <param name="pMsg">返回错误描述</param>
        /// <returns>若成功则返回成功操作的行数;否则返回TError</returns>
        static public int UpdateRowA_Order(Product_WMS_Interface pEntity, out string pMsg)
        {
            #region  validate parameters
            //int ret = TError.WCF_RunError.Int();
            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()));
            queryRslt = WCF <Product_WMS_Interface> .QueryAll(filter); // query,只取第一页第一条(同一个子单据不应该有2条数据)

            if (null == queryRslt)
            {
                pMsg = "尝试获取符合条件的实体,WCF操作失败,返回null对象";
                return(TError.WCF_RunError.Int());
            }
            else if (null == queryRslt.Data)
            {
                pMsg = string.Format("WCF操作失败, queryRslt.RetInt={0}, queryRslt.RetData={1}, queryRslt.Data={2}", queryRslt.RetInt, queryRslt.RETData, queryRslt.Data);
                return(queryRslt.RetInt);
            }
            #endregion
            #region WCF操作,更新或插入
            if (0 == queryRslt.Data.Count)
            {
                rslt = WCF <Product_WMS_Interface> .Add(pEntity);
            } // Dict[709]中没有符合条件的行,添加
            else
            {
                pEntity.WMS_InterfaceId = queryRslt.Data[0].WMS_InterfaceId;
                rslt = WCF <Product_WMS_Interface> .Update(pEntity);
            } // Dict[709]中有符合条件的行,更新
            #endregion
            #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
        }
Example #2
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);
            }
        }
Example #3
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);
        }
Example #4
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());
            }
        }