|
|
@ -73,6 +73,80 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
public void RepairOrderState(string orderId) |
|
|
|
{ |
|
|
|
List<IUpdate<OrderPurchaseInfo>> updateOrderPurchaseList = new List<IUpdate<OrderPurchaseInfo>>(); |
|
|
|
IUpdate<Order> updateOrder = null; |
|
|
|
|
|
|
|
var order = fsql.Select<Order>(orderId).ToOne(); |
|
|
|
|
|
|
|
#region 查询采购单
|
|
|
|
var purchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(ori => ori.IsEnabled == true && ori.OrderId == orderId).ToList(); |
|
|
|
if (purchaseOrderList.Count() == 0) |
|
|
|
throw new Exception("未查询到任何采购单"); |
|
|
|
var purchaseOrderIds = purchaseOrderList.Select(po => po.PurchaseOrderId).ToList(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询采购SKU
|
|
|
|
IList<OrderPurchaseSkuInfo> orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>() |
|
|
|
.Where(posku => purchaseOrderIds.Contains(posku.PurchaseOrderId)) |
|
|
|
.ToList(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询采购sku关联信息
|
|
|
|
IList<OrderPurchaseRelationInfo> orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>() |
|
|
|
.Where(ops => purchaseOrderIds.Contains(ops.PurchaseOrderId)) |
|
|
|
.ToList(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询采购单关联的快递单
|
|
|
|
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>() |
|
|
|
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) |
|
|
|
.Where((eori, peo) => eori.OrderId == orderId).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
|
|
|
|
|
|
|
|
foreach (var purchaseOrder in purchaseOrderList) |
|
|
|
{ |
|
|
|
var currentPurchaseOrderSkuList = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); |
|
|
|
|
|
|
|
var currentPurchaseExpressOrderList = purchaseExpressOrderList.Where(peo => peo.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); |
|
|
|
|
|
|
|
var oldPurchaseOrderState = purchaseOrder.OrderState; |
|
|
|
purchaseOrder.CalculationOrderState(fsql, currentPurchaseOrderSkuList, currentPurchaseExpressOrderList); |
|
|
|
if (purchaseOrder.OrderState != oldPurchaseOrderState) |
|
|
|
{ |
|
|
|
var update = fsql.Update<OrderPurchaseInfo>(purchaseOrder.Id).Set(opi => opi.OrderState, purchaseOrder.OrderState); |
|
|
|
updateOrderPurchaseList.Add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
var oldOrderState = order.OrderState; |
|
|
|
order.CalculationOrderState(fsql, null, purchaseOrderList); |
|
|
|
if (order.OrderState != oldOrderState) |
|
|
|
updateOrder = fsql.Update<Order>(order.Id).Set(o => o.OrderState, order.OrderState); |
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
foreach (var update in updateOrderPurchaseList) |
|
|
|
update.ExecuteAffrows(); |
|
|
|
updateOrder?.ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
public void SubscribeKD100(string waybillNo, string targetCompanyCode) |
|
|
|
{ |
|
|
|
kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); |
|
|
|