修复退货包裹无法创建问题

This commit is contained in:
wule committed 2026-10-29 11:31:12 +08:00
1 parent a31b87b512
commit 6b8557f8b2
8 files changed
+239 -102

No files matched your search

@@ -1124,11 +1124,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
foreach (TbBuyerAfterSaleLiteInfo af in list)
{
if (af?.orderSn == "tb_5127796188031004903")
{
}
af.buyerId = buyer.buyer_id;
af.buyerName = buyer.buyer_name;
@@ -337,7 +337,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
/// 批量拉取订单
/// </summary>
/// <param name="filterGetCondition">按过滤条件读取读取服务端订单,已废弃</param>
public void GetOrder(string orderIds = "", bool filterGetCondition = false)
public async Task GetOrder(string orderIds = "", bool filterGetCondition = false)
{
while (!MainWindow.Instance.hasReadShop)
{
@@ -610,21 +610,18 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
if (page % 5 == 1 || page >= totalPage)
disPlayOrderTabOrderCount();
await disPlayOrderTabOrderCount();
}
// 处理店铺后台物流异常单
BottomMsg = "当前正在读取物流异常单...";
if (string.IsNullOrEmpty(orderIds))
GetShopWaybillExceptionOrder();
await GetShopWaybillExceptionOrder();
// 处理拒收单
BottomMsg = "当前正在处理拒收单...";
if (string.IsNullOrEmpty(orderIds))
Task.Run(async () =>
{
await AutoUpdateTransitRejectedToPddShop();
});
await AutoUpdateTransitRejectedToPddShop();
// 处理中转仓退货包裹
BottomMsg = "当前正在处理拦截退回总店...";
@@ -634,12 +631,11 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 处理退货仓分销退货
BottomMsg = "当前正在处理分销退货...";
if (string.IsNullOrEmpty(orderIds))
Task.Run(async () =>
{
await DoReturnOrderBuyerRefendSlient();
await DoReturnOrderTransitCreateSlient();
await AutoUpdateTransitReturnOrderToPddShop();
});
{
await DoReturnOrderBuyerRefendSlient();
await DoReturnOrderTransitCreateSlient();
await AutoUpdateTransitReturnOrderToPddShop();
};
if (string.IsNullOrEmpty(orderIds))
hasReadOrder = true;
@@ -1135,7 +1131,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return GlobalConfig.BuyMapSkusList.Where(m => orderItems.Any(oi => m.spu_code == oi.out_product_id || m.spu_code == oi.product_id)).ToList();
}
public void GetShopWaybillExceptionOrder()
public async Task GetShopWaybillExceptionOrder()
{
foreach (var shop in GlobalConfig.ShopLoginList)
{
@@ -1271,7 +1267,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
if (index % 10 == 0 || index >= GlobalConfig.ShopLoginList.Count - 1)
disPlayOrderTabOrderCount();
await Task.Run(() => disPlayOrderTabOrderCount());
}
}
@@ -1240,24 +1240,54 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
private void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
private async void btnAddEditTransitWarehouseReject_Click(object sender, RoutedEventArgs e)
{
if (sender == btnAddEditTransitWarehouseReject && this.DataContext is oms_wei_order_item_info orderItem1 && !string.IsNullOrWhiteSpace(orderItem1.ItemTransitOrderWithVoid?.express_1_waybill))
if (this.DataContext is oms_wei_order_item_info orderItem)
{
BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem1);
buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + orderItem1.ItemTransitOrderWithVoid?.express_1_waybill;
new DialogWindow()
if (sender == btnAddEditTransitWarehouseReject && !string.IsNullOrWhiteSpace(orderItem.ItemTransitOrderWithVoid?.express_1_waybill))
{
Width = 1280,
Height = 800,
Title = "物流拒收查询",
Content = buyerLoginForm,
}.Show();
return;
ShowRejectTransitOrder(orderItem, orderItem.ItemTransitOrderWithVoid?.express_1_waybill);
}
else if (sender == btnAddEditTransitWarehouseReject_New)
{
try
{
BaseMsgWindow.ShowInfo(await RejectTransitOrder(orderItem, orderItem.ItemTransitOrder));
}
catch (Exception ex)
{
BaseMsgWindow.ShowError(ex.Message);
}
}
}
}
/// <summary>
/// 查询拒收状态
/// </summary>
/// <param name="orderItem"></param>
/// <param name="upperWaybill"></param>
public static void ShowRejectTransitOrder(oms_wei_order_item_info orderItem, string upperWaybill)
{
BaiduGetWaybillInfoView buyerLoginForm = new BaiduGetWaybillInfoView(orderItem);
buyerLoginForm.ViewModel.InitUrl = "https://www.baidu.com/s?ie=UTF-8&wd=" + upperWaybill;
new DialogWindow()
{
Width = 1280,
Height = 800,
Title = "物流拒收查询",
Content = buyerLoginForm,
}.Show();
return;
}
/// <summary>
/// 云仓申请拒收退回总店
/// </summary>
/// <param name="orderItem"></param>
public static async Task<string> RejectTransitOrder(oms_wei_order_item_info orderItem, oms_wei_external_procurement_log_info _itemTransitOrder)
{
string msg = $@"
        云仓拒收退回总店
@@ -1267,67 +1297,60 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
收  费:免费";
if (BaseMsgWindow.ShowConfirm(msg, "云仓拒收退回总店", null, MsgWindowLevel.LARGE, 300).DialogResult != true)
return;
return "";
if (this.DataContext is oms_wei_order_item_info orderItem)
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList();
orderItem.PddBuyerOrders.AddRange(OrderListCtrl.GetTbBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList());
OrderListCtrl.InitOrderItemObservableProp(orderItem);
var itemTransitOrder = orderItem.ItemTransitOrders.FirstOrDefault(o => o.order_code == _itemTransitOrder.order_code && o.out_order_no == _itemTransitOrder.out_order_no);
if (itemTransitOrder == null)
itemTransitOrder = _itemTransitOrder;
//if (itemTransitOrder?.warehouse_status == 3) { BaseMsgWindow.ShowError("商品已拒收或拦截!"); return; }
//if (itemTransitOrder?.warehouse_status == 2) { BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!"); return; }
//if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn)) { BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款"); return; }
if (itemTransitOrder?.has_reject == 1 || itemTransitOrder?.has_reject == 3)
{
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList();
orderItem.PddBuyerOrders.AddRange(OrderListCtrl.GetTbBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList());
OrderListCtrl.InitOrderItemObservableProp(orderItem);
//if (orderItem.ItemTransitOrder?.warehouse_status == 3)
//{
// BaseMsgWindow.ShowError("商品已拒收或拦截!");
// return;
//}
//if (orderItem.ItemTransitOrder?.warehouse_status == 2)
//{
// BaseMsgWindow.ShowError("商品已出库,请选择退回中转仓!");
// return;
//}
//if (string.IsNullOrEmpty(orderItem.PddBuyerOrder?.order_sn))
//{
// BaseMsgWindow.ShowError("商品未出单,请直接去拼多多买手申请退款");
// return;
//}
if (orderItem.ItemTransitOrder?.has_reject == 1 || orderItem.ItemTransitOrder?.has_reject == 3)
{
BaseMsgWindow.ShowAnimateMessage("已申请拒收", "Msg", 3);
return;
}
// 中转仓拒收(已产生物流)
string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/rejectApply";
var dataObj = new JObject();
dataObj["orderCode"] = orderItem.ItemTransitOrder?.order_code;
dataObj["orderId"] = orderItem.order_id;
dataObj["logisticsExpressCode"] = orderItem.PddBuyerOrder?.order_sn;
var data = JsonHelper.SerializeObject(dataObj);
var html = HttpResponseWXBLL.e57PostResponse(url, data, "");
int rejectStatus = 0;
if (html.Contains("<code>0</code>") || html.Contains("<code>200</code>"))
{
rejectStatus = 1;
BaseMsgWindow.ShowAnimateMessage("申请成功", "Msg", 3);
}
else
{
rejectStatus = 2;
var err = BaseRegex.GetStringXmlByRegs(ref html, "msg");
BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
}
url = BaseClass.Build29WxObjString("order/wx_update_transit_order_reject_status");
data = UserLogin.GetSignaturex();
data += "&order_no=" + orderItem.order_id;
data += "&order_sku_id=" + orderItem.sku_id;
data += "&has_reject=" + rejectStatus;
html = GetHtml.PostUtf8(url, data);
orderItem.ItemTransitOrderWithVoid.has_reject = rejectStatus;
OrderListCtrl.InitOrderItemObservableProp(orderItem);
//BaseMsgWindow.ShowAnimateMessage("已申请拒收", "Msg", 3);
return "已申请过拒收";
}
// 中转仓拒收(已产生物流)
string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/orders/rejectApply";
var dataObj = new JObject();
dataObj["orderCode"] = itemTransitOrder?.order_code;
dataObj["orderId"] = orderItem.order_id;
dataObj["logisticsExpressCode"] = orderItem.PddBuyerOrder?.order_sn;
var data = JsonHelper.SerializeObject(dataObj);
var html = HttpResponseWXBLL.e57PostResponse(url, data, "");
int rejectStatus = 0;
if (html.Contains("<code>0</code>") || html.Contains("<code>200</code>"))
{
rejectStatus = 1;
//BaseMsgWindow.ShowAnimateMessage("申请成功", "Msg", 3);
}
else
{
rejectStatus = 2;
var err = BaseRegex.GetStringXmlByRegs(ref html, "msg");
//BaseMsgWindow.ShowAnimateMessage("申请失败", "Error", 3);
throw new Exception("申请失败" + err);
}
url = BaseClass.Build29WxObjString("order/wx_update_transit_order_reject_status");
data = UserLogin.GetSignaturex();
data += "&order_no=" + orderItem.order_id;
data += "&order_sku_id=" + orderItem.sku_id;
data += "&has_reject=" + rejectStatus;
html = await GetHtml.PostUtf8Async(url, data);
itemTransitOrder.has_reject = rejectStatus;
OrderListCtrl.InitOrderItemObservableProp(orderItem);
return "申请成功";
}
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
{
//if (this.DataContext is oms_wei_order_item_info orderItem)
@@ -68,6 +68,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>
<Border
Margin="0,10"
@@ -284,6 +285,66 @@
</wpf:TitleContent>
</wpf:SpacingStackPanel>
</Border>
<Border Grid.Column="4">
<wpf:SpacingStackPanel
Grid.Column="8"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Vertical"
VerticalSpacing="5">
<Button
x:Name="btnAddEditTransitWarehouseReject_New"
MinWidth="38"
MinHeight="20"
Margin="0,0,0,0"
Padding="2"
HorizontalAlignment="Center"
d:Visibility="Visible"
Click="btnAddEditTransitWarehouseReject_Click"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="{Binding RejectPackageBtnVisibility}">
<!--<TextBlock>
云仓拒收<LineBreak />
退回总店</TextBlock>-->
<TextBlock>云仓拒收退回总店</TextBlock>
</Button>
<Button
x:Name="btnAddEditTransitWarehouseAfterSale_n1"
MinWidth="38"
MinHeight="20"
Margin="0,0,0,0"
Padding="2"
Click="btnAddEditTransitWarehouseAfterSale_Click"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="{Binding ReturnPackageBtnVisibility}">
<TextBlock>拒收失败转寄总店</TextBlock>
</Button>
<Button
x:Name="btnAddEditTransitWarehouseAfterSale_n2"
MinWidth="38"
MinHeight="20"
Margin="0,0,0,0"
Padding="2"
Click="btnAddEditTransitWarehouseAfterSale_Click"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="{Binding ReturnPackageBtnVisibility}">
<TextBlock>出库拦截退回仓库</TextBlock>
</Button>
<Button
x:Name="btnTransitExtraPackages"
Height="20"
MinWidth="38"
Margin="0,0,0,0"
Padding="2"
HorizontalAlignment="Center"
d:Visibility="Visible"
Click="btnTransitExtraPackages_Click"
Content="滞留补发买家"
FontSize="11"
Style="{StaticResource BasePageButtonLightStyle}"
Visibility="{Binding ExtraPackagesBtnVisibility}" />
</wpf:SpacingStackPanel>
</Border>
</Grid>
</Grid>
</Border>
@@ -1,4 +1,6 @@
using System;
using _29WxOrderWpf.BaseWindows;
using AllBase.Model.DBModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -24,4 +26,37 @@ public partial class OrderTransitListDetailCtrl : UserControl
{
InitializeComponent();
}
private async void btnAddEditTransitWarehouseReject_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)
{
try
{
BaseMsgWindow.ShowInfo(await OrderListRowItemCtrl.RejectTransitOrder(orderItem, transitOrder));
}
catch (Exception ex)
{
BaseMsgWindow.ShowError(ex.Message);
}
}
}
}
private void btnAddEditTransitWarehouseAfterSale_Click(object sender, RoutedEventArgs e)
{
}
private void btnTransitExtraPackages_Click(object sender, RoutedEventArgs e)
{
}
}
@@ -293,7 +293,7 @@
MinWidth="48"
Padding="4"
HorizontalAlignment="Left"
Click="btnAdd_Click"
Click="btnAddReturnPackage_Click"
Content="添 加"
IsEnabled="False"
Style="{StaticResource BasePageButtonStyle}" />
@@ -148,17 +148,18 @@ namespace _29WxOrderWpf.Windows.OrderWindows
}
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
private async void btnAddReturnPackage_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(lblWorkOrderMsg.Content.ParseToString()))
{
// 创建拦截退货包裹工单
var workOrder = AddWorkOrder();
if (!workOrder.Contains("\"success\":true"))
{
BaseMsgWindow.ShowError("中转拦截包裹添加失败," + BaseRegex.GetStringJson(ref workOrder, "message"), "", this);
return;
}
// 已改为独立创建工单
//// 创建拦截退货包裹工单
//var workOrder = AddWorkOrder();
//if (!workOrder.Contains("\"success\":true"))
//{
// BaseMsgWindow.ShowError("中转拦截包裹添加失败," + BaseRegex.GetStringJson(ref workOrder, "message"), "", this);
// return;
//}
}
//{"success":true,"replayed":true,"operation":"replayed","ticket":{"id":"1d268a38-7f60-4295-9345-a8f21298181c","ticketNo":"WO-20260820102516-AE62D8F2","issueType":"拦截退回云仓-出库后","status":"pending_approval","queue":"pending"},"creatorBinding":{"bound":true,"clientUserId":"user_1784451034258_a6da3c","username":"18305598906"},"targetOrder":{"appId":"wx5cfcfda1fae03689","wechatOrderNo":"3737793636785868032","purchaseOrderNo":"260716-496899202560980","verified":true},"requestId":"2bbd8e98-0a95-4162-9fc1-b377644209ed"}
@@ -217,9 +218,10 @@ namespace _29WxOrderWpf.Windows.OrderWindows
else
{
//<AjaxResult><msg>创建退货包裹成功</msg><code>0</code></AjaxResult>
MainWindow.Instance.orderListCtrl.GetOrder(OrderItem.order_id);
Task.Run(() => { MainWindow.Instance.orderListCtrl.FilterOrders(); });
BaseMsgWindow.ShowInfo("添加退货包裹成功", "", this);
await MainWindow.Instance.orderListCtrl.GetOrder(OrderItem.order_id);
//MainWindow.Instance.orderListCtrl.FilterOrders();
StartUp.UpdateBalance();
BaseMsgWindow.ShowInfo("添加退货包裹成功", "", this);
this.Close();
}
}
@@ -60,6 +60,10 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
{
var transitDetail = new oms_wei_order_item_transit_detail_info()
{
//RejectPackageBtnVisibility = Visibility.Visible,
//ReturnPackageBtnVisibility = Visibility.Visible,
//ExtraPackagesBtnVisibility = Visibility.Visible,
oms_wei_order_item_info = OrderItem,
oms_wei_external_procurement_log_info = transitOrder,
@@ -381,6 +385,11 @@ public class oms_wei_order_item_transit_info : PropertyNotifyObject
public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
{
public oms_wei_order_item_transit_detail_info()
{
RejectPackageBtnVisibility = ReturnPackageBtnVisibility = ExtraPackagesBtnVisibility = Visibility.Collapsed;
}
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; }
@@ -581,4 +590,20 @@ public class oms_wei_order_item_transit_detail_info : PropertyNotifyObject
get { return this.GetValue(x => x.ShelfTimeStr); }
set { this.SetValue(x => x.ShelfTimeStr, value); }
}
public Visibility RejectPackageBtnVisibility
{
get { return this.GetValue(x => x.RejectPackageBtnVisibility); }
set { this.SetValue(x => x.RejectPackageBtnVisibility, value); }
}
public Visibility ReturnPackageBtnVisibility
{
get { return this.GetValue(x => x.ReturnPackageBtnVisibility); }
set { this.SetValue(x => x.ReturnPackageBtnVisibility, value); }
}
public Visibility ExtraPackagesBtnVisibility
{
get { return this.GetValue(x => x.ExtraPackagesBtnVisibility); }
set { this.SetValue(x => x.ExtraPackagesBtnVisibility, value); }
}
}