From d632285bba3c6602744e4bf6f04e84df1c42b185 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Tue, 12 Mar 2024 02:24:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=87=87=E8=B4=AD=EF=BC=8C?= =?UTF-8?q?=E6=94=B9=E4=BB=B7=E4=BF=9D=E5=AD=98=E9=87=87=E8=B4=AD=E5=8D=95?= =?UTF-8?q?=E9=87=91=E9=A2=9D/=E4=BB=B6=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseOrder/PurchaseOrderBusiness.cs | 107 +++++------------- .../Db/Order/OrderPurchaseInfo.cs | 3 + .../Db/Order/OrderPurchaseSkuInfo.cs | 17 +++ .../PurchaseSchemeProductSkuStatistic.cs | 45 ++++++++ 4 files changed, 96 insertions(+), 76 deletions(-) create mode 100644 BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeProductSkuStatistic.cs diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index a896ded..1c36622 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -457,7 +457,8 @@ namespace BBWYB.Server.Business ShopId = request.ShopId, BelongSkuIds = string.Join(",", belongSkuIdList), IsEnabled = true, - Remark = !string.IsNullOrEmpty(cargoParamGroup.Remark) ? cargoParamGroup.Remark : request.Remark + Remark = !string.IsNullOrEmpty(cargoParamGroup.Remark) ? cargoParamGroup.Remark : request.Remark, + UpadteTime = DateTime.Now }; insertOrderPurchaseInfos.Add(orderPurchaserInfo); #endregion @@ -473,7 +474,10 @@ namespace BBWYB.Server.Business PurchaseOrderId = purchaseOrderSimpleInfo.OrderId, PurchaseProductId = purchaseOrderSku.ProductId, PurchaseSkuId = purchaseOrderSku.SkuId, - ShopId = request.ShopId + ShopId = request.ShopId, + PurchasedPrice = purchaseOrderSku.Price, + PurchasedAmount = purchaseOrderSku.ProductAmount, + PurchasedItemCount = purchaseOrderSku.Quantity }; insertOrderPurchaseSkuInfos.Add(orderPurchaseSkuInfo); } @@ -1112,7 +1116,8 @@ namespace BBWYB.Server.Business PurchasePlatform = purchaseOrder.PurchasePlatform, PurchaserId = purchaseOrder.PurchaserId, PurchaserName = purchaseOrder.PurchaserName, - ShopId = request.ShopId + ShopId = request.ShopId, + UpadteTime = DateTime.Now }; insertOrderPurchaseInfoList.Add(dbPurchaserOrder); #endregion @@ -2995,7 +3000,8 @@ namespace BBWYB.Server.Business IList op_EditPriceSkuRequests = new List(); - IUpdate updatePurchaseOrder = null; + IUpdate updatePurchaseOrder = fsql.Update(orderPurchaseInfo.Id).Set(opi => opi.UpdateTime, DateTime.Now); + List> updatePurchaserOrderSkuList = new List>(); IDictionary oskuPriceEditParamDictionary = new Dictionary(); @@ -3007,7 +3013,6 @@ namespace BBWYB.Server.Business { if (opi.PurchasePlatform != Enums.Platform.阿里巴巴) continue; - var purchaseOrderSimpleInfo = ppclient.QueryOrderDetail(new PP_QueryOrderDetailRequest() { AppKey = purchaseAccount.AppKey, @@ -3016,6 +3021,21 @@ namespace BBWYB.Server.Business OrderId = opi.PurchaseOrderId }); + #region 更新配件下单信息 + if (opi.PurchaseOrderId == purchaseOrderId) + { + foreach (var item in purchaseOrderSimpleInfo.ItemList) + { + var update = fsql.Update().Set(opsi => opsi.PurchasedPrice, item.Price) + .Set(opsi => opsi.PurchasedAmount, item.ProductAmount) + .Set(opsi => opsi.PurchasedItemCount, item.Quantity) + .Where(opsi => opsi.PurchaseOrderId == purchaseOrderId && + opsi.PurchaseSkuId == item.SkuId); + updatePurchaserOrderSkuList.Add(update); + } + } + #endregion + totalPurchaseProductAmount += purchaseOrderSimpleInfo.ProductAmount; totalPurchaseFreight += purchaseOrderSimpleInfo.FreightAmount; var currentPurchaseOrderRelationInfos = dbOrderPurchaseRelationInfos.Where(x => x.PurchaseOrderId == opi.PurchaseOrderId).ToList(); @@ -3065,71 +3085,6 @@ namespace BBWYB.Server.Business } #endregion - - //var purchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Sum(x => x.Quantity); - //var belongSkuGroups = currentPurchaseOrderRelationInfos.GroupBy(p => p.BelongSkuId); - //foreach (var belongSkuGroup in belongSkuGroups) - //{ - // var belongSkuId = belongSkuGroup.Key; - - // var currentOrderSkuCargoParamList = belongSkuGroup.ToList(); //找当前skuId的采购skuId - // var currentOrderSkuProductAmount = 0M; //采购成本 - // var currentSkuTotalPurchaseQuantity = currentOrderSkuCargoParamList.Sum(x => x.Quantity); //当前skuId的采购数量总和 - // var currentPurchaseFreight = purchaseOrderSimpleInfo.FreightAmount * - // (1.0M * currentSkuTotalPurchaseQuantity / purchaseSkuTotalQuantity); //采购运费 - - // foreach (var currentOrderSkuCargo in currentOrderSkuCargoParamList) - // { - // var currentPurchaseSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.PurchaseSkuId) - // .Sum(p => p.ProductAmount); - // var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.PurchaseSkuId) - // .Sum(p => p.Quantity); - // currentOrderSkuProductAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity.Value / currentPurchaseSkuTotalQuantity); - // } - - // #region 订单sku平价 - // var orderSku = dbOrderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId); - // if (isEditOrderPrice) - // { - // if (!oskuPriceEditParamDictionary.TryGetValue(orderSku.SkuId, out OP_EditPriceSkuRequest editSkuPrice)) - // { - // editSkuPrice = new OP_EditPriceSkuRequest() - // { - // SkuId = orderSku.SkuId, - // OrderSkuId = orderSku.Id.ToString(), - // InPackAmountPrice = orderSku.InPackAmount ?? 0M - // }; - // oskuPriceEditParamDictionary.Add(orderSku.SkuId, editSkuPrice); - // } - // editSkuPrice.Price += currentOrderSkuProductAmount / (orderSku.ItemTotal ?? 1M); - // editSkuPrice.Freight += currentPurchaseFreight ?? 0M; - - // //orderSku.Price = - // //orderSku.BuyerPayFreight = currentPurchaseFreight; - // //if (!op_EditPriceSkuRequests.Any(x => x.SkuId == orderSku.SkuId)) - // //{ - // // op_EditPriceSkuRequests.Add(new OP_EditPriceSkuRequest() - // // { - // // Freight = currentPurchaseFreight ?? 0M, - // // InPackAmountPrice = orderSku.InPackAmount ?? 0M, - // // OrderSkuId = orderSku.Id.ToString(), - // // Price = orderSku.Price ?? 0M, - // // SkuId = orderSku.SkuId - // // }); - // // updateOrderSkuList.Add(fsql.Update(orderSku.Id).Set(osku => osku.Price, orderSku.Price) - // // .Set(osku => osku.BuyerPayFreight, orderSku.BuyerPayFreight)); - // //} - - // } - // #endregion - - // var dbOrderSkuDetail = dbOrderCostDetails.FirstOrDefault(ocd => ocd.SkuId == belongSkuId && ocd.PurchaseOrderId == opi.PurchaseOrderId); - // dbOrderSkuDetail.CalculationOrderCostDetailCostAndProfit(currentOrderSkuProductAmount, - // currentPurchaseFreight ?? 0M, - // dbOrderSkuDetail.OutPackAmount ?? 0M, - // dbOrderSkuDetail.DeliveryExpressFreight ?? 0M); - // updateOrderCostDetailList.Add(fsql.Update().SetSource(dbOrderSkuDetail)); - //} } if (isEditOrderPrice) @@ -3156,7 +3111,7 @@ namespace BBWYB.Server.Business .Set(o => o.OrderSellerPrice, dbOrder.OrderSellerPrice) .Set(o => o.FreightPrice, dbOrder.FreightPrice); - updatePurchaseOrder = fsql.Update(orderPurchaseInfo.Id).Set(opi => opi.IsAutoEditOrderPrice, Enums.AutoEditOrderPriceType.已平价); + updatePurchaseOrder = updatePurchaseOrder.Set(opi => opi.IsAutoEditOrderPrice, Enums.AutoEditOrderPriceType.已平价); #endregion } @@ -3187,17 +3142,17 @@ namespace BBWYB.Server.Business #region 订单成本 dbOrderCost.CalculationOrderCostAndProfit(dbOrder.OrderTotalPrice.Value, dbOrderSkuCostList.Union(insertOrderSkuCostList).ToList()); - //dbOrderCost.CalculationOrderCostAndProfit(dbOrder.OrderTotalPrice ?? 0M, - // totalPurchaseProductAmount, - // totalPurchaseFreight, - // dbOrderCostDetails.Sum(ocd => ocd.OutPackAmount ?? 0M), - // dbOrderCostDetails.Sum(ocd => ocd.DeliveryExpressFreight ?? 0M)); updateOrderCost = fsql.Update().SetSource(dbOrderCost); #endregion fsql.Transaction(() => { updatePurchaseOrder?.ExecuteAffrows(); + if (updatePurchaserOrderSkuList.Count() > 0) + { + foreach (var update in updatePurchaserOrderSkuList) + update.ExecuteAffrows(); + } foreach (var update in updateOrderCostDetailList) update.ExecuteAffrows(); updateOrderCost?.ExecuteAffrows(); diff --git a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs index 112db0e..06ea9d7 100644 --- a/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs +++ b/BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs @@ -15,6 +15,9 @@ namespace BBWYB.Server.Model.Db [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + [Column(DbType = "datetime")] + public DateTime? UpdateTime { get; set; } + /// /// ɹ˺Id /// diff --git a/BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs b/BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs index f95cf3d..ba15473 100644 --- a/BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs +++ b/BBWYB.Server.Model/Db/Order/OrderPurchaseSkuInfo.cs @@ -62,6 +62,23 @@ namespace BBWYB.Server.Model.Db /// [Column(StringLength = 100)] public string WaybillNo { get; set; } + + /// + /// 采购数量 + /// + public int PurchasedItemCount { get; set; } = 1; + + /// + /// 采购金额 + /// + [Column(DbType = "decimal(18,2)")] + public decimal PurchasedAmount { get; set; } = 0.00M; + + /// + /// 采购单价 + /// + [Column(DbType = "decimal(18,2)")] + public decimal PurchasedPrice { get; set; } = 0.00M; } } diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeProductSkuStatistic.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeProductSkuStatistic.cs new file mode 100644 index 0000000..95b1336 --- /dev/null +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeProductSkuStatistic.cs @@ -0,0 +1,45 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + [Table(Name = "purchaseschemeproductskustatistic", DisableSyncStructure = true)] + public partial class PurchaseSchemeProductSkuStatistic + { + + [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] + public string PurchaseSkuId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 最近采购单价 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? LastPurchasedPrice { get; set; } = 0.00M; + + /// + /// 最近采购时间 + /// + [Column(DbType = "datetime")] + public DateTime? LastPurchasedTime { get; set; } + + /// + /// 采购金额 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? PurchasedAmount { get; set; } + + /// + /// 采购件数 + /// + [Column(DbType = "int")] + public int? PurchasedItemCount { get; set; } = 0; + + [Column(StringLength = 50)] + public string PurchaseSkuSpecId { get; set; } + + } + +}