From c4fbcbe703d7ab1d1a3b7858aac3a7585fed6f73 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Fri, 14 Apr 2023 20:06:11 +0800 Subject: [PATCH] 1 --- .../Controllers/BatchPurchaseController.cs | 11 +++++ .../BatchPurchase/BatchPurchaseBusiness.cs | 41 ++++++++++++++++++- .../Db/PurchaseOrder/PurchaseOrderSku.cs | 7 +--- .../SearchPurchaseOrderV2Request.cs | 27 ++++++++++++ .../PurchaseOrderSkuResponse.cs | 8 ++++ .../PurchaseOrderV2Response.cs | 2 + 6 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/SearchPurchaseOrderV2Request.cs create mode 100644 BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderSkuResponse.cs diff --git a/BBWY.Server.API/Controllers/BatchPurchaseController.cs b/BBWY.Server.API/Controllers/BatchPurchaseController.cs index 041827f6..91f0adc9 100644 --- a/BBWY.Server.API/Controllers/BatchPurchaseController.cs +++ b/BBWY.Server.API/Controllers/BatchPurchaseController.cs @@ -47,5 +47,16 @@ namespace BBWY.Server.API.Controllers { return batchPurchaseBusiness.BatchCreateOrder(request); } + + /// + /// 获取采购单列表 + /// + /// + /// + [HttpPost] + public IList GetPurchaseOrderList([FromBody] SearchPurchaseOrderV2Request request) + { + return batchPurchaseBusiness.GetPurchaseOrderList(request); + } } } diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index fd71b6c1..cbfbd28d 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -2,6 +2,8 @@ using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; +using FreeSql; +using Jd.Api.Domain; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; @@ -50,7 +52,7 @@ namespace BBWY.Server.Business if (productSkuList == null || productSkuList.Count() == 0) return null; - var skuIdList = productSkuList.Select(s => s.Id).ToList(); + var skuIdList = productSkuList.Select(s => p.Id).ToList(); var schemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id) .Where((ps, p) => ps.ShopId == request.ShopId) .Where((ps, p) => skuIdList.Contains(ps.SkuId)) @@ -343,5 +345,42 @@ namespace BBWY.Server.Business SuccessSkuIdList = successSkuIdList }; } + + public IList GetPurchaseOrderList(SearchPurchaseOrderV2Request request) + { + if (request.EndDate != null) + request.EndDate = request.EndDate.Value.Date.AddDays(1).AddSeconds(-1); + + var select = fsql.Select().Where(p => p.ShopId == request.ShopId); + if (!string.IsNullOrEmpty(request.PurchaseOrderId)) + { + select = select.Where(p => p.Id == request.PurchaseOrderId); + } + else + { + if (!string.IsNullOrEmpty(request.Spu) || !string.IsNullOrEmpty(request.Sku)) + { + var childSelect = fsql.Select().As("posku") + .WhereIf(!string.IsNullOrEmpty(request.Sku), posku => posku.SkuId == request.Sku) + .WhereIf(!string.IsNullOrEmpty(request.Spu), posku => posku.ProductId == request.Spu); + + select = select.Where(p => childSelect.Where(posku => posku.PurchaseOrderId == p.Id).Any()); + } + select = select.WhereIf(request.PurchaserName != null, p => p.PurchaserName == request.PurchaserName) + .WhereIf(request.PurchaseOrderState != null, p => p.OrderState == request.PurchaseOrderState) + .WhereIf(request.StartDate != null, p => p.CreateTime >= request.StartDate) + .WhereIf(request.EndDate != null, p => p.CreateTime <= request.EndDate); + } + var purchaseOrderList = select.OrderByDescending(p => p.CreateTime) + .Count(out var total) + .Page(request.PageIndex, request.PageSize) + .ToList(); + + var purchaseOrderIdList = purchaseOrderList.Select(p => p.Id).ToList(); + var purchaseOrderSkuList = fsql.Select().Where(posku => purchaseOrderIdList.Contains(posku.PurchaseOrderId)).ToList(); + foreach (var purchaseOrder in purchaseOrderList) + purchaseOrder.ItemList = purchaseOrderSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.Id).ToList(); + return purchaseOrderList; + } } } diff --git a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs index d8235134..b52e4c8a 100644 --- a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs +++ b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderSku.cs @@ -11,6 +11,8 @@ namespace BBWY.Server.Model.Db [Table(Name = "purchaseordersku", DisableSyncStructure = true)] public partial class PurchaseOrderSku { + [Column(IsPrimary = true)] + public long Id { get; set; } /// /// 打包耗材费 @@ -30,11 +32,6 @@ namespace BBWY.Server.Model.Db [Column(DbType = "decimal(18,2)")] public decimal? FirstFreight { get; set; } = 0.00M; - /// - /// 主键Id - /// - - public long? Id { get; set; } /// /// 入仓费 diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/SearchPurchaseOrderV2Request.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/SearchPurchaseOrderV2Request.cs new file mode 100644 index 00000000..150700f8 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/SearchPurchaseOrderV2Request.cs @@ -0,0 +1,27 @@ +using System; + +namespace BBWY.Server.Model.Dto +{ + public class SearchPurchaseOrderV2Request + { + public string Sku { get; set; } + + public string Spu { get; set; } + + public string PurchaseOrderId { get; set; } + + public long ShopId { get; set; } + + public string PurchaserName { get; set; } + + public Enums.PurchaseOrderState? PurchaseOrderState { get; set; } + + public int PageIndex { get; set; } + + public int PageSize { get; set; } + + public DateTime? StartDate { get; set; } + + public DateTime? EndDate { get; set; } + } +} diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderSkuResponse.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderSkuResponse.cs new file mode 100644 index 00000000..ef7eab5c --- /dev/null +++ b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderSkuResponse.cs @@ -0,0 +1,8 @@ +using BBWY.Server.Model.Db; + +namespace BBWY.Server.Model.Dto +{ + public class PurchaseOrderSkuResponse : PurchaseOrderSku + { + } +} diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs index c82d988a..7addbaa7 100644 --- a/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs +++ b/BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs @@ -1,8 +1,10 @@ using BBWY.Server.Model.Db; +using System.Collections.Generic; namespace BBWY.Server.Model.Dto { public class PurchaseOrderV2Response : PurchaseOrderV2 { + public IList ItemList { get; set; } } }