Browse Source

采购/关联 处理部分采购/待发货

1688发货通知/手动发货 处理部分发货/待收货
1688物流变更/手动收货 处理部分收货/打包中
yijia
shanji 2 years ago
parent
commit
77fc14142a
  1. 4
      BBWYB.Server.Business/Extensions/OrderStateExtension.cs
  2. 29
      BBWYB.Server.Business/Order/OrderBusiness.cs
  3. 53
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  4. 2
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

4
BBWYB.Server.Business/Extensions/OrderStateExtension.cs

@ -25,9 +25,9 @@ namespace BBWYB.Server.Business
order.OrderState == Enums.OrderState.)
return;
if (orderSkuList == null)
if (orderSkuList == null || orderSkuList.Count() == 0)
orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == order.Id).ToList();
if (orderPurchaseInfoList == null)
if (orderPurchaseInfoList == null || orderPurchaseInfoList.Count() == 0)
orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == order.Id && opi.IsEnabled == true).ToList();
#region 等待采购

29
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -179,8 +179,20 @@ namespace BBWYB.Server.Business
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException($"订单{request.OrderId}不存在");
//if (dbOrder.OrderState != Enums.OrderState.待出库)
// 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))
{
@ -233,17 +245,8 @@ namespace BBWYB.Server.Business
fsql.Transaction(() =>
{
fsql.Update<OrderPurchaseInfo>().Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true)
.Set(opi => opi.WaybillNo, request.WayBillNo)
.Set(opi => opi.SourceExpressId, request.SourceExpressId)
.Set(opi => opi.SourceExpressName, request.SourceExpressName)
.Set(opi => opi.TargetExpressId, request.TargetExpressId)
.Set(opi => opi.TargetExpressName, request.TargetExpressName)
.Set(opi => opi.OrderState, Enums.PurchaseOrderState.)
.ExecuteAffrows();
if (dbOrder.OrderState == Enums.OrderState.)
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, Enums.OrderState.).ExecuteAffrows();
fsql.Update<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
});
}

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

@ -28,7 +28,7 @@ namespace BBWYB.Server.Business
private PurchaseSchemeBusiness purchaseSchemeBusiness;
private ExpressCompanyNameConverter expressCompanyNameConverter;
private RestApiService restApiService;
private IList<Enums.OrderState> cantPurchaseOrderStateList;
public PurchaseOrderBusiness(IFreeSql fsql,
NLogManager nLogManager,
IIdGenerator idGenerator,
@ -49,6 +49,13 @@ namespace BBWYB.Server.Business
this.expressCompanyNameConverter = expressCompanyNameConverter;
this.restApiService = restApiService;
this.purchaseSchemeBusiness = purchaseSchemeBusiness;
cantPurchaseOrderStateList = new List<Enums.OrderState>()
{
Enums.OrderState.,
Enums.OrderState.,
Enums.OrderState.,
Enums.OrderState.
};
}
/// <summary>
@ -179,8 +186,8 @@ namespace BBWYB.Server.Business
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException("订单不存在");
if (dbOrder.OrderState != Enums.OrderState. && dbOrder.OrderState != Enums.OrderState.)
throw new BusinessException("只能为等待采购或待出库的订单进行采购");
if (cantPurchaseOrderStateList.Contains(dbOrder.OrderState.Value))
throw new BusinessException($"当前订单状态:{dbOrder.OrderState},不允许采购");
if (request.Consignee == null ||
string.IsNullOrEmpty(request.Consignee.Address) ||
@ -194,7 +201,7 @@ namespace BBWYB.Server.Business
var isRepurchase = fsql.Select<OrderCost>(dbOrder.Id).Any();
var orderSkus = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && osku.OrderId == request.OrderId).ToList();
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
var extJArray = JsonConvert.DeserializeObject<JArray>(request.Extensions);
@ -396,6 +403,10 @@ namespace BBWYB.Server.Business
}
#endregion
#region 订单状态
dbOrder.CalculationOrderState(fsql, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList());
#endregion
fsql.Transaction(() =>
{
if (updatePurchaseOrderIdList.Count() > 0)
@ -411,8 +422,7 @@ namespace BBWYB.Server.Business
insertOrderCost?.ExecuteAffrows();
if (updatePurchaseTimeSchemeIdList.Count() > 0)
fsql.Update<PurchaseScheme>(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
fsql.Update<Order>(request.OrderId).SetIf(dbOrder.OrderState == Enums.OrderState. ||
dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Model.Enums.OrderState.)
fsql.Update<Order>(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true)
.Set(o => o.PackConfigState, Enums.PackConfigState.)
@ -480,12 +490,21 @@ namespace BBWYB.Server.Business
/// <param name="request"></param>
public void AssociatePurchaseOrder(AssociationOrderRequest request)
{
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException("订单不存在");
if (cantPurchaseOrderStateList.Contains(dbOrder.OrderState.Value))
throw new BusinessException($"当前订单状态:{dbOrder.OrderState},不允许关联");
if (request.AssociationPurchaseOrderList == null || request.AssociationPurchaseOrderList.Count() == 0)
throw new BusinessException("缺少采购单信息");
var dbPurchaseOrderList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId).ToList();
var dbInvalidPurchaseOrderIdList = dbPurchaseOrderList.Where(opi => !opi.IsEnabled).Select(opi => opi.PurchaseOrderId).ToList();
var dbvalidPurchaseOrderList = dbPurchaseOrderList.Where(opi => opi.IsEnabled).ToList();
if (request.AssociationPurchaseOrderList.Any(x => dbInvalidPurchaseOrderIdList.Contains(x.PurchaseOrderId)))
throw new BusinessException("关联采购单时不能包含历史采购单");
@ -518,7 +537,7 @@ namespace BBWYB.Server.Business
var dbOrderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList();
var dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == request.OrderId && ocd.IsEnabled == true).ToList();
var dbOrderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
List<OrderPurchaseInfo> insertOrderPurchaseInfoList = new List<OrderPurchaseInfo>();
@ -738,6 +757,10 @@ namespace BBWYB.Server.Business
else
updateOrderCost = fsql.Update<OrderCost>().SetSource(dbOrderCost);
#region 订单状态
dbOrder.CalculationOrderState(fsql, dbOrderSkuList, dbvalidPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList());
#endregion
fsql.Transaction(() =>
{
if (insertOrderPurchaseInfoList.Count() > 0)
@ -762,8 +785,7 @@ namespace BBWYB.Server.Business
insertOrderCost?.ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
fsql.Update<Order>(dbOrder.Id).SetIf(dbOrder.OrderState == Enums.OrderState. ||
dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Enums.OrderState.)
fsql.Update<Order>(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState)
.Set(o => o.IsPurchased, true)
.ExecuteAffrows();
});
@ -822,7 +844,9 @@ namespace BBWYB.Server.Business
if (dbOrder.OrderState == Enums.OrderState.)
throw new BusinessException("订单已完成无需签收");
var dbOrderPurchaseInfo = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId && opi.IsEnabled == true).ToOne();
var dbOrderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(opi => opi.OrderId == request.OrderId && opi.IsEnabled == true).ToList();
var dbOrderPurchaseInfo = dbOrderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
if (dbOrderPurchaseInfo == null)
throw new BusinessException("无效采购单号");
if (!dbOrderPurchaseInfo.IsEnabled)
@ -834,11 +858,14 @@ namespace BBWYB.Server.Business
dbOrderPurchaseInfo.IsSign = true;
dbOrderPurchaseInfo.OrderState = Enums.PurchaseOrderState.;
dbOrder.CalculationOrderState(fsql, null, dbOrderPurchaseInfoList);
fsql.Transaction(() =>
{
fsql.Update<OrderPurchaseInfo>().SetSource(dbOrderPurchaseInfo).ExecuteAffrows();
fsql.Update<Order>(dbOrder.Id).Set(o => o.IsWaitPack, true).ExecuteAffrows();
Enums.OrderState.;
fsql.Update<Order>(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState)
.Set(o => o.IsWaitPack, true).ExecuteAffrows();
});
}
@ -904,7 +931,7 @@ namespace BBWYB.Server.Business
{
#region 查询代发信息
currentProgress = "查询代发信息";
var orderPurchaseInfo = fsql.Select<OrderPurchaseInfo>().Where(o => o.PurchaseOrderId == purchaseOrderId && orderPurchaseInfo.IsEnabled == true).ToOne();
var orderPurchaseInfo = fsql.Select<OrderPurchaseInfo>().Where(o => o.PurchaseOrderId == purchaseOrderId && o.IsEnabled == true).ToOne();
if (orderPurchaseInfo == null)
throw new Exception("未查询到代发信息");
orderId = orderPurchaseInfo.OrderId;

2
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -255,7 +255,7 @@ namespace BBWYB.Server.Business.Sync
{
if (!isPurchased)
return Enums.OrderState.;
return Enums.OrderState.;
return Enums.OrderState.;
}
if (qtOrderState == "1")

Loading…
Cancel
Save