控制器:
/// <summary> /// 根据id查询所有商品 /// </summary> /// <param name="id">订单编号</param> /// <returns></returns> [Privilege(PrivilegeCode.None)] public ActionResult GetOrderItem(int id, string deliveryTypeName) { //取商品信息 int orderId = id.GetHashCode(); ViewBag.deliveryTypeName = deliveryTypeName; var listItem = Hyt.BLL.Web.SoOrderBo.Instance.GetOrderItemListByOrderSysNo(orderId); return View("_OrderShipDialog",listItem); }
发货按钮控制器:
/// <summary> /// 订单发货 /// </summary> /// <param name="id">订单发货</param> /// <returns>视图</returns> [Privilege(PrivilegeCode.SO1001101, PrivilegeCode.OR1001982)] public JsonResult Ship(int orderId, string expressNo, string productList, string fstatus) { var result = new Result { Status = false }; if (productList == "[]") { result.Status = false; result.Message = "请勾选商品!"; return Json(result, JsonRequestBehavior.AllowGet); } using (var tran = new TransactionScope()) { if (fstatus == "1") { //全部发货 result = BLL.Order.SoOrderBo.Instance.Ship(orderId, expressNo); } else { //部分发货 result = BLL.Order.SoOrderBo.Instance.SomeShip(orderId, expressNo, productList, fstatus); } if (!result.Status) { return Json(result, JsonRequestBehavior.AllowGet); } if (result.Status) { //修改主订单状态 OrderBLL.Instance.GetIsOrderShip(orderId); result.Message = "发货成功!"; #region 利嘉(你他购)推送订单状态 int type = 2;//绑数据类型:2:订单 string state = "7";//订单状态,7:已经发货待确认中 var model = BLL.Web.MKNitagoDateBindBo.Instance.Select(type, orderId); if (model != null) { NitagaPostOrderState orderstate = new NitagaPostOrderState(); string sAPIResult = orderstate.OrderState(model.NitagoDateSysNo, state); JsonData returnDate = JsonMapper.ToObject(sAPIResult); int backcode = 0; if (((System.Collections.IDictionary)returnDate).Contains("backcode")) { backcode = Convert.ToInt32(returnDate["backcode"].ToString()); if (backcode == 0) { if (((System.Collections.IDictionary)returnDate).Contains("error")) { string error = (string)returnDate["error"]; BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.外部应用, "推送订单状态:" + orderId + "到你他购失败!" + error, new Exception()); } } } } #endregion } tran.Complete(); } return Json(result, JsonRequestBehavior.AllowGet); }
BLL:
/// <summary> /// 发货 /// </summary> /// <param name="orderSysNo">订单编号</param> /// <param name="expressNo">快递单号</param> /// <returns></returns> public Result Ship(int orderSysNo, string expressNo) { //获取的订单详情 var orderInfo = BLL.Web.SoOrderBo.Instance.GetEntity(orderSysNo); return Ship(orderSysNo, expressNo, orderInfo); } /// <summary> /// 部分发货 /// </summary> /// <param name="orderSysNo">订单编号</param> /// <param name="expressNo">快递单号</param> /// <param name="productList">商品详情</param> /// <param name="fstatus">发货状态</param> /// <returns></returns> /// <remarks>2018-05-21 创建</remarks> public Result SomeShip(int orderSysNo, string expressNo, string productList, string fstatus) { //获取的商品详情 var orderInfo = BLL.Web.SoOrderBo.Instance.GetEntity(orderSysNo); var orderiteminfo = orderInfo.OrderItemList; List<DismantlingPara> dplist = new List<DismantlingPara>(); List<SoOrderItem> ordernewitem = new List<SoOrderItem>(); SoOrderItem sitem = new SoOrderItem(); dplist = JsonSerializationHelper.JSONStringToList<DismantlingPara>(productList); foreach (var item in dplist) { sitem = orderiteminfo.Where(p => p.SysNo == item.sysNo).FirstOrDefault(); sitem.RealStockOutQuantity = item.quantity; ordernewitem.Add(sitem); } orderInfo.OrderItemList = ordernewitem; //orderiteminfo.Clear(); return SomeShip(orderSysNo, expressNo, orderInfo); }
创建出库单:
#region 创建出库单 /// <summary> /// 创建出库单 /// </summary> /// <param name="data">出库商品列表</param> /// <param name="warehouseSysNo">仓库编号</param> /// <param name="deliveryTypeSysNo">出库单配送方式</param> /// <returns>操作是否成功</returns> /// <remarks>2016-03-22 杨浩 创建</remarks> public Result CreateOutStock(IList<SoOrderItem> data, int warehouseSysNo, int? deliveryTypeSysNo) { var res = new Hyt.Model.Result<WhStockOut> { Status = true }; var identity = string.Format("创建订单{0}的出库单", data[0].OrderSysNo); if (YwbUtil.Enter(identity) == false) { res.Status = false; res.Message = "其它人正在处理这个订单,请稍后重试"; res.StatusCode = 0; return res; } try { SyUser syUser = new SyUser(); if(BLL.Authentication.AdminAuthenticationBo.Instance.Current!=null) { syUser=BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base; } var outStock = SoOrderBo.Instance.CreateOutStock(data, warehouseSysNo, syUser, deliveryTypeSysNo); res.Data = outStock; res.StatusCode = outStock.SysNo; SysLog.Instance.Info(LogStatus.系统日志来源.后台, "创建出库单", LogStatus.系统日志目标类型.出库单, outStock.SysNo, 0); } catch (Exception ex) { res.Status = false; res.Message = ex.Message; res.StatusCode = 0; } YwbUtil.Exit(identity); return res; } /// <summary> /// 创建出库单 /// </summary> /// <param name="data">出库商品列表</param> /// <param name="warehouseSysNo">仓库编号</param> /// <param name="deliveryTypeSysNo">出库单配送方式</param> /// <returns>操作是否成功</returns> /// <remarks>2016-03-22 杨浩 创建</remarks> public Result SomeCreateOutStock(IList<SoOrderItem> data, int warehouseSysNo, int? deliveryTypeSysNo) { var res = new Hyt.Model.Result<WhStockOut> { Status = true }; var identity = string.Format("创建订单{0}的出库单", data[0].OrderSysNo); if (YwbUtil.Enter(identity) == false) { res.Status = false; res.Message = "其它人正在处理这个订单,请稍后重试"; res.StatusCode = 0; return res; } try { SyUser syUser = new SyUser(); if (BLL.Authentication.AdminAuthenticationBo.Instance.Current != null) { syUser = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base; } var outStock = SoOrderBo.Instance.SomeCreateOutStock(data, warehouseSysNo, syUser, deliveryTypeSysNo); res.Data = outStock; res.StatusCode = outStock.SysNo; SysLog.Instance.Info(LogStatus.系统日志来源.后台, "创建出库单", LogStatus.系统日志目标类型.出库单, outStock.SysNo, 0); } catch (Exception ex) { res.Status = false; res.Message = ex.Message; res.StatusCode = 0; } YwbUtil.Exit(identity); return res; } #endregion