|
|
@ -54,8 +54,8 @@ namespace BBWYB.Server.Business |
|
|
|
select = select.Where((o, ocs, oct) => childSelect.Where(opi => opi.OrderId == o.Id).Any()); |
|
|
|
} |
|
|
|
select = select.WhereIf(request.OrderState == Enums.OrderState.待付款 || |
|
|
|
request.OrderState == Enums.OrderState.打包中 || |
|
|
|
request.OrderState == Enums.OrderState.待完结 || |
|
|
|
request.OrderState == Enums.OrderState.待验收 || |
|
|
|
request.OrderState == Enums.OrderState.待核算 || |
|
|
|
request.OrderState == Enums.OrderState.已完成 || |
|
|
|
request.OrderState == Enums.OrderState.已取消, |
|
|
|
(o, ocs, oct) => o.OrderState == request.OrderState) |
|
|
@ -111,6 +111,7 @@ namespace BBWYB.Server.Business |
|
|
|
BuyerAccount = o.BuyerAccount, |
|
|
|
InPackAmount = o.InPackAmount, |
|
|
|
IsWaitPack = o.IsWaitPack, |
|
|
|
IntoStoreType = o.IntoStoreType, |
|
|
|
|
|
|
|
ContactName = ocs.ContactName, |
|
|
|
Address = ocs.Address, |
|
|
@ -128,6 +129,8 @@ namespace BBWYB.Server.Business |
|
|
|
PurchaseAmount = oct.PurchaseAmount, |
|
|
|
IsManualEdited = oct.IsManualEdited, |
|
|
|
PackConfigState = o.PackConfigState, |
|
|
|
SkuAmount = oct.SkuAmount, |
|
|
|
PurchaseFreight = oct.PurchaseFreight |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
@ -151,7 +154,24 @@ namespace BBWYB.Server.Business |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 查询快递单信息
|
|
|
|
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(peo => orderIdList.Contains(peo.OrderId)).ToList<PurchaseExpressOrderResponse>(); |
|
|
|
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>() |
|
|
|
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) |
|
|
|
.Where((eori, peo) => orderIdList.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrderResponse |
|
|
|
{ |
|
|
|
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 处理订单成本明细
|
|
|
@ -186,40 +206,51 @@ namespace BBWYB.Server.Business |
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); |
|
|
|
if (purchaseOrder == null) |
|
|
|
continue; |
|
|
|
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList); |
|
|
|
var currentOrderSkuList = orderSkuList.Where(osku => !string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds) && |
|
|
|
osku.OrderId == purchaseExpressOrder.OrderId && |
|
|
|
purchaseExpressOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); |
|
|
|
foreach (var osku in currentOrderSkuList) |
|
|
|
{ |
|
|
|
var purchaseSkuIds = orderPurchaseSkuInfoList.Where(posku => posku.WaybillNo == purchaseExpressOrder.WaybillNo && |
|
|
|
posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId) |
|
|
|
.Select(posku => posku.PurchaseSkuId).ToList(); |
|
|
|
var orderSkuIds = orderPurchaseRelationInfoList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId && |
|
|
|
purchaseSkuIds.Contains(ori.PurchaseSkuId)) |
|
|
|
.Select(ori => ori.BelongSkuId) |
|
|
|
.Distinct() |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && |
|
|
|
orderSkuIds.Contains(osku.SkuId)).ToList(); |
|
|
|
foreach (var osku in currentOrderSkuList) |
|
|
|
{ |
|
|
|
if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
continue; |
|
|
|
osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && |
|
|
|
purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); |
|
|
|
foreach (var osku in currentOrderSkuList) |
|
|
|
{ |
|
|
|
if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
continue; |
|
|
|
osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
continue; |
|
|
|
osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
|
|
|
|
//var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId);
|
|
|
|
//if (purchaseOrder == null)
|
|
|
|
// continue;
|
|
|
|
//if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
|
|
|
|
//{
|
|
|
|
// var purchaseSkuIds = orderPurchaseSkuInfoList.Where(posku => posku.WaybillNo == purchaseExpressOrder.WaybillNo &&
|
|
|
|
// posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId)
|
|
|
|
// .Select(posku => posku.PurchaseSkuId).ToList();
|
|
|
|
// var orderSkuIds = orderPurchaseRelationInfoList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId &&
|
|
|
|
// purchaseSkuIds.Contains(ori.PurchaseSkuId))
|
|
|
|
// .Select(ori => ori.BelongSkuId)
|
|
|
|
// .Distinct()
|
|
|
|
// .ToList();
|
|
|
|
|
|
|
|
// var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId &&
|
|
|
|
// orderSkuIds.Contains(osku.SkuId)).ToList();
|
|
|
|
// foreach (var osku in currentOrderSkuList)
|
|
|
|
// {
|
|
|
|
// if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo))
|
|
|
|
// continue;
|
|
|
|
// osku.PurchaseExpressOrderList.Add(purchaseExpressOrder);
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
//else
|
|
|
|
//{
|
|
|
|
// var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId &&
|
|
|
|
// purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList();
|
|
|
|
// foreach (var osku in currentOrderSkuList)
|
|
|
|
// {
|
|
|
|
// if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo))
|
|
|
|
// continue;
|
|
|
|
// osku.PurchaseExpressOrderList.Add(purchaseExpressOrder);
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
@ -230,81 +261,114 @@ namespace BBWYB.Server.Business |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
//public void OutStock(OutStockRequest request)
|
|
|
|
//{
|
|
|
|
// var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
|
|
|
|
// if (dbOrder == null)
|
|
|
|
// throw new BusinessException($"订单{request.OrderId}不存在");
|
|
|
|
|
|
|
|
// var dbOrderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
|
|
|
|
// var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
|
|
|
|
|
|
|
|
// dbOrderPurchaseInfo.WaybillNo = request.WayBillNo;
|
|
|
|
// dbOrderPurchaseInfo.SourceExpressId = request.SourceExpressId;
|
|
|
|
// dbOrderPurchaseInfo.SourceExpressName = request.SourceExpressName;
|
|
|
|
// dbOrderPurchaseInfo.TargetExpressId = request.TargetExpressId;
|
|
|
|
// dbOrderPurchaseInfo.TargetExpressName = request.TargetExpressName;
|
|
|
|
// dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.待收货;
|
|
|
|
|
|
|
|
// #region 订单状态
|
|
|
|
// dbOrder.CalculationOrderState(fsql, null, dbOrderPurchaseInfoList);
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// if (!string.IsNullOrEmpty(request.TargetExpressId))
|
|
|
|
// {
|
|
|
|
// #region 订阅快递100
|
|
|
|
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// //try
|
|
|
|
// //{
|
|
|
|
// // opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform)
|
|
|
|
// // .OutStock(new OP_OutStockRequest()
|
|
|
|
// // {
|
|
|
|
// // AppKey = request.AppKey,
|
|
|
|
// // AppSecret = request.AppSecret,
|
|
|
|
// // AppToken = request.AppToken,
|
|
|
|
// // ExpressId = request.TargetExpressId,
|
|
|
|
// // ExpressName = request.TargetExpressName,
|
|
|
|
// // OrderId = request.OrderId,
|
|
|
|
// // Platform = (AdapterEnums.PlatformType)request.Platform,
|
|
|
|
// // WayBillNo = request.WayBillNo
|
|
|
|
// // });
|
|
|
|
// //}
|
|
|
|
// //catch (Exception ex)
|
|
|
|
// //{
|
|
|
|
// // nLogManager.Default().Error(ex, $"OutStock Request {JsonConvert.SerializeObject(request)}");
|
|
|
|
// //}
|
|
|
|
// }
|
|
|
|
|
|
|
|
// #region 通知C端出库
|
|
|
|
// //通知C端
|
|
|
|
// try
|
|
|
|
// {
|
|
|
|
// restApiService.SendRequest("https://bbwy.qiyue666.com",
|
|
|
|
// "/Api/PurchaseOrder/QuanTanSendGoodsCallback",
|
|
|
|
// new
|
|
|
|
// {
|
|
|
|
// OrderId = request.OrderId,
|
|
|
|
// ExpressId = request.SourceExpressId,
|
|
|
|
// ExpressName = request.SourceExpressName,
|
|
|
|
// request.WayBillNo
|
|
|
|
// },
|
|
|
|
// null,
|
|
|
|
// HttpMethod.Post);
|
|
|
|
// }
|
|
|
|
// catch (Exception ex)
|
|
|
|
// {
|
|
|
|
|
|
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// fsql.Transaction(() =>
|
|
|
|
// {
|
|
|
|
// fsql.Update<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
|
|
|
|
// fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
|
|
|
|
// });
|
|
|
|
//}
|
|
|
|
public IList<PurchaseExpressOrderResponse> GetPurchaseExpressOrderList(QueryExpressOrderRequest request) |
|
|
|
{ |
|
|
|
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>() |
|
|
|
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) |
|
|
|
.Where((eori, peo) => eori.OrderId == request.OrderId).ToList((eori, peo) => new PurchaseExpressOrderResponse |
|
|
|
{ |
|
|
|
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 |
|
|
|
}); |
|
|
|
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>(); |
|
|
|
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.OrderId == request.OrderId && opri.SourceSkuId == request.SourceSkuId).ToList(); |
|
|
|
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => posku.OrderId == request.OrderId).ToList<OrderPurchaseSkuInfoResponse>(); |
|
|
|
var orderSku = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId && osku.BelongSkuId == request.SourceSkuId).ToOne(); |
|
|
|
|
|
|
|
IList<PurchaseExpressOrderResponse> list = new List<PurchaseExpressOrderResponse>(); |
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); |
|
|
|
if (!string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds)) |
|
|
|
{ |
|
|
|
if (purchaseExpressOrder.BelongSkuIds.Contains(orderSku.SkuId)) |
|
|
|
{ |
|
|
|
if (!list.Any(x => x.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
list.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//foreach (var purchaseOrder in orderPurchaseInfoList)
|
|
|
|
//{
|
|
|
|
// if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
|
|
|
|
// {
|
|
|
|
// var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
|
|
|
|
|
|
|
|
// var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId &&
|
|
|
|
// currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId))
|
|
|
|
// .Select(x => x.WaybillNo)
|
|
|
|
// .ToList();
|
|
|
|
// foreach (var waybillNo in waybillNos)
|
|
|
|
// {
|
|
|
|
// var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo);
|
|
|
|
// if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
|
|
|
|
// list.Add(peo);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList();
|
|
|
|
// if (currentSkuList.Contains(request.SourceSkuId))
|
|
|
|
// {
|
|
|
|
// var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
|
|
|
|
// foreach (var peo in peoList)
|
|
|
|
// {
|
|
|
|
// if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
|
|
|
|
// list.Add(peo);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
public IList<PurchaseExpressOrderResponse> GetPurchaseExpressOrderList(IList<string> orderIds) |
|
|
|
{ |
|
|
|
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>() |
|
|
|
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) |
|
|
|
.Where((eori, peo) => orderIds.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrderResponse |
|
|
|
{ |
|
|
|
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 |
|
|
|
}); |
|
|
|
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => orderIds.Contains(op.OrderId) && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>(); |
|
|
|
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => orderIds.Contains(opri.OrderId)).ToList(); |
|
|
|
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => orderIds.Contains(posku.OrderId)).ToList<OrderPurchaseSkuInfoResponse>(); |
|
|
|
|
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
return purchaseExpressOrderList; |
|
|
|
} |
|
|
|
|
|
|
|
public void CancelOrder(CancelOrderRequest request, string mdsToken) |
|
|
|
{ |
|
|
@ -320,13 +384,26 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, Enums.OrderState.已取消).ExecuteAffrows(); |
|
|
|
|
|
|
|
var sql = $"update purchaseorderv2 set OrderState=6 where Id='{request.OrderId}'"; |
|
|
|
//取消C端采购单
|
|
|
|
restApiService.SendRequest("https://bbwy.qiyue666.com", |
|
|
|
"/Api/Sql/ExecuteNonQuery", |
|
|
|
new { sql = sql.AESEncrypt() }, |
|
|
|
new Dictionary<string, string>() { { "Authorization", $"{mdsToken}" } }, |
|
|
|
HttpMethod.Post); |
|
|
|
try |
|
|
|
{ |
|
|
|
restApiService.SendRequest("https://bbwy.qiyue666.com", "api/BatchPurchase/UpdatePurchaseOrderState", new |
|
|
|
{ |
|
|
|
OrderId = request.OrderId, |
|
|
|
PurchaseOrderState = Enums.OrderState.已取消 |
|
|
|
}, null, HttpMethod.Post); |
|
|
|
} |
|
|
|
catch |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//var sql = $"update purchaseorderv2 set OrderState=6 where Id='{request.OrderId}'";
|
|
|
|
////取消C端采购单
|
|
|
|
//restApiService.SendRequest("https://bbwy.qiyue666.com",
|
|
|
|
// "/Api/Sql/ExecuteNonQuery",
|
|
|
|
// new { sql = sql.AESEncrypt() },
|
|
|
|
// new Dictionary<string, string>() { { "Authorization", $"Bearer {mdsToken}" } },
|
|
|
|
// HttpMethod.Post);
|
|
|
|
|
|
|
|
try |
|
|
|
{ |
|
|
@ -433,5 +510,70 @@ namespace BBWYB.Server.Business |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void CheckSku(CheckSkuRequest request) |
|
|
|
{ |
|
|
|
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne(); |
|
|
|
if (dbOrder == null) |
|
|
|
throw new BusinessException($"订单{request.OrderId}不存在"); |
|
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
|
|
var orderSku = orderSkuList.FirstOrDefault(osku => osku.BelongSkuId == request.SourceSkuId); |
|
|
|
if (orderSku == null) |
|
|
|
throw new BusinessException($"订单{request.OrderId}的归属sku中不存在{request.SourceSkuId}"); |
|
|
|
|
|
|
|
if (orderSku.IsCheck == true) |
|
|
|
throw new BusinessException("已验收,无需重复验收"); |
|
|
|
|
|
|
|
|
|
|
|
IUpdate<Order> updateOrder = null; |
|
|
|
IUpdate<OrderSku> updateOrderSku = null; |
|
|
|
|
|
|
|
orderSku.IsCheck = true; |
|
|
|
updateOrderSku = fsql.Update<OrderSku>(orderSku.Id).Set(osku => osku.IsCheck, true); |
|
|
|
|
|
|
|
var oldOrderState = dbOrder.OrderState; |
|
|
|
dbOrder.CalculationOrderState(fsql, orderSkuList, null); |
|
|
|
if (oldOrderState != dbOrder.OrderState) |
|
|
|
updateOrder = fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState); |
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
updateOrderSku?.ExecuteAffrows(); |
|
|
|
updateOrder?.ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
public void CheckComputationOrder(string orderId) |
|
|
|
{ |
|
|
|
var order = fsql.Select<Order>(orderId).ToOne(); |
|
|
|
if (order == null) |
|
|
|
throw new BusinessException("未查询到订单"); |
|
|
|
if (order.OrderState != Enums.OrderState.待核算) |
|
|
|
throw new BusinessException("订单状态不正确,只有待核算的订单才允许核算"); |
|
|
|
var orderCost = fsql.Select<OrderCost>(orderId).ToOne(); |
|
|
|
if (orderCost == null) |
|
|
|
throw new BusinessException("未查询到订单成本"); |
|
|
|
if (Math.Abs(orderCost.Profit ?? 0) > 1M) |
|
|
|
throw new BusinessException("订单利润绝对值不能大于1"); |
|
|
|
|
|
|
|
fsql.Update<Order>(orderId).Set(o => o.OrderState, Enums.OrderState.已完成).ExecuteAffrows(); |
|
|
|
SendPurchaseOrderStateToC(orderId, Enums.OrderState.已完成); |
|
|
|
} |
|
|
|
|
|
|
|
private void SendPurchaseOrderStateToC(string orderId, Enums.OrderState orderState) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
restApiService.SendRequest("https://bbwy.qiyue666.com", "api/BatchPurchase/UpdatePurchaseOrderState", new |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
PurchaseOrderState = orderState |
|
|
|
}, null, HttpMethod.Post); |
|
|
|
} |
|
|
|
catch |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|