public IActionResult OrderDeliveryStatistics() { if (!_permissionService.Authorize("ViewOrderDeliveryStatistics")) { return(View("_AccessDeniedView")); } ViewBag.Platforms = new SelectList(_commonService.GetDictionaryList(new List <DictionaryType>() { DictionaryType.Platform, DictionaryType.ThirdpartyOnlineSales, DictionaryType.Consignment }), "Id", "Value"); ViewBag.WareHouses = new SelectList(_wareHouseService.GetAllWareHouseList(), "Id", "Name"); ViewBag.PayTypes = new SelectList(_commonService.GetBaseDictionaryList(DictionaryType.PayType), "Id", "Value"); ViewBag.Deliveries = new SelectList(_deliveriesService.GetAllDeliveries(), "Id", "Name"); return(View()); }
public IActionResult Index() { if (!_permissionService.Authorize("ViewDelivery")) { return(View("_AccessDeniedView")); } var deliveries = _deliveriesService.GetAllDeliveries(); return(View(deliveries)); }
public async Task <HttpResponseMessage> GetAllDeliveries( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Deliveries/admin")] HttpRequest req) { string token = req.Headers["Authorization"].ToString().Replace("Bearer ", ""); if (_authorizationsService.IsTokenValid(token, true)) { List <Delivery> result = await _deliveriesService.GetAllDeliveries(); return(result != null ? new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(result, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), Encoding.UTF8, "application/json") } : new HttpResponseMessage(HttpStatusCode.NoContent)); } // Authorized access only return(new HttpResponseMessage(HttpStatusCode.Unauthorized)); }
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" })); } }