Browse Source

1688发货,手动发货增加快递单关系表逻辑

yijia
shanji 2 years ago
parent
commit
9c4e96b370
  1. 120
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  2. 46
      BBWYB.Server.Model/Db/Order/ExpressOrderRelationInfo.cs

120
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -959,7 +959,7 @@ namespace BBWYB.Server.Business
{
Logo = orderSku.Logo,
Title = orderSku.Title,
SkuId = skuId,
SkuId = skuId,
OrderId = orderSku.OrderId,
SkuAmount = orderPurchaseSkuOfCurrentSchemeList.Sum(psku => psku.ProductAmount),
PurchaseQuantity = orderSku.ItemTotal.Value,
@ -1129,11 +1129,33 @@ namespace BBWYB.Server.Business
IList<IUpdate<OrderPurchaseSkuInfo>> updateOrderPurchaseSkuList = new List<IUpdate<OrderPurchaseSkuInfo>>();
IUpdate<OrderPurchaseInfo> updateOrderPurchase = null;
IUpdate<Order> updateOrder = null;
IInsert<ExpressOrderRelationInfo> insertExpressOrderRelation = null;
#endregion
#region 查询该笔采购单的快递单信息
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
//var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == request.PurchaseOrderId).ToList();
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => eori.PurchaseOrderId == request.PurchaseOrderId).ToList((eori, peo) => new PurchaseExpressOrder
{
CreateTime = peo.CreateTime,
ExpressContent = peo.ExpressContent,
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
TargetExpressId = peo.TargetExpressId,
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
bool isExists = purchaseExpressOrderList.Any(exo => exo.WaybillNo == request.WaybillNo);
if (isExists)
return;
bool isDbExists = fsql.Select<PurchaseExpressOrder>(request.WaybillNo).Any();
#endregion
#region 查询当前采购单的订单信息
@ -1194,7 +1216,7 @@ namespace BBWYB.Server.Business
#region 订阅快递100
bool isSubscribeKD100 = false;
if (request.ExpressId != "zhuanxianwuliu" && !isExists)
if (request.ExpressId != "zhuanxianwuliu" && !isDbExists)
{
#region 订阅快递100
try
@ -1225,13 +1247,13 @@ namespace BBWYB.Server.Business
#endregion
#region 创建快递单
if (!isExists)
if (!isDbExists)
{
var purchaseExpressOrder = new PurchaseExpressOrder()
{
OrderId = dbOrder.Id,
//OrderId = dbOrder.Id,
CreateTime = DateTime.Now,
PurchaseOrderId = request.PurchaseOrderId,
//PurchaseOrderId = request.PurchaseOrderId,
ShopId = dbOrder.ShopId ?? 0,
TargetExpressId = request.ExpressId,
TargetExpressName = request.ExpressName,
@ -1245,6 +1267,22 @@ namespace BBWYB.Server.Business
}
#endregion
#region 创建快递单关系
if (!isExists)
{
var expressOrderRelation = new ExpressOrderRelationInfo()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
OrderId = dbOrder.Id,
PurchaseOrderId = request.PurchaseOrderId,
ShopId = dbOrder.ShopId.Value,
WayBillNo = request.WaybillNo
};
insertExpressOrderRelation = fsql.Insert(expressOrderRelation);
}
#endregion
#region 计算采购单状态
orderPurchaseInfo.CalculationOrderState(fsql, orderPurchaseSkuList, purchaseExpressOrderList.Union(insertPurchaseExpressOrderList).ToList());
updateOrderPurchase = fsql.Update<OrderPurchaseInfo>(orderPurchaseInfo.Id)
@ -1272,6 +1310,7 @@ namespace BBWYB.Server.Business
}
updateOrderPurchase?.ExecuteAffrows();
updateOrder?.ExecuteAffrows();
insertExpressOrderRelation?.ExecuteAffrows();
});
}
@ -1486,6 +1525,7 @@ namespace BBWYB.Server.Business
try
{
List<PurchaseExpressOrder> insertPurchaseExpressOrderList = new List<PurchaseExpressOrder>();
List<ExpressOrderRelationInfo> insertExpressOrderRelationInfoList = new List<ExpressOrderRelationInfo>();
IList<IUpdate<OrderPurchaseSkuInfo>> updateOrderPurchaseSkuList = new List<IUpdate<OrderPurchaseSkuInfo>>();
IUpdate<OrderPurchaseInfo> updateOrderPurchase = null;
IUpdate<Order> updateOrder = null;
@ -1526,7 +1566,25 @@ namespace BBWYB.Server.Business
#region 查询该笔采购单的快递单信息
currentProgress = "查询该笔采购单的快递单信息";
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == purchaseOrderId).ToList();
//var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(x => x.PurchaseOrderId == purchaseOrderId).ToList();
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => eori.PurchaseOrderId == purchaseOrderId).ToList((eori, peo) => new PurchaseExpressOrder
{
CreateTime = peo.CreateTime,
ExpressContent = peo.ExpressContent,
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
TargetExpressId = peo.TargetExpressId,
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
#endregion
#region 查询采购账号
@ -1549,6 +1607,9 @@ namespace BBWYB.Server.Business
};
var logisticsList = client.QueryOrderLogistics(ppQueryOrderLogisticsRequest);
wayBillNoResponseInfo = JsonConvert.SerializeObject(new { purchaseOrderId, logisticsList });
var wayBillNos = logisticsList.Where(w => !string.IsNullOrEmpty(w.WayBillNo)).Select(w => w.WayBillNo).ToList();
var dbWayBillNos = fsql.Select<PurchaseExpressOrder>(wayBillNos).ToList(w => w.WaybillNo);
#endregion
#region 找出新发货的快递单
@ -1594,21 +1655,24 @@ namespace BBWYB.Server.Business
#endregion
#region 创建快递单
var purchaseExpressOrder = new PurchaseExpressOrder()
if (!dbWayBillNos.Contains(logisticsInfo.WayBillNo))
{
OrderId = orderId,
CreateTime = DateTime.Now,
PurchaseOrderId = purchaseOrderId,
ShopId = shopId ?? 0,
SourceExpressId = logisticsInfo.ExpressId,
SourceExpressName = logisticsInfo.ExpressName,
WaybillNo = logisticsInfo.WayBillNo,
TargetExpressId = kuaidi100Company?.TargetCode,
TargetExpressName = kuaidi100Company?.TargetName,
ExpressState = kuaiDi100Manager.GetExpressState(1), //快递100发货状态值 默认揽收
IsSubscribeKD100 = isSubscribeKD100
};
insertPurchaseExpressOrderList.Add(purchaseExpressOrder);
var purchaseExpressOrder = new PurchaseExpressOrder()
{
//OrderId = orderId,
CreateTime = DateTime.Now,
//PurchaseOrderId = purchaseOrderId,
ShopId = shopId ?? 0,
SourceExpressId = logisticsInfo.ExpressId,
SourceExpressName = logisticsInfo.ExpressName,
WaybillNo = logisticsInfo.WayBillNo,
TargetExpressId = kuaidi100Company?.TargetCode,
TargetExpressName = kuaidi100Company?.TargetName,
ExpressState = kuaiDi100Manager.GetExpressState(1), //快递100发货状态值 默认揽收
IsSubscribeKD100 = isSubscribeKD100
};
insertPurchaseExpressOrderList.Add(purchaseExpressOrder);
}
#endregion
#region 更新采购sku的快递单号
@ -1621,6 +1685,18 @@ namespace BBWYB.Server.Business
updateOrderPurchaseSkuList.Add(fsql.Update<OrderPurchaseSkuInfo>(orderEntryId).Set(ps => ps.WaybillNo, logisticsInfo.WayBillNo));
}
#endregion
#region 创建快递关系
insertExpressOrderRelationInfoList.Add(new ExpressOrderRelationInfo()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
OrderId = dbOrder.Id,
PurchaseOrderId = purchaseOrderId,
ShopId = dbOrder.ShopId,
WayBillNo = logisticsInfo.WayBillNo
});
#endregion
}
#endregion
@ -1642,6 +1718,8 @@ namespace BBWYB.Server.Business
fsql.Transaction(() =>
{
if (insertExpressOrderRelationInfoList.Count() > 0)
fsql.Insert(insertExpressOrderRelationInfoList).ExecuteAffrows();
if (insertPurchaseExpressOrderList.Count() > 0)
fsql.Insert(insertPurchaseExpressOrderList).ExecuteAffrows();
if (updateOrderPurchaseSkuList.Count() > 0)

46
BBWYB.Server.Model/Db/Order/ExpressOrderRelationInfo.cs

@ -0,0 +1,46 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 快递单关系表
/// </summary>
[Table(Name = "expressorderrelationinfo", DisableSyncStructure = true)]
public partial class ExpressOrderRelationInfo
{
[Column(IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 订单Id
/// </summary>
[Column(StringLength = 50)]
public string OrderId { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
[Column(StringLength = 50)]
public string PurchaseOrderId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public long? ShopId { get; set; }
/// <summary>
/// 快递单号
/// </summary>
[Column(StringLength = 50)]
public string WayBillNo { get; set; }
}
}
Loading…
Cancel
Save