过滤订单使用异步方法 优化中转仓额外包裹逻辑

This commit is contained in:
wule committed 2026-11-10 16:34:57 +08:00
1 parent 200e5bc8c8
commit 344cbb4ac2
4 files changed
+33 -25

No files matched your search

@@ -1686,13 +1686,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
});
}
public void FilterOneOrder(string orderId, bool updateTabCount = false)
public async Task FilterOneOrder(string orderId, bool updateTabCount = false)
{
var orderExist = GlobalConfig.lstFilterOrder.ToList().FirstOrDefault(o => o.order_id == orderId);
FilterOneOrder(orderExist, updateTabCount);
await FilterOneOrder(orderExist, updateTabCount);
}
public void FilterOneOrder(oms_wei_order_info order, bool updateTabCount = false)
public async Task FilterOneOrder(oms_wei_order_info order, bool updateTabCount = false)
{
if (order == null)
return;
@@ -1717,23 +1717,24 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (!GetOrderIsFilter(order))
{
var index = -1;
oms_wei_order_info nextOrder = null;
lock (MainWindow._orderLock)
{
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单"))
nextOrder = GlobalConfig.lstFilterOrder.ToList().FirstOrDefault(o => o.RefundDatetime < order.RefundDatetime);
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍"))
nextOrder = GlobalConfig.lstFilterOrder.ToList().FirstOrDefault(o => o.update_time < order.update_time);
else
nextOrder = GlobalConfig.lstFilterOrder.ToList().FirstOrDefault(o => o.create_time < order.create_time);
}
if (nextOrder != null)
index = GlobalConfig.lstFilterOrder.IndexOf(nextOrder);
Dispatcher.InvokeAsync(() =>
await Dispatcher.InvokeAsync(() =>
{
lock (MainWindow._orderLock)
{
var index = -1;
oms_wei_order_info nextOrder = null;
//lock (MainWindow._orderLock)
{
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单"))
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.RefundDatetime < order.RefundDatetime);
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍"))
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.update_time < order.update_time);
else
nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
}
if (nextOrder != null)
index = GlobalConfig.lstFilterOrder.IndexOf(nextOrder);
if (nextOrder != null && index >= 0 && GlobalConfig.lstFilterOrder.Count > index)
{
GlobalConfig.lstFilterOrder.Insert(index, order);
@@ -1749,7 +1750,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
if (updateTabCount)
{
disPlayOrderTabOrderCount();
await disPlayOrderTabOrderCount();
}
}
@@ -1531,10 +1531,16 @@ namespace AllBase.Model.DBModel
get { return this.GetValue(x => x.BtnDirectBuyOrderVisibility); }
set { this.SetValue(x => x.BtnDirectBuyOrderVisibility, value); }
}
public bool? _itemOrderIsAbnormal { get; set; } = false;
public bool? _itemOrderIsWaitBuy { get; set; } = false;
public void SetAbnormalAndDirectBtnVisibility()
{
bool? _itemOrderIsAbnormal = ItemOrder?.GetIsAbnormal();
bool? _itemOrderIsWaitBuy = ItemOrder?.GetIsWaitBuy();
_itemOrderIsAbnormal = ItemOrder?.GetIsAbnormal();
if (ItemOrder != null)
ItemOrder.IsAbnormal = _itemOrderIsAbnormal == true;
_itemOrderIsWaitBuy = ItemOrder?.GetIsWaitBuy();
if (ItemOrder != null)
ItemOrder.IsWaitBuy = _itemOrderIsWaitBuy == true;
// 买手秒退异常重拍
var _btnAbnormalOrderRebuyVisibility = Visibility.Visible;
@@ -1914,7 +1920,7 @@ namespace AllBase.Model.DBModel
}
/// <summary>
/// 判断中转仓订单是否可以异常重拍
/// 判断中转仓订单是否可以异常重拍(拍单时用,初始化数据时候返回的数据是错的)
/// </summary>
/// <param name="order_item"></param>
/// <returns></returns>
@@ -196,10 +196,11 @@ public class oms_wei_order_item_transit_model : PropertyNotifyObject
!OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
Visibility.Visible : Visibility.Collapsed; /* 拦截退货包裹按钮 */
transitDetail.ExtraPackagesBtnVisibility = (transitOrder.warehouse_status == 0 || transitOrder.warehouse_status == 1 || transitOrder.warehouse_status == 3 || !transitOrder.location_code.IsNullOrEmpty()) &&
transitDetail.ExtraPackagesBtnVisibility = ((transitOrder.warehouse_status == 0 || transitOrder.warehouse_status == 1 || transitOrder.warehouse_status == 3 || !transitOrder.location_code.IsNullOrEmpty()) &&
!(transitDetail.CreateTime > DateTime.Now.AddDays(-2)) &&
!OrderItem.ItemTransitOrderAfterSales.Any(af => af.pack_type == 1 && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) &&
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1) ?
!OrderItem.ItemTransitExtraOrders.Any(af => af.pack_type == "1" && af.order_code == transitDetail.OrderCode && af.order_void_status != 1)) ||
OrderItem._itemOrderIsAbnormal == true ?
Visibility.Visible : Visibility.Collapsed; /* 额外发货包裹按钮 */
+2 -2
View File
@@ -91,7 +91,7 @@ namespace TemuKJD.ToolForms
// 订单仓库
private TransitWarehouseParam transitWarehouse = null;
// (拍单后)回调函数,过滤订单
private Action<oms_wei_order_info, bool> filterOrderAction = null;
private Func<oms_wei_order_info, bool, Task> filterOrderAction = null;
// (拍单后)回调函数,更新拍单余额
private Action updateBalanceAction = null;
@@ -131,7 +131,7 @@ namespace TemuKJD.ToolForms
bool HasChangeAddress = false;
public PddMobileBuyOrderForm(Action<oms_wei_order_info, bool> filterOrder, Action updateBalance, oms_wei_order_item_info orderItemInfo, BuyerLoginInfo buyerInfo, WXBuyMapInfo buy_map = null)
public PddMobileBuyOrderForm(Func<oms_wei_order_info, bool, Task> filterOrder, Action updateBalance, oms_wei_order_item_info orderItemInfo, BuyerLoginInfo buyerInfo, WXBuyMapInfo buy_map = null)
{
InitializeComponent();