/// <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 }
/// <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> /// 返回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); }
/// <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); } }
/// <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); } }
/// <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); }