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