/// <summary> /// 删除模板 /// </summary> public virtual async Task <bool> TemplateDelete(string templateCode) { var template = omsAccessor.Get <RemindTemplateModel>().Include(c => c.TemplateTitle).Include(c => c.UserMessages).Include(c => c.Product).Where(c => c.TemplateCode == templateCode).FirstOrDefault(); template.Isdelete = true; template.RemindTitles.Select(c => c.Isdelete = true).ToList(); template.UserMessages.Select(c => c.Isdelete = true).ToList(); template.Product.Isdelete = true; return(await omsAccessor.OMSContext.SaveChangesAsync() > 0); }
public bool Set(object ob) { var _user = string.Empty; var str = new List <UserDto>(); var dto = ob as SetDto; if (dto == null) { return(false); } if (dto.User.Count != 0) { dto.User.ForEach(c => str.Add(new UserDto() { Id = c.Id, UserName = c.UserName })); _user = JsonConvert.SerializeObject(str); } // 更新规则 remindNotify.Rule(omsAccessor, dto); var _template = dto.Key.Select(c => c.TemplateCode).ToList(); var templates = omsAccessor.Get <RemindTemplateModel>().Include(c => c.Product).Where(c => _template.Any(d => d == c.TemplateCode)).ToList(); dto.Key.ForEach(k => { var template = templates.Where(c => c.TemplateCode == k.TemplateCode).FirstOrDefault(); var product = new RemindProductdto() { Name = k.Name, ProductCode = k.ProductCode, En = k.En, Price = k.Price, Stock = k.Stock }; if (template == null) { var list = new RemindTemplateDto() { TemplateTitle = string.IsNullOrEmpty(dto.TemplateTitle) ? k.Name + "库存不足{{RemindStock}},可用库存{{Stock}}" : dto.TemplateTitle, User = _user, SaleProductId = k.SaleProductId, Product = product, RemindStock = dto.RemindStock }; var entity = new RemindTemplateModel(); Mapper.Map(list, entity); entity.Statu = true; omsAccessor.OMSContext.RemindTemplate.Add(entity); } else { template.TemplateTitle = string.IsNullOrEmpty(dto.TemplateTitle) ? k.Name + "库存不足{{RemindStock}},可用库存{{Stock}}" : dto.TemplateTitle; template.User = _user; template.Product = Mapper.Map(product, template.Product); template.RemindStock = dto.RemindStock; template.Statu = true; } }); return(omsAccessor.OMSContext.SaveChangesAsync().Result > 0); }
/// <summary> /// SearchProductDto 条件 /// </summary> public object Search(object ob, out int count, int page, int limit) { count = 0; var list = new List <SaleProductDto>(); var search = ob as SearchProductDto; search.NameCode = search.NameCode?.Trim(); if (search == null) { return(null); } //查询字典 var productType = omsAccessor.Get <Dictionary>().AsNoTracking().Where(c => c.Value == search.ProductType).Select(c => (int?)c.Id).FirstOrDefault(); using (var sqlsugar = new SqlSugar(configuration)) { var db = sqlsugar.db; count = 0; var data = db.Queryable <SaleProductWareHouseStock, SaleProductPrice, SaleProduct, Product>((w, spp, sp, p) => new object[] { JoinType.Inner, w.SaleProductId == spp.SaleProductId, JoinType.Inner, spp.SaleProductId == sp.Id, JoinType.Inner, sp.ProductId == p.Id, }).Where((w, spp, sp, p) => sp.Isvalid && ((search.MaxPrice == null || spp.Price <= search.MaxPrice) && (search.MinPrice == null || spp.Price >= search.MinPrice)) && (productType == null || p.Type == productType) && (string.IsNullOrEmpty(search.NameCode) || p.Name.Contains(search.NameCode) || p.NameEn.Contains(search.NameCode) || p.Code == search.NameCode) ).GroupBy((w, spp, sp, p) => new { w.SaleProductId, p.Name, p.NameEn, p.Code }) .Select((w, spp, sp, p) => new { SaleProductId = w.SaleProductId, Price = SqlFunc.AggregateAvg(spp.Price), Stock = SqlFunc.AggregateSum(w.Stock - w.LockStock), Name = p.Name, En = p.NameEn, ProductCode = p.Code }).ToPageList(page, limit, ref count); var _template = omsAccessor.Get <RemindTemplateModel>().Select(c => new { c.TemplateCode, c.Statu, c.SaleProductId }).ToList(); data.ForEach(c => { var template = _template.FirstOrDefault(d => d.SaleProductId == c.SaleProductId); list.Add(new SaleProductDto() { SaleProductId = c.SaleProductId, Price = c.Price, Stock = c.Stock, Name = c.Name, En = c.En, ProductCode = c.ProductCode, TemplateCode = template?.TemplateCode, Statu = template == null ? false : template.Statu, }); }); } return(list); }
public override void Rule(IDbAccessor omsAccessor, SetDto set) { var templateCodes = set.Key.Select(c => c.TemplateCode).ToList(); var templateCode = omsAccessor.Get <RemindTemplateModel>().Where(c => templateCodes.Any(d => d == c.TemplateCode)).ToList(); templateCode.ForEach(c => { // 标题/提醒库存 不同时,视为更新 if (c.TemplateTitle != set.TemplateTitle || c.RemindStock != set.RemindStock) { c.IsUpdate = true; } }); }
/// <summary> /// SearchDto 标题条件搜索 /// </summary> public object Search(object ob, out int count, int page = 1, int limit = 5) { count = 0; var search = ob as SearchDto; if (search == null) { return(null); } var list = omsAccessor.Get <RemindTitleModel>().AsNoTracking().Where(c => (search.Min == null || search.Min < c.CreateTime) && (search.Max == null || search.Max > c.CreateTime)); count = list.Count(); return(Mapper.Map <List <RemindTitleDto> >(list.Skip((page - 1) * limit).Take(limit).ToList())); }
/// <summary> /// 获取商品以及类型 /// </summary> public List <string> GetProductType() => omsAccessor.Get <Dictionary>().Where(c => c.Type == DictionaryType.ProductType).Select(c => c.Value).ToList();
public IActionResult SyncOrderDeliveryState([FromBody] OrderDeliveryInfo orderDeliveryInfo) { if (orderDeliveryInfo != null) { var zhShopId = _configuration.GetSection("Zhaohang")["shopId"]; //招行店铺号 var order = _orderService.GetOrderBySerialNumber(orderDeliveryInfo.OMSSerialNumber); if (order == null) { _logService.Error(string.Format("订单快递信息同步时未找到订单号为{0}的订单", orderDeliveryInfo.OMSSerialNumber)); return(Json(new { State = false, Message = string.Format("OMS中未找到SerialNumber为{0}的订单", orderDeliveryInfo.OMSSerialNumber) })); } var delivery = _deliveriesService.GetAllDeliveries().Where(r => r.Isvalid && r.Code.Equals(orderDeliveryInfo.DeliveryCode)).FirstOrDefault(); if (delivery == null) { _logService.Error(string.Format("订单号为:{0}的订单在同步快递信息时未找到快递Code为{1}的快递方式", orderDeliveryInfo.OMSSerialNumber, orderDeliveryInfo.DeliveryCode)); return(Json(new { State = false, Message = string.Format("OMS中未匹配到Code为{0}的快递", orderDeliveryInfo.DeliveryCode) })); } if (order != null) { order.DeliveryDate = orderDeliveryInfo.DeliveryDate; order.DeliveryNumber = orderDeliveryInfo.DeliveryNumber; order.DeliveryTypeId = delivery.Id; if (order.Type == OrderType.B2B) { order.State = OrderState.Finished; } else { order.State = OrderState.Delivered; } _orderService.UpdateOrder(order); #region 订单日志(订单发货) OrderLog orderLog = new OrderLog(); orderLog.OrderId = order.Id; orderLog.OrderState = order.State; orderLog.PayState = order.PayState; orderLog.OptionType = "订单发货"; orderLog.Mark = "订单发货"; _logService.InsertOrderLog(orderLog); #endregion _logService.Info(string.Format("OMS订单号为:{0},订单Id为:{1} ,从WMS到OMS同步订单物流发货状态为{2}", order.SerialNumber, order.Id, order.State.Description())); //推送快递信息到订单辅助系统(官方的商城的订单才可以) var orderList = new List <Order>();//需要通知的发货订单集合 if (order.Type == OrderType.B2C_XH && order.ShopId == 97) { //正常的订单流程 if (order.AppendType == 0) { orderList.Add(order); } //合并的订单 if (order.AppendType == AppendType.Combine) { var orderArr = order.OrgionSerialNumber.Split("_", StringSplitOptions.RemoveEmptyEntries); //找出所有合并订单里面的子订单进行通知 for (int i = 0; i < orderArr.Length; i++) { var childOrder = _orderService.GetOrderBySerialNumber(orderArr[i].Trim()); childOrder.DeliveryNumber = order.DeliveryNumber; if (childOrder != null) { orderList.Add(childOrder); } } } //拆分的订单 if (order.AppendType == AppendType.Split) { //父订单单号 var orgionSerialNumber = order.OrgionSerialNumber.Split("(")[0].Trim(); if (!string.IsNullOrEmpty(orgionSerialNumber)) { //判断拆分成的子订单是否发货,存在未发货的不去通知,子订单全部发货完成之后再进行通知商城订单发货 var childOrders = _omsAccessor.Get <Order>().Where(x => x.Isvalid && x.State != OrderState.Delivered && x.OrgionSerialNumber.Contains(orgionSerialNumber)); if (childOrders == null || childOrders.Count() == 0) { var updateOrder = _orderService.GetOrderBySerialNumber(orgionSerialNumber); updateOrder.DeliveryNumber = childOrders.FirstOrDefault().DeliveryNumber; if (updateOrder != null) { orderList.Add(updateOrder); } } } } //通知发货状态 if (orderList != null && orderList.Count > 0) { SyncOrderDeliveryToAssist(orderList); } } //推送快递信息到招行系统 else if (order.Type == OrderType.B2C_XH && order.ShopId == int.Parse(zhShopId)) { //正常的订单流程 if (order.AppendType == 0) { orderList.Add(order); } //合并的订单 if (order.AppendType == AppendType.Combine) { var orderArr = order.OrgionSerialNumber.Split("_", StringSplitOptions.RemoveEmptyEntries); //找出所有合并订单里面的子订单进行通知 for (int i = 0; i < orderArr.Length; i++) { var childOrder = _orderService.GetOrderBySerialNumber(orderArr[i].Trim()); childOrder.DeliveryNumber = order.DeliveryNumber; childOrder.DeliveryTypeId = order.DeliveryTypeId; if (childOrder != null) { orderList.Add(childOrder); } } } //拆分的订单 if (order.AppendType == AppendType.Split) { //父订单单号 var orgionSerialNumber = order.OrgionSerialNumber.Split("(")[0].Trim(); if (!string.IsNullOrEmpty(orgionSerialNumber)) { //判断拆分成的子订单是否发货,存在未发货的不去通知,子订单全部发货完成之后再进行通知商城订单发货 var childOrders = _omsAccessor.Get <Order>().Where(x => x.Isvalid && x.State != OrderState.Delivered && x.OrgionSerialNumber.Contains(orgionSerialNumber)); if (childOrders == null || childOrders.Count() == 0) { var updateOrder = _orderService.GetOrderBySerialNumber(orgionSerialNumber); updateOrder.DeliveryNumber = childOrders.FirstOrDefault().DeliveryNumber; updateOrder.DeliveryTypeId = childOrders.FirstOrDefault().DeliveryTypeId; if (updateOrder != null) { orderList.Add(updateOrder); } } } } //通知发货状态 if (orderList != null && orderList.Count > 0) { foreach (var item in orderList) { var result = _cmbService.ReturnDeliverResultToCMB(item); } } } //推送发货状态到线下店 else if (order.Type == OrderType.B2C_XH && order.PSerialNumber.Contains("XS")) { //正常的订单流程 if (order.AppendType == 0) { orderList.Add(order); } //合并的订单 if (order.AppendType == AppendType.Combine) { var orderArr = order.OrgionSerialNumber.Split("_", StringSplitOptions.RemoveEmptyEntries); //找出所有合并订单里面的子订单进行通知 for (int i = 0; i < orderArr.Length; i++) { var childOrder = _orderService.GetOrderBySerialNumber(orderArr[i].Trim()); childOrder.DeliveryNumber = order.DeliveryNumber; if (childOrder != null) { orderList.Add(childOrder); } } } //拆分的订单 if (order.AppendType == AppendType.Split) { //父订单单号 var orgionSerialNumber = order.OrgionSerialNumber.Split("(")[0].Trim(); if (!string.IsNullOrEmpty(orgionSerialNumber)) { //判断拆分成的子订单是否发货,存在未发货的不去通知,子订单全部发货完成之后再进行通知商城订单发货 var childOrders = _omsAccessor.Get <Order>().Where(x => x.Isvalid && x.State != OrderState.Delivered && x.OrgionSerialNumber.Contains(orgionSerialNumber)); if (childOrders == null || childOrders.Count() == 0) { var updateOrder = _orderService.GetOrderBySerialNumber(orgionSerialNumber); updateOrder.DeliveryNumber = childOrders.FirstOrDefault().DeliveryNumber; if (updateOrder != null) { orderList.Add(updateOrder); } } } } //通知发货状态 if (orderList != null && orderList.Count > 0) { _orderService.ApiReturnOffLineOrderState(orderList); } } } return(Json(new { State = true, Message = "成功" })); } else { return(Json(new { State = false, Message = "no data" })); } }
public User GetById(int id) { return(_omsAccessor.Get <User>().Where(x => x.Isvalid && x.Id == id).FirstOrDefault()); }
public Account GetByUserName(string userName) { return(_amsAccessor.Get <Account>().FirstOrDefault(i => i.UserName == userName && i.Isvalid)); }