From cb61749cda0e5584ab250ddfdbcee5d4a5c598b5 Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 27 Oct 2026 10:16:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=88=97=E8=A1=A8=20=20=20=E4=B8=AD=E8=BD=AC=E4=BB=93=E9=80=80?= =?UTF-8?q?=E8=B4=A7=E5=8C=85=E8=A3=B9=E5=A6=82=E6=9E=9C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E7=89=A9=E6=B5=81=E4=BD=BF=E7=94=A8=E4=B9=B0=E6=89=8B=E7=89=A9?= =?UTF-8?q?=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderCtrls/OrderListRowItemCtrl.xaml.cs | 2 +- .../OrderTransitListDetailCtrl.xaml | 55 ++++- .../TransitAfterSaleWindow.xaml.cs | 6 + ...ei_external_procurement_after_sale_info.cs | 1 + .../oms_wei_order_item_transit_info.cs | 209 ++++++++++++++++-- .../DBModel/oms_wei_transfer_extra_package.cs | 8 + 6 files changed, 255 insertions(+), 26 deletions(-) diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs index dc1da95..5cfbef3 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs @@ -2135,7 +2135,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls private async void borderWarehouseStatas_MouseUp(object sender, MouseButtonEventArgs e) { - //return; + return; if (this.DataContext is oms_wei_order_item_info orderItem) { oms_wei_order_item_transit_info transitInfo = new oms_wei_order_item_transit_info() diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml index 996d761..6d12254 100644 --- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml +++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderTransitListDetailCtrl.xaml @@ -7,7 +7,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wpf="WPFCommon" d:DesignHeight="280" - d:DesignWidth="800" + d:DesignWidth="1000" Background="White" mc:Ignorable="d"> @@ -66,6 +66,7 @@ + + - @@ -213,6 +207,49 @@ BorderBrush="LightSkyBlue" BorderThickness="0,0,1,0" Opacity="0.5"> + + + + + + + + + + + + + public int? postage { get; set; } + public DateTime? pickup_time { get; set; } /// /// 货架号 /// 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 f4db870..510f8f7 100644 --- a/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs +++ b/AllBase/Model/DBModel/oms_wei_order_item_transit_info.cs @@ -1,5 +1,6 @@ using AllBase.Helper; using AllBase.Model.MvvmBaseClasses; +using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -34,11 +35,16 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject [ .. GetOrderItemTransitDetailList(), .. GetOrderItemTransitAftersaleList(), + .. GetOrderItemTransitExtraList(), ]; this.OrderItemTransitDetailList = new ObservableCollection(transitDetailList); } + /// + /// 获取发货包裹对应信息列表 + /// + /// List GetOrderItemTransitDetailList() { if (OrderItem == null || OrderItem.ItemOrder == null) @@ -54,6 +60,9 @@ 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_external_procurement_log_info = transitOrder, + ShopName = OrderItem.ItemOrder.shop_name, TransitTypeStr = "发货包裹", @@ -74,7 +83,7 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject //UpperWaybill = transitOrder.express_1_waybill != transitOrder.virtual_waybill_no ? "" : (transitOrder.express_1_company + "-" + transitOrder.express_1_waybill).Trim('-'), UpperWaybill = transitOrder.pre_allocated_order_no != 1 && transitOrder.pre_allocated_order_no != 3 ? "" : (transitOrder.express_1_company + "-" + transitOrder.express_1_waybill).Trim('-'), DownWaybill = (transitOrder.express_2_company + "-" + transitOrder.express_2_waybill).Trim('-'), - BuyReundStatus = transitOrder.refund_status, + BuyRefundStatus = transitOrder.refund_status, PickUpTime = transitOrder.pickup_time == DateTime.MinValue ? null : transitOrder.pickup_time, CreateTimeStr = transitOrder.pickup_time == DateTime.MinValue ? null : transitOrder.pickup_time.ToString("yyyy-MM-dd HH:mm:ss"), @@ -94,6 +103,8 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject transitDetail.OutBuyerId = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder.buyer_account)?.buyer_id ?? ""; // 中转仓订单创建状态 0 未使用,1 已创建,2 创建失败,3 处理中(业务方根据此字段处理中转流程) + if (transitOrder.transfer_warehouse_status == 0) + transitDetail.TransitStatus = "未使用"; if (transitOrder.transfer_warehouse_status == 1) transitDetail.TransitStatus = "已创建"; else if (transitOrder.transfer_warehouse_status == 2) @@ -112,9 +123,29 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject transitDetail.WarehouseStatus = "已拦截到仓"; if (transitOrder.order_void_status == 1) - transitDetail.TransitVoidStatus = "(已作废)"; + transitDetail.TransitVoidStatus = "已作废"; //else if (transitOrder.order_void_status == 2) - // transitDetail.TransitVoidStatus = "(作废失败)"; + // transitDetail.TransitVoidStatus = "作废失败"; + + if (transitOrder?.has_reject == 1) + transitDetail.TransitRejectStatus = "已申请拒收"; + if (transitOrder?.has_reject == 2) + transitDetail.TransitRejectStatus = "申请失败"; + if (transitOrder?.has_reject == 3) + transitDetail.TransitRejectStatus = "申请成功"; + if (transitOrder?.has_reject == 5) + transitDetail.TransitRejectStatus = "已取消拒收"; + if (transitOrder?.has_reject == 99) + 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 = "拦截失败"; detailList.Add(transitDetail); } @@ -126,6 +157,10 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject return detailList; } + /// + /// 获取退货包裹对应信息列表 + /// + /// List GetOrderItemTransitAftersaleList() { if (OrderItem == null || OrderItem.ItemOrder == null) @@ -142,6 +177,9 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject var transitOrder = OrderItem.ItemTransitOrders?.FirstOrDefault(t => t.order_code == transitAftersaleOrder.order_code); var transitDetail = new oms_wei_order_item_transit_detail_info() { + oms_wei_order_item_info = OrderItem, + oms_wei_external_procurement_after_sale_info = transitAftersaleOrder, + ShopName = OrderItem.ItemOrder.shop_name, //TransitTypeStr = "拦截退回", @@ -162,10 +200,10 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject UpperWaybill = (transitAftersaleOrder.return_express_company + "-" + transitAftersaleOrder.refund_waybill).Trim('-'), DownWaybill = (transitAftersaleOrder.downstream_express_code + "-" + transitAftersaleOrder.downstream_waybill).Trim('-'), - BuyReundStatus = transitOrder.refund_status, + BuyRefundStatus = transitOrder.refund_status, - // 售后暂时缺少取号时间 - //PickUpTime = transitAftersaleOrder.pickup_time == DateTime.MinValue ? null : transitAftersaleOrder.pickup_time, + // todo 售后暂时缺少取号时间 + PickUpTime = transitAftersaleOrder.pickup_time == DateTime.MinValue ? null : transitAftersaleOrder.pickup_time, CreateTimeStr = transitAftersaleOrder.created_time == null ? null : transitAftersaleOrder.created_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), InboundTime = transitAftersaleOrder.inbound_time, OutboundTime = transitAftersaleOrder.outbound_time, @@ -182,9 +220,9 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject else transitDetail.OutBuyerId = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder?.buyer_account)?.buyer_id ?? ""; - // 售后处理状态,0未处理,1处理中,2已完成,9异常 - if (transitAftersaleOrder.status == 1) - transitDetail.TransitStatus = "处理中"; + // 退货包裹处理状态,0未处理,1处理中,2已完成,9异常 + if (transitAftersaleOrder.status == 0) + transitDetail.TransitStatus = "未处理"; if (transitAftersaleOrder.status == 1) transitDetail.TransitStatus = "处理中"; else if (transitAftersaleOrder.status == 2) @@ -192,7 +230,7 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject else if (transitAftersaleOrder.status == 9) transitDetail.TransitStatus = "异常"; - // 售后入库状态 1=入库 2=出库 + // 退货包裹入库状态 1=入库 2=出库 if (transitAftersaleOrder.warehouse_status == 0) transitDetail.WarehouseStatus = "已创建"; else if (transitAftersaleOrder.warehouse_status == 1) @@ -204,9 +242,13 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject // 售后暂时没有作废状态 //if (transitAftersaleOrder.order_void_status == 1) - // transitDetail.TransitVoidStatus = "(已作废)"; + // transitDetail.TransitVoidStatus = "已作废"; //else if (transitOrder.order_void_status == 2) - // transitDetail.TransitVoidStatus = "(作废失败)"; + // transitDetail.TransitVoidStatus = "作废失败"; + + // 售后表没有拒收和拒收状态功能 + + // 售后表拦截成功状态在主表或者额外包裹表显示 detailList.Add(transitDetail); } @@ -217,10 +259,133 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject } return detailList; } + + /// + /// 获取额外包裹对应信息列表 + /// + /// + List GetOrderItemTransitExtraList() + { + if (OrderItem == null || OrderItem.ItemOrder == null) + { + return new List(); + } + + List detailList = new List(); + + foreach (var transitExtraOrder in OrderItem.ItemTransitExtraOrders ?? new List()) + { + try + { + var transitOrder = OrderItem.ItemTransitOrders?.FirstOrDefault(t => t.order_code == transitExtraOrder.order_code); + var transitDetail = new oms_wei_order_item_transit_detail_info() + { + oms_wei_order_item_info = OrderItem, + oms_wei_transfer_extra_package = transitExtraOrder, + + ShopName = OrderItem.ItemOrder.shop_name, + + TransitTypeStr = "额外包裹", + + OrderCode = transitExtraOrder.order_code + " / " + transitExtraOrder.batchId, + SourceCode = transitOrder?.random_code, + + WxOrderId = transitExtraOrder.order_no, + WxOrderSkuId = transitOrder?.order_sku_id, + WxOrderThumbImg = OrderItem.thumb_img, + WxOrderCreateTime = OrderItem.ItemOrder.CreateDateTime, + + TransitAddTimeStr = transitExtraOrder.created_time == null ? "" : transitExtraOrder.created_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + + OutOrderId = transitOrder?.out_order_no, + OutBuyerName = transitOrder?.OutOrderBuyerStr, + + UpperWaybill = (transitExtraOrder.logistics_code + "-" + transitExtraOrder.logistics_express_code).Trim('-'), + DownWaybill = (transitExtraOrder.real_logistics_code + "-" + transitExtraOrder.real_logistics_express_code).Trim('-'), + BuyRefundStatus = transitOrder.refund_status, + + PickUpTime = transitExtraOrder.pickup_time == DateTime.MinValue ? null : transitExtraOrder.pickup_time, + CreateTimeStr = transitExtraOrder.created_time == null ? null : transitExtraOrder.created_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + InboundTime = transitExtraOrder.inbound_time, + OutboundTime = transitExtraOrder.outbound_time, + + WarehouseId = transitOrder?.platform, + WarehouseName = TransitWarehouseData.dicWarehouseIdName.ContainsKey(transitOrder?.platform) ? TransitWarehouseData.dicWarehouseIdName[transitOrder?.platform] : transitOrder?.platform, + + ShelfCodeStr = transitExtraOrder.location_code, + ShelfTimeStr = transitExtraOrder.location_write_time == null ? "" : transitExtraOrder.location_write_time.Value.ToString("yyyy-MM-dd HH:mm:ss"), + }; + + if (!transitDetail.OutOrderId.StartsWith("tb_")) + transitDetail.OutBuyerId = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder?.buyer_account)?.buyer_id ?? ""; + else + transitDetail.OutBuyerId = GlobalConfig.TaobaoBuyerLoginList.FirstOrDefault(b => b.buyer_id == transitOrder?.buyer_account)?.buyer_id ?? ""; + + // 额外包裹处理状态,0 未使用,1 已创建,2 创建失败 + if (transitExtraOrder.transfer_warehouse_status == 0) + transitDetail.TransitStatus = "未使用"; + if (transitExtraOrder.transfer_warehouse_status == 1) + transitDetail.TransitStatus = "已创建"; + else if (transitExtraOrder.transfer_warehouse_status == 2) + transitDetail.TransitStatus = "创建失败"; + else if (transitExtraOrder.transfer_warehouse_status == 3) + transitDetail.TransitStatus = "处理中"; + + // 额外包裹入库状态 1=入库 2=出库 + if (transitExtraOrder.warehouse_status == 0) + transitDetail.WarehouseStatus = "已创建"; + else if (transitExtraOrder.warehouse_status == 1) + transitDetail.WarehouseStatus = "已入库"; + else if (transitExtraOrder.warehouse_status == 2) + transitDetail.WarehouseStatus = "已出库"; + else if (transitExtraOrder.warehouse_status == 3) + transitDetail.WarehouseStatus = "已拦截到仓"; + + // 额外包裹作废状态 + if (transitExtraOrder.order_void_status == 1) + transitDetail.TransitVoidStatus = "已作废"; + //else if (transitExtraOrder.order_void_status == 2) + // transitDetail.TransitVoidStatus = "作废失败"; + + if (transitExtraOrder?.has_reject == 1) + transitDetail.TransitRejectStatus = "已申请拒收"; + if (transitExtraOrder?.has_reject == 2) + transitDetail.TransitRejectStatus = "申请失败"; + if (transitExtraOrder?.has_reject == 3) + transitDetail.TransitRejectStatus = "申请成功"; + if (transitExtraOrder?.has_reject == 5) + transitDetail.TransitRejectStatus = "已取消拒收"; + if (transitExtraOrder?.has_reject == 99) + 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 = "拦截失败"; + + detailList.Add(transitDetail); + } + catch (Exception ex) + { + + } + } + return detailList; + } } public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject { + public oms_wei_order_item_info oms_wei_order_item_info { get; set; } + public oms_wei_external_procurement_log_info oms_wei_external_procurement_log_info { get; set; } + 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 string ShopName { get { return this.GetValue(x => x.ShopName); } @@ -344,11 +509,23 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject get { return this.GetValue(x => x.TransitVoidStatus); } set { this.SetValue(x => x.TransitVoidStatus, value); } } - /// 买手退货状态 - public string BuyReundStatus + /// 拒收状态 + public string TransitRejectStatus { - get { return this.GetValue(x => x.BuyReundStatus); } - set { this.SetValue(x => x.BuyReundStatus, value); } + get { return this.GetValue(x => x.TransitRejectStatus); } + set { this.SetValue(x => x.TransitRejectStatus, value); } + } + /// 拦截退回状态 + public string TransitReturnStatus + { + get { return this.GetValue(x => x.TransitReturnStatus); } + set { this.SetValue(x => x.TransitReturnStatus, value); } + } + /// 买手退货状态 + public string BuyRefundStatus + { + get { return this.GetValue(x => x.BuyRefundStatus); } + set { this.SetValue(x => x.BuyRefundStatus, value); } } public string UpperWaybill diff --git a/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs b/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs index 119444f..8bd20bc 100644 --- a/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs +++ b/AllBase/Model/DBModel/oms_wei_transfer_extra_package.cs @@ -48,4 +48,12 @@ public class oms_wei_transfer_extra_package : PropertyNotifyObject public DateTime? rejected_time { get; set; } // '拒收时间', public int? has_reject { get; set; } // DEFAULT NULL, public DateTime? blocked_arrival_time { get; set; } + /// + /// 货架号 + /// + public string location_code { get; set; } + /// + /// 货架写入时间 + /// + public DateTime? location_write_time { get; set; } } \ No newline at end of file