订单排序,优化异常重拍

This commit is contained in:
wule committed 2026-10-19 18:18:02 +08:00
1 parent fd0ff6771f
commit d36774ea18
7 files changed
+74 -9

No files matched your search

@@ -19,9 +19,9 @@ namespace _29WxOrderWpf.Converters
return 0;
return listView.ItemContainerGenerator.IndexFromContainer(item) + 1;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
@@ -1265,7 +1265,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// 退款状态有变化才发起修改(退款状态不能从退款成功变成未退款)
PddBuyerAfterSaleLiteInfo afterSaleRefundSuccessExist = null;
afterSaleRefundSuccessExist = lstPddBuyerAfterSaleInfoLite.ToList().FirstOrDefault(a => a.afterSalesId != afterSale.afterSalesId &&
a.orderSn == afterSale.orderSn && (a.AfterSaleStatusStr.Contains("退款成功") || a.AfterSaleStatusStr.Contains("交易已取消")));
a.orderSn == afterSale.orderSn && !string.IsNullOrEmpty(a.AfterSaleStatusStr) && (a.AfterSaleStatusStr.Contains("退款成功") || a.AfterSaleStatusStr.Contains("交易已取消")));
if ((afterSaleRefundSuccessExist == null || afterSale.AfterSaleStatusStr == afterSaleRefundSuccessExist.AfterSaleStatusStr) &&
(afterSale.AfterSaleStatusOldStr != afterSale.AfterSaleStatusStr))
@@ -1416,7 +1416,8 @@
CanUserReorderColumns="False"
ColumnDisplayIndexChanged="dgOrderHeader_ColumnDisplayIndexChanged"
ColumnHeaderHeight="{Binding ElementName=lstTitle, Path=ActualHeight}"
LayoutUpdated="dgOrderHeader_LayoutUpdated">
LayoutUpdated="dgOrderHeader_LayoutUpdated"
Sorting="dgOrderHeader_Sorting">
<DataGrid.Columns>
<DataGridTextColumn
Width="38"
@@ -1463,9 +1464,20 @@
Header="店铺单号"
HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" />
<DataGridTextColumn
x:Name="dgHeaderTime"
Width="90*"
Header="交易时间"
HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}" />
Header="交易时间 ▼"
HeaderStyle="{StaticResource BaseDataGridColumnHeaderStyle}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<!-- 设置 Cursor 为 Hand -->
<TextBlock
x:Name="tbHeaderTimeTxt"
Cursor="Hand"
Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.ColumnHeaderTitle}" />
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn
Width="65*"
Header="利润"
@@ -1497,6 +1509,7 @@
Grid.Row="4"
Margin="7,0,7,0"
HorizontalContentAlignment="Stretch"
AlternationCount="1000000"
BorderThickness="0"
ScrollViewer.CanContentScroll="True"
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
@@ -75,6 +75,16 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
OnPropertyChanged(new PropertyChangedEventArgs("orderFilterConfig"));
}
}
private string _columnHeaderTitle = "交易时间 ▼";
public string ColumnHeaderTitle
{
get => _columnHeaderTitle;
set
{
_columnHeaderTitle = value;
OnPropertyChanged(new PropertyChangedEventArgs("ColumnHeaderTitle"));
}
}
string cmbReturnOrderBuyerStatusText = string.Empty;
string cmbReturnPackageStatusText = string.Empty;
@@ -2266,6 +2276,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
GlobalConfig.lstFilterOrder.Clear();
GlobalConfig.lstFilterOrder = new ObservableCollection<oms_wei_order_info>();
this.lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
dgHeaderTime.Header = ColumnHeaderTitle = "交易时间 ▼";
}
GlobalConfig.OrderTabHeaderStr = ((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString();
FilterOrders();
@@ -3144,6 +3156,34 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
private void dgOrderHeader_Sorting(object sender, DataGridSortingEventArgs e)
{
if (e.Column.Header.ParseToString().StartsWith("交易时间"))
{
if (e.Column.Header.ParseToString() == "交易时间 ▲")
{
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单"))
GlobalConfig.lstFilterOrder.SortDesc(o => o.RefundDatetime);
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍"))
GlobalConfig.lstFilterOrder.SortDesc(o => o.update_time);
else
GlobalConfig.lstFilterOrder.SortDesc(o => o.create_time);
e.Column.Header = ColumnHeaderTitle = "交易时间 ▼";
}
else
{
if (GlobalConfig.OrderTabHeaderStr.StartsWith("需处理售后单") || GlobalConfig.OrderTabHeaderStr.StartsWith("退货仓自动售后单"))
GlobalConfig.lstFilterOrder.Sort(o => o.RefundDatetime);
else if (GlobalConfig.OrderTabHeaderStr.StartsWith("异常需重拍"))
GlobalConfig.lstFilterOrder.Sort(o => o.update_time);
else
GlobalConfig.lstFilterOrder.Sort(o => o.create_time);
e.Column.Header = ColumnHeaderTitle = "交易时间 ▲";
}
}
}
private void cmbFilterRemark_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cmbFilterRemark.SelectedItem is ComboBoxItem comboBoxItem)
@@ -58,10 +58,13 @@
<ColumnDefinition Width="120*" />
<ColumnDefinition Width="72*" />
</Grid.ColumnDefinitions>
<TextBlock d:Text="No.1"
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Converter={StaticResource listBoxIndexConverter}}" />
d:Text="1"
Text="{Binding ItemOrder.Index}" />
<!-- Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(ItemsControl.AlternationIndex)}" -->
<!-- Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Converter={StaticResource listBoxIndexConverter}}" -->
<CheckBox
Grid.Column="1"
Margin="0,0,0,0"
@@ -355,6 +355,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return;
}
var oldVisibility = orderItem.BtnAbnormalOrderRebuyVisibility;
if (!orderItem.GetIsAbnormalOrderRebuy() && GlobalConfig.lstOrder.Any(o => o.orderItems
.Any(oi => oi.ItemTransitOrder?.order_no == orderItem.order_id && oi.ItemTransitOrder?.order_sku_id == orderItem.sku_id)))
{
@@ -378,6 +379,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
if (orderItem == null)
return;
if (isAbnormalOrder)
orderItem.BtnAbnormalOrderRebuyVisibility = oldVisibility;
if (!isAbnormalOrder && orderItem.ItemTransitOrder != null)
{
@@ -1440,6 +1443,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
void directBuyOrder()
{
var orderItem = this.DataContext as oms_wei_order_item_info;
var oldVisibility = orderItem.BtnAbnormalOrderRebuyVisibility;
if (orderItem == null)
{
BaseMsgWindow.ShowError("订单信息为空");
@@ -1471,12 +1475,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
var skuId = orderItem.sku_id;
MainWindow.Instance.orderListCtrl.GetOrder(orderId);
var newOrder = GlobalConfig.lstOrder.FirstOrDefault(or => or.order_id == orderId);
if (newOrder.orderItems.Count == 1)
if (newOrder?.orderItems.Count == 1)
orderItem = newOrder?.orderItems?.FirstOrDefault();
else
orderItem = newOrder?.orderItems?.FirstOrDefault(oi => oi.sku_id == skuId);
if (orderItem == null)
return;
orderItem.BtnAbnormalOrderRebuyVisibility = oldVisibility;
if (!orderItem.ItemOrder.out_order_no.IsNullOrEmpty() && orderItem.ItemOrder.out_after_sale_status != "退款成功")
{
@@ -30,6 +30,10 @@ namespace AllBase.Model.DBModel
get { return this.GetValue(x => x.Shop); }
set { this.SetValue(x => x.Shop, value); }
}
public int Index
{
get { return GlobalConfig.lstFilterOrder.IndexOf(this) + 1; }
}
public string OrderDiffItemCountStr
{
get { return this.GetValue(x => x.OrderDiffItemCountStr); }