diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs index add50ae..b90f393 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs @@ -341,7 +341,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { while (!MainWindow.Instance.hasReadShop) { - Thread.Sleep(100); + await Task.Delay(100); } BottomMsg = "开始读取订单..."; @@ -404,7 +404,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls data += "&start_time=" + startTime; data += "&end_time=" + endTime; } - Thread.Sleep(200); + await Task.Delay(200); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -438,17 +438,17 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls // 读取订单详情 if (string.IsNullOrEmpty(order_ids)) - Thread.Sleep(100); + await Task.Delay(100); List orderItems = GetOrderItemInfo(order_ids); // 读取售后单 if (string.IsNullOrEmpty(order_ids)) - Thread.Sleep(100); + await Task.Delay(100); List refunds = GetOrderRefundInfo(order_ids); // 读订单扩展 if (string.IsNullOrEmpty(order_ids)) - Thread.Sleep(100); + await Task.Delay(100); List orderItemExts = GetOrderItemExts(order_ids); if (string.IsNullOrEmpty(order_ids)) { diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml index 1e37b9b..f01f019 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml @@ -7,7 +7,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:uc="clr-namespace:_29WxOrderWpf.UserControls" d:DesignHeight="50" - d:DesignWidth="800" + d:DesignWidth="850" mc:Ignorable="d"> @@ -26,6 +26,7 @@ + + + public partial class OrderListRowHeaderCtrl : UserControl { + public DateTime LastRefreshTime = DateTime.Now; + public OrderListRowHeaderCtrl() { InitializeComponent(); @@ -235,5 +237,20 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls BaseMsgWindow.ShowError("打开工单窗口失败:" + ex.Message); } } - } + + private async void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) + { + if (!(this.DataContext is oms_wei_order_info order)) + return; + + if (LastRefreshTime > DateTime.Now.AddSeconds(-5)) + { + BaseMsgWindow.ShowAnimateMessage("操作太快了请稍候再点击", "Error", 5); + return; + } + + LastRefreshTime = DateTime.Now; + await Task.Run(async () => { await MainWindow.Instance.orderListCtrl.GetOrder(order.order_id); }); + } + } } diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs index 2f51ec9..c45c319 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs @@ -1061,12 +1061,43 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls return; } + // 先作废后申请买手退款 + // 订单作废接口(作废重拍) + //postman request POST 'http://localhost:8088/oms-api/external_procurement/discardOrder' \ + // --header 'Content-Type: application/json' \ + // --body '{ + // "orderNo":"12334534534", + // "outOrderNo":"12312312" + //}' 成功返回code:0 失败返回code:1 + + string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/discardOrder"; + var data2 = new JObject(); + data2["orderNo"] = orderItem.order_id; + //data2["outOrderNo"] = transitOrder.out_order_no; + data2["outOrderNo"] = transitOrder.order_code; + var dataStr2 = JsonHelper.SerializeObject(data2); + var discardRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2); + if (discardRst.Contains("\"code\":0") || discardRst.Contains("\"code\":200")) + { + //MainWindow.Instance.orderListCtrl.GetOrder(orderId); + // 修改为在买手退款流程后提示作废信息 + } + else + { + var msg = BaseRegex.GetStringJson(ref discardRst, "msg"); + if (!isSilent) + BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg); + + return; + } + + #region 处理买手售后 if (transitOrder.out_order_no.ParseToString().StartsWith("tb_")) // 淘宝买手售后 { if (!isSilent) - BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,请手动申请售后"); + BaseMsgWindow.ShowError("淘宝买手暂不支持自动售后,作废后请手动申请售后"); else - transitOrder.refund_status = "淘宝买手暂不支持自动售后,需手动申请售后"; + transitOrder.refund_status = "淘宝买手暂不支持自动售后,作废后需手动申请售后"; } else // 拼多多买手售后 { @@ -1114,7 +1145,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls { pddAfterRst = PDDBuyerOrderReadCtrl.SimPddAfterSale(buyer, order); }); - + if (pddAfterRst.Contains("\"after_sales_status\":1") || pddAfterRst.Contains("该订单已全额退款") || pddAfterRst.Contains("订单未付款")) { // 保存退款成功状态 @@ -1140,48 +1171,24 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls } } } - - //订单作废接口(作废重拍) - //postman request POST 'http://localhost:8088/oms-api/external_procurement/discardOrder' \ - // --header 'Content-Type: application/json' \ - // --body '{ - // "orderNo":"12334534534", - // "outOrderNo":"12312312" - //}' 成功返回code:0 失败返回code:1 + #endregion - string url2 = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/discardOrder"; - var data2 = new JObject(); - data2["orderNo"] = orderItem.order_id; - //data2["outOrderNo"] = transitOrder.out_order_no; - data2["outOrderNo"] = transitOrder.order_code; - var dataStr2 = JsonHelper.SerializeObject(data2); - var discardRst = await HttpResponseWXBLL.e57PostResponseAsync(url2, dataStr2); - if (discardRst.Contains("\"code\":0") || discardRst.Contains("\"code\":200")) - { - //MainWindow.Instance.orderListCtrl.GetOrder(orderId); - #region 立即更新订单 - transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == transitOrder.order_code) ?? transitOrder; - transitOrder.order_void_status = 1; - orderItem.SetOrderItemTextProperty(); - #endregion + #region 更新拍单余额 + StartUp.UpdateBalance(); + #endregion - #region 重新过滤订单 - OrderListCtrl.InitOrderItemObservableProp(orderItem); - MainWindow.Instance.orderListCtrl.FilterOrders(); - if (!isSilent) - BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单"); - #endregion + #region 立即更新订单 + transitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == transitOrder.order_code) ?? transitOrder; + transitOrder.order_void_status = 1; + orderItem.SetOrderItemTextProperty(); + #endregion - #region 更新拍单余额 - StartUp.UpdateBalance(); - #endregion - } - else - { - var msg = BaseRegex.GetStringJson(ref discardRst, "msg"); - if (!isSilent) - BaseMsgWindow.ShowInfo("订单作废失败,服务端返回 " + msg); - } + #region 重新过滤订单 + OrderListCtrl.InitOrderItemObservableProp(orderItem); + MainWindow.Instance.orderListCtrl.FilterOrders(); + if (!isSilent) + BaseMsgWindow.ShowInfo("订单作废成功,请重新拍单"); + #endregion } private void txtWarehouseStatus_MouseEnter(object sender, MouseEventArgs e) @@ -1327,35 +1334,42 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls // transitAfterSaleWindow.ShowDialog(); //} + // 显示状态的按钮,直接返回 + if (sender == btnAddEditTransitWarehouseAfterSale) + return; + if (this.DataContext is oms_wei_order_item_info orderItem) { - // 显示状态的按钮,直接返回 - if (sender == btnAddEditTransitWarehouseAfterSale) - return; + bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1; + ShowReturnPackageWindow(orderItem, orderItem.ItemTransitOrder ?? orderItem.ItemTransitOrderWithVoid, isOutWarehouse); + } + } - string warehouse_status = ""; - if (orderItem.ItemTransitOrder?.warehouse_status == 3 || orderItem.ItemTransitOrder?.warehouse_status == 1) - warehouse_status = "已到仓"; - if (orderItem.ItemTransitOrder?.warehouse_status == 2) - warehouse_status = "已出仓"; - else - warehouse_status = "未到仓"; + public static void ShowReturnPackageWindow(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info itemTransitOrder, bool isOutWarehouse) + { + string warehouse_status = ""; + if (itemTransitOrder?.warehouse_status == 3 || itemTransitOrder?.warehouse_status == 1) + warehouse_status = "已到仓"; + if (itemTransitOrder?.warehouse_status == 2) + warehouse_status = "已出仓"; + else + warehouse_status = "未到仓"; - if (sender == btnAddEditTransitWarehouseAfterSale_n1) - { - string msg = $@" + if (!isOutWarehouse) /* 未出仓 */ + { + string msg = $@"       拒收失败转寄总店({warehouse_status}) 说  明:店铺产生售后,拒收失败(物流信息签收3天      内无退回记录),货物需转寄退回总店。 收  费:(与退货仓退货价格一样)"; - if (BaseMsgWindow.ShowConfirm(msg, "拒收失败转寄总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true) - return; - } - else - { - string msg = $@" + if (BaseMsgWindow.ShowConfirm(msg, "拒收失败转寄总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true) + return; + } + else + { + string msg = $@"       出库拦截退回仓库({warehouse_status}) 说  明:拦截成功后货物返回云仓,云仓转寄到总店。 @@ -1363,13 +1377,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls      几率很低,签收需联系用户拒收。 收  费:(与退货仓退货价格一样)"; - if (BaseMsgWindow.ShowConfirm(msg, "出库拦截退回仓库", null, MsgWindowLevel.LARGE, 300).DialogResult != true) - return; - } - - TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem); - transitAfterSaleWindow.ShowDialog(); + if (BaseMsgWindow.ShowConfirm(msg, "出库拦截退回仓库", null, MsgWindowLevel.LARGE, 300).DialogResult != true) + return; } + + TransitAfterSaleWindow transitAfterSaleWindow = new TransitAfterSaleWindow(orderItem, itemTransitOrder); + transitAfterSaleWindow.ShowDialog(); } private async void btnAbnormalOrderRebuy_Click(object sender, RoutedEventArgs e) @@ -2079,7 +2092,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls }); orderItem.ItemTransitExtraOrder.order_void_status = 1; orderItem.SetOrderItemTextProperty(); - MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id); + //MainWindow.Instance.orderListCtrl.FilterOneOrder(orderItem.order_id); } } diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml index 3f582b6..daa2f63 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml @@ -26,7 +26,7 @@ BorderBrush="#8087CEEB" BorderThickness="1" CornerRadius="10"> - + diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs index 3f2090f..4d6b5e2 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml.cs @@ -191,7 +191,19 @@ public partial class OrderTransitListDetailCtrl : UserControl private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e) { + if (this.DataContext is oms_wei_order_item_transit_detail_info transitDetailInfo) + { + var orderItem = transitDetailInfo.oms_wei_order_item_info; + var transitOrder = transitDetailInfo.oms_wei_external_procurement_log_info; + var returnOrder = transitDetailInfo.oms_wei_external_procurement_after_sale_info; + var extOrder = transitDetailInfo.oms_wei_transfer_extra_package; + if (transitOrder != null) + { + bool isOutWarehouse = sender == btnAddEditTransitWarehouseAfterSale_n1; + OrderListRowItemCtrl.ShowReturnPackageWindow(orderItem, transitOrder, isOutWarehouse); + } + } } private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e) diff --git a/29WxOrderWpf/Windows/OrderWindows/TransitAfterSaleWindow.xaml.cs b/29WxOrderWpf/Windows/OrderWindows/TransitAfterSaleWindow.xaml.cs index e382e03..03f0ccb 100644 --- a/29WxOrderWpf/Windows/OrderWindows/TransitAfterSaleWindow.xaml.cs +++ b/29WxOrderWpf/Windows/OrderWindows/TransitAfterSaleWindow.xaml.cs @@ -32,13 +32,16 @@ namespace _29WxOrderWpf.Windows.OrderWindows public oms_wei_order_item_info OrderItem { get; set; } public oms_wei_external_procurement_log_info TransitOrder { get; set; } = null; - public TransitAfterSaleWindow(oms_wei_order_item_info orderItem) + public TransitAfterSaleWindow(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info _transitOrder) { InitializeComponent(); if (orderItem != null) OrderItem = orderItem; - } + if (_transitOrder != null) + TransitOrder = _transitOrder; + + } private void mainGrid_Loaded(object sender, RoutedEventArgs e) { @@ -57,10 +60,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows { if (TransitOrder == null) { - if (OrderItem.ItemTransitOrder != null) - TransitOrder = OrderItem.ItemTransitOrder; - else - TransitOrder = OrderItem.ItemTransitOrderWithVoid; + TransitOrder = OrderItem.ItemTransitOrder ?? OrderItem.ItemTransitOrderWithVoid; } this.cmbWareHouse.Text = TransitWarehouseData.TransitWarehouseList.FirstOrDefault(t => t.TransId == TransitOrder?.platform)?.TransName; this.txtExpressName.Text = string.IsNullOrWhiteSpace(TransitOrder?.express_2_waybill) ? TransitOrder?.express_1_company : TransitOrder?.express_2_company; @@ -84,17 +84,18 @@ namespace _29WxOrderWpf.Windows.OrderWindows } } - if (OrderItem.ItemTransitOrderAfterSale != null && OrderItem.ItemTransitOrderAfterSale.order_void_status != 1) + var transitAfterSale = OrderItem.ItemTransitOrderAfterSales?.OrderByDescending(t => t.id)?.FirstOrDefault(t => t.order_code == TransitOrder.order_code && t.order_void_status != 1); + if (transitAfterSale != null) { btnAdd.IsEnabled = false; - this.txtUser.Text = OrderItem.ItemTransitOrderAfterSale.recipient_name; - this.txtMobile.Text = OrderItem.ItemTransitOrderAfterSale.recipient_phone; - this.txtDetailAddress.Text = OrderItem.ItemTransitOrderAfterSale.refund_detail_address; - //this.txtAddress.Text = OrderItem.ItemTransitOrderAfterSale.refund_province + "/" + OrderItem.ItemTransitOrderAfterSale.refund_city + "/" + OrderItem.ItemTransitOrderAfterSale.refund_county; - this.txtProvince.Text = OrderItem.ItemTransitOrderAfterSale.refund_province; - this.txtCity.Text = OrderItem.ItemTransitOrderAfterSale.refund_city; - this.txtCounty.Text = OrderItem.ItemTransitOrderAfterSale.refund_county; + this.txtUser.Text = transitAfterSale.recipient_name; + this.txtMobile.Text = transitAfterSale.recipient_phone; + this.txtDetailAddress.Text = transitAfterSale.refund_detail_address; + //this.txtAddress.Text = transitAfterSale.refund_province + "/" + transitAfterSale.refund_city + "/" + transitAfterSale.refund_county; + this.txtProvince.Text = transitAfterSale.refund_province; + this.txtCity.Text = transitAfterSale.refund_city; + this.txtCounty.Text = transitAfterSale.refund_county; } else { diff --git a/AllBase/Model/DBModel/oms_wei_order_item_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_info.cs index 4b4083c..33dfc68 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_info.cs @@ -474,13 +474,15 @@ namespace AllBase.Model.DBModel // 仓库物流售后拦截包裹按钮上的文字,仓库作废单不存在仓库物流,所以此处必须是有效的仓库单(含作废失败) AddEditTransitWarehouseAfterSaleStr = "添加"; - if (order_id == "3739241588056569856") + if (order_id == "3740217344404934656") { } if (this.ItemTransitOrderAfterSale != null) AddEditTransitWarehouseAfterSaleStr = "已添加"; - if (this.ItemTransitOrderAfterSale != null && (ItemTransitOrderWithVoid.intercept_return_status == 1 || !string.IsNullOrEmpty(ItemTransitOrderAfterSale.downstream_waybill))) + if (this.ItemTransitOrderAfterSale != null && this.ItemTransitOrderAfterSale.order_void_status == 1) + AddEditTransitWarehouseAfterSaleStr = "拦截作废"; + else if (this.ItemTransitOrderAfterSale != null && (ItemTransitOrderWithVoid.intercept_return_status == 1 || !string.IsNullOrEmpty(ItemTransitOrderAfterSale.downstream_waybill))) AddEditTransitWarehouseAfterSaleStr = "拦截成功"; else if (this.ItemTransitOrderAfterSale != null && ItemTransitOrderWithVoid.intercept_return_status == 2) AddEditTransitWarehouseAfterSaleStr = "拦截失败"; @@ -1735,7 +1737,9 @@ namespace AllBase.Model.DBModel var Shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ErpShopId == order_item.shop_id.ParseToString()); // 关联商品sku - if (GlobalConfig.CurrentBuyPlatform == "pdd") + if (this.refund_status > 1) + MapSkusBtnVisibility = Visibility.Collapsed; + else if (GlobalConfig.CurrentBuyPlatform == "pdd") { if (PddBuyMapSkus != null && PddBuyMapSkus.Count > 0) MapSkusBtnVisibility = Visibility.Visible; diff --git a/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs b/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs index 88d849c..67e11c7 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs @@ -4,6 +4,7 @@ using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -61,10 +62,10 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject { var transitDetail = new oms_wei_order_item_transit_detail_info() { - VoidPackageBtnVisibility = Visibility.Visible, /* 作废发货包裹 */ - RejectPackageBtnVisibility = Visibility.Visible, /* 拒收发货包裹 */ - //ReturnPackageBtnVisibility = Visibility.Visible, - //ExtraPackagesBtnVisibility = Visibility.Visible, + VoidPackageBtnVisibility = Visibility.Visible, /* 作废发货包裹按钮 */ + RejectPackageBtnVisibility = Visibility.Visible, /* 拒收发货包裹按钮 */ + ReturnPackageBtnVisibility = Visibility.Visible, /* 拦截退货包裹按钮 */ + //ExtraPackagesBtnVisibility = Visibility.Visible, /* 额外发货包裹按钮 */ oms_wei_order_item_info = OrderItem, oms_wei_external_procurement_log_info = transitOrder, @@ -145,12 +146,16 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject transitDetail.TransitRejectStatus = "拒收成功"; var wayBillId = transitOrder.express_2_waybill ?? transitOrder.express_1_waybill; - var transitAfterSaleOrder = OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitOrder.order_code && a.refund_waybill == wayBillId && a.order_void_status != 1 && a.pack_type == 1); + var transitAfterSaleOrder = /* 取未作废的退货包裹,如果取不到,就取第一个退货包裹 */ + OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitOrder.order_code && a.refund_waybill == wayBillId && a.order_void_status != 1 && a.pack_type == 1) ?? + OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitOrder.order_code && a.refund_waybill == wayBillId && a.pack_type == 1); if (transitAfterSaleOrder != null) transitDetail.TransitReturnStatus = "已申请拦截"; - if (transitOrder.intercept_return_status == 1 || !string.IsNullOrEmpty(transitAfterSaleOrder?.downstream_waybill)) + if (transitAfterSaleOrder != null && transitAfterSaleOrder.order_void_status == 1) + transitDetail.TransitReturnStatus = "拦截作废"; + else if (transitAfterSaleOrder != null && (transitOrder.intercept_return_status == 1 || !string.IsNullOrEmpty(transitAfterSaleOrder?.downstream_waybill))) transitDetail.TransitReturnStatus = "拦截成功"; - else if (transitOrder.intercept_return_status == 2) + else if (transitAfterSaleOrder != null && transitOrder.intercept_return_status == 2) transitDetail.TransitReturnStatus = "拦截失败"; transitDetail.TransitDetailRefundStatusStr = GetTransitBuyerRefundStatusStr(OrderItem, transitOrder); @@ -290,7 +295,7 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject var transitDetail = new oms_wei_order_item_transit_detail_info() { oms_wei_order_item_info = OrderItem, - oms_wei_transfer_extra_package = transitExtraOrder, + oms_wei_transfer_extra_package = transitExtraOrder, // 额外包裹 ShopName = OrderItem.ItemOrder.shop_name, @@ -368,14 +373,18 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject transitDetail.TransitRejectStatus = "拒收成功"; // 额外包裹拦截状态暂时没有,待补充 - //var wayBillId = transitOrder.express_2_waybill ?? transitOrder.express_1_waybill; - //var transitAfterSaleOrder = OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitOrder.order_code && a.refund_waybill == wayBillId); - //if (transitAfterSaleOrder != null) - // transitDetail.TransitReturnStatus = "已申请拦截"; - //if (transitOrder.intercept_return_status == 1 || !string.IsNullOrEmpty(transitAfterSaleOrder?.downstream_waybill)) - // transitDetail.TransitReturnStatus = "拦截成功"; - //else if (transitOrder.intercept_return_status == 2) - // transitDetail.TransitReturnStatus = "拦截失败"; + var wayBillId = transitExtraOrder.logistics_express_code ?? transitExtraOrder.real_logistics_express_code; + var transitAfterSaleOrder = /* 取未作废的退货包裹,如果取不到,就取第一个退货包裹 */ + OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitExtraOrder.order_code && a.refund_waybill == wayBillId && a.order_void_status != 1 && a.pack_type == 2) ?? + OrderItem.ItemTransitOrderAfterSales.FirstOrDefault(a => a.order_code == transitExtraOrder.order_code && a.refund_waybill == wayBillId && a.pack_type == 2); + if (transitAfterSaleOrder != null) + transitDetail.TransitReturnStatus = "已申请拦截"; + if (transitAfterSaleOrder != null && transitAfterSaleOrder.order_void_status == 1) + transitDetail.TransitReturnStatus = "拦截作废"; + if (transitAfterSaleOrder != null && transitExtraOrder.intercept_return_status == 1 || !string.IsNullOrEmpty(transitAfterSaleOrder?.downstream_waybill)) + transitDetail.TransitReturnStatus = "拦截成功"; + else if (transitAfterSaleOrder != null && transitExtraOrder.intercept_return_status == 2) + transitDetail.TransitReturnStatus = "拦截失败"; detailList.Add(transitDetail); } @@ -417,6 +426,7 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject { public oms_wei_order_item_transit_detail_info() { + Opacity = 1m; VoidPackageBtnVisibility = Visibility.Collapsed; RejectPackageBtnVisibility = Visibility.Collapsed; ReturnPackageBtnVisibility = Visibility.Collapsed; @@ -428,6 +438,12 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject public oms_wei_external_procurement_after_sale_info oms_wei_external_procurement_after_sale_info { get; set; } public oms_wei_transfer_extra_package oms_wei_transfer_extra_package { get; set; } + public decimal Opacity + { + get { return this.GetValue(x => x.Opacity); } + set { this.SetValue(x => x.Opacity, value); } + } + public string ShopName { get { return this.GetValue(x => x.ShopName); } @@ -562,7 +578,7 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject public string TransitVoidStatus { get { return this.GetValue(x => x.TransitVoidStatus); } - set { this.SetValue(x => x.TransitVoidStatus, value); } + set { this.SetValue(x => x.TransitVoidStatus, value); if (value == "已作废") this.Opacity = 0.6m; } } /// 拒收状态 public string TransitRejectStatus diff --git a/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs b/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs index 8bd20bc..6f8d46c 100644 --- a/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs +++ b/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs @@ -9,25 +9,58 @@ namespace AllBase.Model.DBModel; public class oms_wei_transfer_extra_package : PropertyNotifyObject { - public long id { get; set; } // 主键ID - public string batchId { get; set; } // 新订单号 - public string order_no { get; set; } // 平台订单号 - public string buyer_account { get; set; } // '买家账号', - public int? out_amount { get; set; } // '外部金额(分)', - public string purchaser_note { get; set; } // '采购人备注' - public string logistics_code { get; set; } // '快递公司', - public string logistics_express_code { get; set; } // '快递单号', - public string real_logistics_code // '出库快递公司', + /// + /// 主键ID + /// + public long id { get; set; } + /// + /// 新订单号 + /// + public string batchId { get; set; } + /// + /// 平台订单号 + /// + public string order_no { get; set; } + /// + /// 买家账号 + /// + public string buyer_account { get; set; } + /// + /// 外部金额(分) + /// + public int? out_amount { get; set; } + /// + /// 采购人备注 + /// + public string purchaser_note { get; set; } + /// + /// 快递公司 + /// + public string logistics_code { get; set; } + /// + /// 快递单号 + /// + public string logistics_express_code { get; set; } + /// + /// 出库快递公司 + /// + public string real_logistics_code { get { return this.GetValue(x => x.real_logistics_code); } set { this.SetValue(x => x.real_logistics_code, value); } - } - public string real_logistics_express_code // '出库单号', + } + /// + /// 出库单号 + /// + public string real_logistics_express_code { get { return this.GetValue(x => x.real_logistics_express_code); } set { this.SetValue(x => x.real_logistics_express_code, value); } - } - public string refund_status { get; set; } // '买手退款状态', + } + /// + /// 买手退款状态 + /// + public string refund_status { get; set; } public DateTime? pickup_time { get; set; } // '取号时间', public int? transfer_warehouse_status { get; set; } // '中转仓状态:0 未使用,1 已创建,2 创建失败', public string raw_message { get; set; } // '原始消息/请求体', @@ -56,4 +89,40 @@ public class oms_wei_transfer_extra_package : PropertyNotifyObject /// 货架写入时间 /// public DateTime? location_write_time { get; set; } + /// + /// 外采单号 + /// + public string out_order_no { get; set; } + /// + /// 商品skuId + /// + public string out_sku_id { get; set; } + /// + /// 拦截退回状态:0未处理,1已退回成功,2退回失败(或其它业务码) + /// + public int? intercept_return_status { get; set; } + /// + /// 拦截退回时间 + /// + public DateTime? intercept_return_time { get; set; } + /// + /// 拦截退回操作信息(回调/失败信息/备注等) + /// + public string intercept_return_info { get; set; } + /// + /// 拦截改地址状态:0未处理,1修改成功,2修改失败(或其它业务码) + /// + public int? intercept_address_status { get; set; } + /// + /// 拦截改地址时间 + /// + public DateTime? intercept_address_time { get; set; } + /// + /// 拦截改地址操作信息(回调/失败信息/备注等) + /// + public string intercept_address_info { get; set; } + /// + /// 是否有退货:0 无退货,1 有退货 + /// + public int? has_return { get; set; } } \ No newline at end of file