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; }
}
}