Esempio n. 1
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
        }
Esempio n. 2
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);
        }
Esempio n. 3
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);
        }
Esempio n. 4
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);
            }
        }
Esempio n. 5
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);
            }
        }
Esempio n. 6
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);
        }