From 5cb767afef8e746e4c98e0f02f3a8fa2edceb10b Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 1 Aug 2023 10:35:48 +0800
Subject: [PATCH 01/89] =?UTF-8?q?=E6=9F=A5=E8=AF=A2sku=E7=8E=B0=E6=9C=89?=
=?UTF-8?q?=E5=94=AE=E4=BB=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/ViewModels/MainViewModel.cs | 2 +-
.../Controllers/ProductController.cs | 12 ++++++++++++
BBWYB.Server.Business/Product/ProductBusiness.cs | 16 ++++++++++++++++
.../Product/QueryProductSkuPriceRequest.cs | 15 +++++++++++++++
4 files changed, 44 insertions(+), 1 deletion(-)
create mode 100644 BBWYB.Server.Model/Dto/Request/Product/QueryProductSkuPriceRequest.cs
diff --git a/BBWYB.Client/ViewModels/MainViewModel.cs b/BBWYB.Client/ViewModels/MainViewModel.cs
index 41da673..233aafa 100644
--- a/BBWYB.Client/ViewModels/MainViewModel.cs
+++ b/BBWYB.Client/ViewModels/MainViewModel.cs
@@ -232,7 +232,7 @@ namespace BBWYB.Client.ViewModels
vm.OrderVM.Refresh();
if (vm.IsCreateWareManager)
vm.WareManager.Refresh();
- if (SelectedMenuModel.Name == "订单列表Bata")
+ if (SelectedMenuModel?.Name == "订单列表Bata")
{
WeakReferenceMessenger.Default.Send(new Message_WebB_Refresh(null));
}
diff --git a/BBWYB.Server.API/Controllers/ProductController.cs b/BBWYB.Server.API/Controllers/ProductController.cs
index 3ed179e..9aeec32 100644
--- a/BBWYB.Server.API/Controllers/ProductController.cs
+++ b/BBWYB.Server.API/Controllers/ProductController.cs
@@ -1,4 +1,5 @@
using BBWYB.Server.Business;
+using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Mvc;
using SDKAdapter.OperationPlatform.Models;
@@ -34,6 +35,17 @@ namespace BBWYB.Server.API.Controllers
return productBusiness.GetProductSkuList(request);
}
+ ///
+ /// 查询sku现有售价
+ ///
+ ///
+ ///
+ [HttpPost]
+ public decimal? GetProductSkuPrice([FromBody] QueryProductSkuPriceRequest request)
+ {
+ return productBusiness.GetProductSkuPrice(request);
+ }
+
///
/// 修改商品价格
///
diff --git a/BBWYB.Server.Business/Product/ProductBusiness.cs b/BBWYB.Server.Business/Product/ProductBusiness.cs
index 1f2e4fc..d8b6326 100644
--- a/BBWYB.Server.Business/Product/ProductBusiness.cs
+++ b/BBWYB.Server.Business/Product/ProductBusiness.cs
@@ -1,6 +1,7 @@
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
+using BBWYB.Server.Model.Dto;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
using Yitter.IdGenerator;
@@ -26,6 +27,21 @@ namespace BBWYB.Server.Business
return opPlatformClientFactory.GetClient(request.Platform).GetProductSkuList(request);
}
+ public decimal? GetProductSkuPrice(QueryProductSkuPriceRequest request)
+ {
+ var response = GetProductSkuList(new OP_QueryProductSkuRequest()
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = 1,
+ PageSize = 1,
+ Platform = (SDKAdapter.AdapterEnums.PlatformType)request.Platform,
+ Sku = request.Sku
+ });
+ return response.Items?.FirstOrDefault()?.Price;
+ }
+
public void EditProductPrice(OP_EditProductPriceRequest request)
{
var skuRequest = new OP_QueryProductSkuRequest()
diff --git a/BBWYB.Server.Model/Dto/Request/Product/QueryProductSkuPriceRequest.cs b/BBWYB.Server.Model/Dto/Request/Product/QueryProductSkuPriceRequest.cs
new file mode 100644
index 0000000..3f11d72
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Product/QueryProductSkuPriceRequest.cs
@@ -0,0 +1,15 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class QueryProductSkuPriceRequest
+ {
+ public Enums.Platform Platform { get; set; }
+
+ public string AppKey { get; set; }
+
+ public string AppSecret { get; set; }
+
+ public string AppToken { get; set; }
+
+ public string Sku { get; set; }
+ }
+}
From 178e9c79c3a9bcb686b3018db063877fff267a9d Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 1 Aug 2023 12:32:00 +0800
Subject: [PATCH 02/89] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=A0=B8=E7=AE=97?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=8F=98=E6=9B=B4=E4=B8=BAsku=E5=88=A9?=
=?UTF-8?q?=E6=B6=A6=E7=BB=9D=E5=AF=B9=E5=80=BC=E4=B8=8D=E8=B6=85=E8=BF=87?=
=?UTF-8?q?1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/Order/OrderBusiness.cs | 32 ++++++++++++--------
1 file changed, 19 insertions(+), 13 deletions(-)
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index e889a35..f3a3ff8 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -744,21 +744,27 @@ namespace BBWYB.Server.Business
throw new BusinessException("未查询到订单");
if (order.OrderState != Enums.OrderState.待核算)
throw new BusinessException("订单状态不正确,只有待核算的订单才允许核算");
- var orderCost = fsql.Select(orderId).ToOne();
- if (orderCost == null)
- throw new BusinessException("未查询到订单成本");
- if (Math.Abs(orderCost.Profit ?? 0) > 1M)
- throw new BusinessException("订单利润绝对值不能大于1");
+ //var orderCost = fsql.Select(orderId).ToOne();
+ //if (orderCost == null)
+ // throw new BusinessException("未查询到订单成本");
+ //if (Math.Abs(orderCost.Profit ?? 0) > 1M)
+ // throw new BusinessException("订单利润绝对值不能大于1");
+
+ var orderSkuCostList = fsql.Select().Where(o => o.OrderId == orderId).ToList();
+ if (orderSkuCostList.Count() == 0)
+ throw new BusinessException("未查询到订单sku成本");
+ if (orderSkuCostList.Any(osc => Math.Abs(osc.Profit ?? 0) > 1))
+ throw new BusinessException("订单sku利润绝对值不能大于1");
fsql.Transaction(() =>
- {
- fsql.Update(orderId).Set(o => o.OrderState, Enums.OrderState.已完成).ExecuteAffrows();
- fsql.Update().Set(t => t.CompletionTime, DateTime.Now)
- .Set(t => t.IsTimely == (DateTime.Now < t.ExpirationTime ? true : false))
- .Where(t => t.OrderId == orderId)
- .Where(t => t.CompletionTime == null)
- .Where(t => t.TaskType == Enums.TimeLimitTaskType.待核算任务).ExecuteAffrows();
- });
+ {
+ fsql.Update(orderId).Set(o => o.OrderState, Enums.OrderState.已完成).ExecuteAffrows();
+ fsql.Update().Set(t => t.CompletionTime, DateTime.Now)
+ .Set(t => t.IsTimely == (DateTime.Now < t.ExpirationTime ? true : false))
+ .Where(t => t.OrderId == orderId)
+ .Where(t => t.CompletionTime == null)
+ .Where(t => t.TaskType == Enums.TimeLimitTaskType.待核算任务).ExecuteAffrows();
+ });
SendPurchaseOrderStateToC(orderId, Enums.OrderState.已完成);
}
From a4af56b1b7adc66b9d342cb1e15e66ee9679832e Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 1 Aug 2023 15:07:17 +0800
Subject: [PATCH 03/89] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E7=95=99=E8=A8=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.API/Program.cs | 7 +-
BBWYB.Server.API/appsettings.json | 1 +
.../FreeSqlMultiDBManager.cs | 4 +-
.../Order/Message/OrderMessageBusiness.cs | 35 ++-
BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs | 223 ++++++++++++++++++
5 files changed, 263 insertions(+), 7 deletions(-)
create mode 100644 BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs
diff --git a/BBWYB.Server.API/Program.cs b/BBWYB.Server.API/Program.cs
index 7cbd9f9..4174b6a 100644
--- a/BBWYB.Server.API/Program.cs
+++ b/BBWYB.Server.API/Program.cs
@@ -32,10 +32,13 @@ services.AddSingleton(typeof(IFreeSql), fsql);
var fsql2 = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, configuration.GetConnectionString("MDSDB")).Build();
+var fsql_bbwyc = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, configuration.GetConnectionString("BBWYCDB")).Build();
+
services.AddSingleton(new FreeSqlMultiDBManager()
{
- BBWYfsql = fsql,
- MDSfsql = fsql2
+ BBWYBfsql = fsql,
+ MDSfsql = fsql2,
+ BBWYCfsql = fsql_bbwyc,
});
services.AddSingleton();
diff --git a/BBWYB.Server.API/appsettings.json b/BBWYB.Server.API/appsettings.json
index 9a15df4..d071f85 100644
--- a/BBWYB.Server.API/appsettings.json
+++ b/BBWYB.Server.API/appsettings.json
@@ -10,6 +10,7 @@
"ConnectionStrings": {
//"DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy;charset=utf8;sslmode=none;"
"DB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwyb;charset=utf8;sslmode=none;",
+ "BBWYCDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;",
"MDSDB": "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=mds;charset=utf8;sslmode=none;"
},
"AllowedSwagger": true,
diff --git a/BBWYB.Server.Business/FreeSqlMultiDBManager.cs b/BBWYB.Server.Business/FreeSqlMultiDBManager.cs
index 5f970e1..a9f54b6 100644
--- a/BBWYB.Server.Business/FreeSqlMultiDBManager.cs
+++ b/BBWYB.Server.Business/FreeSqlMultiDBManager.cs
@@ -2,7 +2,9 @@
{
public class FreeSqlMultiDBManager
{
- public IFreeSql BBWYfsql { get; set; }
+ public IFreeSql BBWYBfsql { get; set; }
public IFreeSql MDSfsql { get; set; }
+
+ public IFreeSql BBWYCfsql { get; set; }
}
}
diff --git a/BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs b/BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs
index c65a7dc..72cf597 100644
--- a/BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs
+++ b/BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs
@@ -1,5 +1,6 @@
using BBWYB.Common.Log;
using BBWYB.Common.Models;
+using BBWYB.Server.Business.Sync;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using Yitter.IdGenerator;
@@ -9,10 +10,19 @@ namespace BBWYB.Server.Business
public class OrderMessageBusiness : BaseBusiness, IDenpendency
{
private MDSBusiness mdsBusiness;
+ private OrderSyncBusiness orderSyncBusiness;
+ private FreeSqlMultiDBManager mfsql;
- public OrderMessageBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, MDSBusiness mdsBusiness) : base(fsql, nLogManager, idGenerator)
+ public OrderMessageBusiness(IFreeSql fsql,
+ NLogManager nLogManager,
+ IIdGenerator idGenerator,
+ MDSBusiness mdsBusiness,
+ OrderSyncBusiness orderSyncBusiness,
+ FreeSqlMultiDBManager mfsql) : base(fsql, nLogManager, idGenerator)
{
this.mdsBusiness = mdsBusiness;
+ this.orderSyncBusiness = orderSyncBusiness;
+ this.mfsql = mfsql;
}
public void AddOrderMessage(AddOrderMessageRequest request, string token, string clientCode)
@@ -23,9 +33,26 @@ namespace BBWYB.Server.Business
if (string.IsNullOrEmpty(clientCode))
throw new BusinessException("缺少客户端标识");
+ string orderSn = string.Empty;
+ long? shopId = null;
var order = fsql.Select(request.OrderId).ToOne();
if (order == null)
- throw new BusinessException("订单不存在");
+ {
+ var bbwyPurchaseOrder = mfsql.BBWYCfsql.Ado.QuerySingle($"select * from purchaseorderv2 where Id='{request.OrderId}'");
+ if (bbwyPurchaseOrder == null)
+ throw new BusinessException("订单不存在");
+ else
+ {
+ orderSn = bbwyPurchaseOrder.OrderSn;
+ shopId = bbwyPurchaseOrder.ShopId;
+ }
+ }
+ else
+ {
+ orderSn = order.OrderSn;
+ shopId = order.ShopId;
+ }
+
var user = mdsBusiness.GetUserInfo(token);
var om = new OrderMessage()
@@ -36,8 +63,8 @@ namespace BBWYB.Server.Business
CreatorName = user.UserName,
Message = request.Message,
OrderId = request.OrderId,
- OrderSn = order.OrderSn,
- ShopId = order.ShopId,
+ OrderSn = orderSn,
+ ShopId = shopId,
From = clientCode
};
fsql.Insert(om).ExecuteAffrows();
diff --git a/BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs b/BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs
new file mode 100644
index 0000000..ccc561c
--- /dev/null
+++ b/BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs
@@ -0,0 +1,223 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db.BBWY
+{
+
+ ///
+ /// 采购单表
+ ///
+ [Table(Name = "purchaseorderv2", DisableSyncStructure = true)]
+ public partial class PurchaseOrderV2
+ {
+
+ ///
+ /// 采购单号
+ ///
+ [Column(StringLength = 100, IsPrimary = true, IsNullable = false)]
+ public string Id { get; set; }
+
+ ///
+ /// 拳探订单独有Sn号
+ ///
+ [Column(StringLength = 50)]
+ public string OrderSn { get; set; }
+
+ ///
+ /// 完成时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? CompletionTime { get; set; }
+
+ ///
+ /// 收货详细地址
+ ///
+
+ public string ConsigneeAddress { get; set; }
+
+ ///
+ /// 收货市
+ ///
+ [Column(StringLength = 30)]
+ public string ConsigneeCity { get; set; }
+
+ ///
+ /// 收货联系人名称
+ ///
+ [Column(StringLength = 50)]
+ public string ConsigneeContactName { get; set; }
+
+ ///
+ /// 收货区
+ ///
+ [Column(StringLength = 30)]
+ public string ConsigneeCounty { get; set; }
+
+ ///
+ /// 收货联系人电话
+ ///
+ [Column(StringLength = 50)]
+ public string ConsigneeMobile { get; set; }
+
+ ///
+ /// 收货省
+ ///
+ [Column(StringLength = 30)]
+ public string ConsigneeProvince { get; set; }
+
+ ///
+ /// 收货镇
+ ///
+ [Column(StringLength = 30)]
+ public string ConsigneeTown { get; set; }
+
+ ///
+ /// 打包耗材费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? ConsumableAmount { get; set; } = 0.00M;
+
+ ///
+ /// 创建时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+ ///
+ /// 快递公司
+ ///
+ [Column(StringLength = 100)]
+ public string ExpressName { get; set; }
+
+ ///
+ /// 头程运费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? FirstFreight { get; set; } = 0.00M;
+
+ ///
+ /// 入仓费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? InStorageAmount { get; set; } = 0.00M;
+
+ ///
+ /// 是否转入库存
+ ///
+
+ public bool? IsConvertToStock { get; set; } = false;
+
+ ///
+ /// 是否订阅快递100
+ ///
+
+ public bool? IsSubscribeKuaiDi100 { get; set; } = false;
+
+ ///
+ /// 采购单状态(待付款=0,待发货=1,待收货=2,待质检=3,待打包=4,待结算=5,已完成=6)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.PurchaseOrderState? OrderState { get; set; }
+
+ ///
+ /// 支付时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? PayTime { get; set; }
+
+ ///
+ /// 采购货款
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? ProductAmount { get; set; } = 0.00M;
+
+ ///
+ /// 采购账号Id
+ ///
+
+ public long? PurchaseAccountId { get; set; }
+
+ ///
+ /// 采购金额(采购货款+采购运费)
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? PurchaseAmount { get; set; } = 0.00M;
+
+ ///
+ /// 采购运费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? PurchaseFreight { get; set; } = 0.00M;
+
+ ///
+ /// 采购平台
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.Platform? PurchasePlatform { get; set; }
+
+ ///
+ /// 商家Id
+ ///
+ [Column(StringLength = 20)]
+ public string PurchaserId { get; set; }
+
+ ///
+ /// 商家名称
+ ///
+ [Column(StringLength = 100)]
+ public string PurchaserName { get; set; }
+
+ ///
+ /// 质检费
+ ///
+ [Column(DbType = "decimal(18,2)")]
+ public decimal? QualityInspectionAmount { get; set; } = 0.00M;
+
+ ///
+ /// 备注信息
+ ///
+
+ public string Remark { get; set; }
+
+ ///
+ /// 店铺Id
+ ///
+
+ public long ShopId { get; set; }
+
+ ///
+ /// 签收时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? SignTime { get; set; }
+
+ ///
+ /// 快递单号
+ ///
+ [Column(StringLength = 100)]
+ public string WaybillNo { get; set; }
+
+ ///
+ /// 采购方式(线上=0, 线下=1)
+ ///
+ [Column(MapType = typeof(int))]
+ public Enums.PurchaseMethod PurchaseMethod { get; set; }
+
+ ///
+ /// 采购单模式 批发 = 0,代发 = 1
+ ///
+ [Column(MapType = typeof(int))]
+ public Enums.PurchaseOrderMode PurchaseOrderMode { get; set; }
+ /////
+ ///// 打包状态 (待发布=0,打包中=1,已完成=2)
+ /////
+ //[Column(MapType = typeof(int))]
+ //public Enums.PackState PackState { get; set; }
+
+ ///
+ /// 入仓类型 (发回齐越 = 0, 厂商代发入仓 = 1)
+ ///
+ [Column(MapType = typeof(int?))]
+ public Enums.IntoStoreType? IntoStoreType { get; set; }
+ }
+
+}
From 52476a10c74ac97b7401d6e3001062155098a9a4 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 2 Aug 2023 23:19:47 +0800
Subject: [PATCH 04/89] 1
---
BBWYB.Client/App.xaml.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/BBWYB.Client/App.xaml.cs b/BBWYB.Client/App.xaml.cs
index be15769..9f2d3f5 100644
--- a/BBWYB.Client/App.xaml.cs
+++ b/BBWYB.Client/App.xaml.cs
@@ -50,9 +50,9 @@ namespace BBWYB.Client
gl.UserToken = userToken;
#region 注册全局异常
- this.DispatcherUnhandledException += App_DispatcherUnhandledException; ;
- AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; ;
- TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; ;
+ this.DispatcherUnhandledException += App_DispatcherUnhandledException;
+ AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
+ TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
#endregion
From d2d886be951c544a420b3f7997a60354205f9639 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 4 Aug 2023 18:49:19 +0800
Subject: [PATCH 05/89] =?UTF-8?q?=E5=85=A5=E4=BB=93=E9=80=9A=E7=9F=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 9347618..b5b644d 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -2671,7 +2671,7 @@ namespace BBWYB.Server.Business
#region 入库单查询有误,通知钉钉
var shop = venderBusiness.GetShopList(order.ShopId).FirstOrDefault();
var dingdingMsg = new StringBuilder();
- if (inStoreResponse.Data == null || inStoreResponse.Data.Count() == 0)
+ if (!inStoreResponse.Success)
{
foreach (var opi in currentPurchaseOrderList)
{
@@ -2679,11 +2679,11 @@ namespace BBWYB.Server.Business
dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine("缺少入仓采购单号");
+ dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
dingdingMsg.AppendLine();
}
}
- else if (!inStoreResponse.Success)
+ else if (inStoreResponse.Data == null || inStoreResponse.Data.Count() == 0)
{
foreach (var opi in currentPurchaseOrderList)
{
@@ -2691,7 +2691,7 @@ namespace BBWYB.Server.Business
dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
+ dingdingMsg.AppendLine("缺少入仓采购单号");
dingdingMsg.AppendLine();
}
}
From bfa65847e3ca320fd874939d21f19e57355eb306 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 5 Aug 2023 11:56:43 +0800
Subject: [PATCH 06/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=20=E5=BD=93?=
=?UTF-8?q?=E4=B8=80=E7=AC=94=E8=AE=A2=E5=8D=95sku=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=E5=A4=9A=E7=AC=94=E9=87=87=E8=B4=AD=E5=8D=95=E6=97=B6=E5=AF=BC?=
=?UTF-8?q?=E8=87=B4=E8=AE=A2=E5=8D=95=E5=B9=B3=E4=BB=B7=E7=9A=84=E7=BB=93?=
=?UTF-8?q?=E6=9E=9C=E4=B8=8D=E6=AD=A3=E7=A1=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 54 +++++++++++++++----
1 file changed, 43 insertions(+), 11 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index b5b644d..5a01ee9 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -2864,6 +2864,8 @@ namespace BBWYB.Server.Business
IUpdate updatePurchaseOrder = null;
+ IDictionary oskuPriceEditParamDictionary = new Dictionary();
+
var ppclient = ppPlatformClientFactory.GetClient(AdapterEnums.PlatformType.阿里巴巴);
var totalPurchaseProductAmount = 0M;
@@ -2911,21 +2913,34 @@ namespace BBWYB.Server.Business
var orderSku = dbOrderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId);
if (isEditOrderPrice)
{
- orderSku.Price = currentOrderSkuProductAmount / orderSku.ItemTotal;
- orderSku.BuyerPayFreight = currentPurchaseFreight;
- if (!op_EditPriceSkuRequests.Any(x => x.SkuId == orderSku.SkuId))
+ if (!oskuPriceEditParamDictionary.TryGetValue(orderSku.SkuId, out OP_EditPriceSkuRequest editSkuPrice))
{
- op_EditPriceSkuRequests.Add(new OP_EditPriceSkuRequest()
+ editSkuPrice = new OP_EditPriceSkuRequest()
{
- Freight = currentPurchaseFreight ?? 0M,
- InPackAmountPrice = orderSku.InPackAmount ?? 0M,
+ SkuId = orderSku.SkuId,
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));
+ 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
@@ -2938,8 +2953,24 @@ namespace BBWYB.Server.Business
updateOrderCostDetailList.Add(fsql.Update().SetSource(dbOrderSkuDetail));
}
}
+
if (isEditOrderPrice)
{
+ #region 更新订单sku金额
+ foreach (var editSkuPriceKey in oskuPriceEditParamDictionary.Keys)
+ {
+ oskuPriceEditParamDictionary.TryGetValue(editSkuPriceKey, out var editSkuPrice);
+ var orderSku = dbOrderSkus.FirstOrDefault(osku => osku.SkuId == editSkuPrice.SkuId);
+ orderSku.Price = editSkuPrice.Price;
+ orderSku.BuyerPayFreight = editSkuPrice.Freight;
+
+ op_EditPriceSkuRequests.Add(editSkuPrice);
+ updateOrderSkuList.Add(fsql.Update(orderSku.Id).Set(osku => osku.Price, orderSku.Price)
+ .Set(osku => osku.BuyerPayFreight, orderSku.BuyerPayFreight));
+ }
+ #endregion
+
+ #region 更新订单金额
dbOrder.OrderTotalPrice = totalPurchaseProductAmount + totalPurchaseFreight;
dbOrder.OrderSellerPrice = totalPurchaseProductAmount;
dbOrder.FreightPrice = totalPurchaseFreight;
@@ -2948,6 +2979,7 @@ namespace BBWYB.Server.Business
.Set(o => o.FreightPrice, dbOrder.FreightPrice);
updatePurchaseOrder = fsql.Update(orderPurchaseInfo.Id).Set(opi => opi.IsAutoEditOrderPrice, Enums.AutoEditOrderPriceType.已平价);
+ #region
}
#region 订单Sku成本
From fdf30b5879d013a2b50f4c8350672d6c739b0870 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 5 Aug 2023 12:02:30 +0800
Subject: [PATCH 07/89] 1
---
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 5a01ee9..743f28c 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -2979,7 +2979,7 @@ namespace BBWYB.Server.Business
.Set(o => o.FreightPrice, dbOrder.FreightPrice);
updatePurchaseOrder = fsql.Update(orderPurchaseInfo.Id).Set(opi => opi.IsAutoEditOrderPrice, Enums.AutoEditOrderPriceType.已平价);
- #region
+ #endregion
}
#region 订单Sku成本
From cc6b81804d6afa390350837a562b89956a496ae8 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 6 Aug 2023 13:57:48 +0800
Subject: [PATCH 08/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=8B=E5=8A=A8?=
=?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=AF=BC=E8=87=B4=E9=87=87=E8=B4=AD=E5=B8=A6?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=8D=E5=AF=B9=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 108 ++++++------------
1 file changed, 32 insertions(+), 76 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 743f28c..bf3eddf 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -1339,80 +1339,6 @@ namespace BBWYB.Server.Business
});
}
- //public void DeletePurchaseOrder(DeletePurchaseOrderRequest request)
- //{
- // nLogManager.Default().Info($"DeletePurchaseOrder {JsonConvert.SerializeObject(request)}");
-
- // //var po = fsql.Select().Where(opi => opi.PurchaseOrderId == request.PurchaseOrderId).ToOne();
- // //if (po == null)
- // // throw new BusinessException("采购单不不存在");
- // //var orderId = po.OrderId;
-
- // var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == request.OrderId).ToList();
- // var deletePurchaseOrder = orderPurchaseInfoList.FirstOrDefault(opi => opi.PurchaseOrderId == request.PurchaseOrderId);
- // if (deletePurchaseOrder == null)
- // throw new BusinessException("采购单不不存在");
-
- // var dbOrderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == request.OrderId &&
- // ocd.PurchaseOrderId != request.PurchaseOrderId).ToList();
- // var dbOrderCost = fsql.Select(request.OrderId).ToOne();
- // var dbOrder = fsql.Select(request.OrderId).ToOne();
-
- // var purchaseProductAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount) ?? 0M;
- // var purchaseFreight = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.PurchaseFreight) ?? 0M;
- // var outPackAmount = dbOrderCostDetailList.Count() == 0 ? 0M : dbOrderCostDetailList.Sum(ocd => ocd.OutPackAmount) ?? 0M;
- // dbOrderCost.CalculationOrderCostAndProfit(dbOrder.OrderTotalPrice.Value, purchaseProductAmount, purchaseFreight, outPackAmount, 0M);
-
-
- // #region 找出失效的快递单
- // List deleteWaybillNoList = new List();
-
- // //查询该采购单所使用的快递单号
- // var useWaybillNos = fsql.Select().Where(eori => eori.PurchaseOrderId == request.PurchaseOrderId).ToList(eori => eori.WayBillNo);
-
- // //查询使用上述快递单号的快递单关系
- // var expressOrderRelationList = fsql.Select().Where(eori => useWaybillNos.Contains(eori.WayBillNo)).ToList();
-
- // //以快递单号进行分组
- // var expressOrderRelationGroups = expressOrderRelationList.GroupBy(eori => eori.WayBillNo);
- // foreach (var group in expressOrderRelationGroups)
- // {
- // if (group.Count() == group.Count(eori => eori.PurchaseOrderId == request.PurchaseOrderId))
- // deleteWaybillNoList.Add(group.Key);
- // }
- // #endregion
-
- // orderPurchaseInfoList.Remove(deletePurchaseOrder);
- // while (orderPurchaseInfoList.Any(opi => opi.IsEnabled == false))
- // {
- // var historyPo = orderPurchaseInfoList.FirstOrDefault(opi => opi.IsEnabled == false);
- // orderPurchaseInfoList.Remove(historyPo);
- // }
- // dbOrder.CalculationOrderState(fsql, out _, orderPurchaseInfoList: orderPurchaseInfoList);
-
- // fsql.Transaction(() =>
- // {
- // fsql.Delete(deletePurchaseOrder.Id).ExecuteAffrows();
-
- // fsql.Update()
- // .Set(ocd => ocd.IsEnabled, false)
- // .Where(ocd => ocd.PurchaseOrderId == request.PurchaseOrderId)
- // .ExecuteAffrows();
-
- // fsql.Delete().Where(opsi => opsi.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
- // fsql.Delete().Where(opri => opri.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
-
- // fsql.Delete().Where(eori => eori.PurchaseOrderId == request.PurchaseOrderId).ExecuteAffrows();
- // if (deleteWaybillNoList.Count() > 0)
- // fsql.Delete(deleteWaybillNoList).ExecuteAffrows();
-
- // fsql.Delete().Where(i => i.OrderId == request.OrderId && i.PurchaseOrderId == request.PurchaseOrderId)
- // .ExecuteAffrows();
-
- // fsql.Update().SetSource(dbOrderCost).ExecuteAffrows();
- // fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState).ExecuteAffrows();
- // });
- //}
///
/// 修改采购快递单
@@ -1753,6 +1679,21 @@ namespace BBWYB.Server.Business
WayBillNo = request.WaybillNo
};
insertExpressOrderRelation = fsql.Insert(expressOrderRelation);
+ if (!insertPurchaseExpressOrderList.Any(p => p.WaybillNo == request.WaybillNo))
+ {
+ purchaseExpressOrderList.Add(new PurchaseExpressOrder()
+ {
+ CreateTime = DateTime.Now,
+ ShopId = dbOrder.ShopId ?? 0,
+ TargetExpressId = request.ExpressId,
+ TargetExpressName = request.ExpressName,
+ WaybillNo = request.WaybillNo,
+ ExpressState = kuaiDi100Manager.GetExpressState(1), //快递100发货状态值 默认揽收
+ IsSubscribeKD100 = isSubscribeKD100,
+ ExpressContent = "手动发货",
+ ExpressChangedTime = DateTime.Now
+ });
+ }
}
#endregion
@@ -1793,7 +1734,7 @@ namespace BBWYB.Server.Business
///
public void PurchaserDelivery(PurchaserDeliveryRequest request)
{
- nLogManager.Default().Info($"ManualDelivery {JsonConvert.SerializeObject(request)}");
+ nLogManager.Default().Info($"PurchaserDelivery {JsonConvert.SerializeObject(request)}");
var dbOrder = fsql.Select(request.OrderId).ToOne();
if (dbOrder == null)
@@ -1885,7 +1826,7 @@ namespace BBWYB.Server.Business
dingdingMsg.AppendLine($"源物流公司:无");
dingdingMsg.AppendLine($"目标物流公司:{peoRequest.ExpressName} {peoRequest.ExpressId}");
dingdingMsg.AppendLine($"快递单号:{peoRequest.WaybillNo}");
- dingdingMsg.AppendLine("触发环节:手动发货");
+ dingdingMsg.AppendLine("触发环节:厂家代发入仓手动发货");
dingdingMsg.Append($"店铺名:{shop.ShopName}");
Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
#endregion
@@ -1928,6 +1869,21 @@ namespace BBWYB.Server.Business
WayBillNo = peoRequest.WaybillNo
};
insertExpressOrderRelationList.Add(expressOrderRelation);
+ if (!insertPurchaseExpressOrderList.Any(p => p.WaybillNo == peoRequest.WaybillNo))
+ {
+ purchaseExpressOrderList.Add(new PurchaseExpressOrder()
+ {
+ CreateTime = DateTime.Now,
+ ShopId = dbOrder.ShopId ?? 0,
+ TargetExpressId = peoRequest.ExpressId,
+ TargetExpressName = peoRequest.ExpressName,
+ WaybillNo = peoRequest.WaybillNo,
+ ExpressState = kuaiDi100Manager.GetExpressState(1), //快递100发货状态值 默认揽收
+ IsSubscribeKD100 = isSubscribeKD100,
+ ExpressContent = "手动发货",
+ ExpressChangedTime = DateTime.Now
+ });
+ }
}
#endregion
From 7bac2c32ded3f3adc3dc807f8fc3e136629cadd7 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 6 Aug 2023 18:17:55 +0800
Subject: [PATCH 09/89] 1
---
.../Controllers/DataRepairController.cs | 6 ++++++
.../DataRepair/DataRepairBusiness.cs | 15 ++++++++++++++-
.../PurchaseOrder/PurchaseOrderBusiness.cs | 2 +-
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index 027cc64..c741111 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -42,5 +42,11 @@ namespace BBWYB.Server.API.Controllers
{
dataRepairBusiness.SupplementOrderSkuCost();
}
+
+ [HttpPost]
+ public void PingJia()
+ {
+ dataRepairBusiness.PingJia();
+ }
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index 3fbebc0..f70c444 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -13,10 +13,12 @@ namespace BBWYB.Server.Business
{
private KuaiDi100Manager kuaiDi100Manager;
private PurchaseSchemeBusiness purchaseSchemeBusiness;
- public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness) : base(fsql, nLogManager, idGenerator)
+ private PurchaseOrderBusiness purchaseOrderBusiness;
+ public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness) : base(fsql, nLogManager, idGenerator)
{
this.kuaiDi100Manager = kuaiDi100Manager;
this.purchaseSchemeBusiness = purchaseSchemeBusiness;
+ this.purchaseOrderBusiness = purchaseOrderBusiness;
}
@@ -25,6 +27,17 @@ namespace BBWYB.Server.Business
kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
}
+ public void PingJia()
+ {
+
+ var list = new List()
+ {
+
+ };
+ foreach (var pid in list)
+ purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false);
+ }
+
public void SupplementPurchaserInfo()
{
var purlList = fsql.Select()
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index bf3eddf..8068d69 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -2761,7 +2761,7 @@ namespace BBWYB.Server.Business
///
/// 采购单Id
/// 当不需要触发订单改价时是否继续走流程
- private void OnSomeOnePurchaseOrderChanged(string purchaseOrderId, bool keepRunWhenNoEditOrderPirce)
+ public void OnSomeOnePurchaseOrderChanged(string purchaseOrderId, bool keepRunWhenNoEditOrderPirce)
{
bool isEditOrderPrice = true;
try
From a6641411f2fc7492d76e93ed604615daa0298b04 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 7 Aug 2023 11:39:13 +0800
Subject: [PATCH 10/89] =?UTF-8?q?=E4=BF=9D=E7=95=99sku=E6=9C=80=E5=88=9D?=
=?UTF-8?q?=E4=BB=B7=E6=A0=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs | 1 +
BBWYB.Server.Model/Db/Order/OrderSku.cs | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
index 6f2ef91..2ddcfe4 100644
--- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
@@ -163,6 +163,7 @@ namespace BBWYB.Server.Business.Sync
Logo = qtOrderSku.SkuLogo,
OrderId = qtOrder.OrderId,
Price = qtOrderSku.SkuPrice,
+ InitialPrice = qtOrderSku.SkuPrice,
Title = qtOrderSku.SkuTitle,
ShopId = shopId,
ProductId = qtOrderSku.ProductId,
diff --git a/BBWYB.Server.Model/Db/Order/OrderSku.cs b/BBWYB.Server.Model/Db/Order/OrderSku.cs
index 2d07800..95b13d2 100644
--- a/BBWYB.Server.Model/Db/Order/OrderSku.cs
+++ b/BBWYB.Server.Model/Db/Order/OrderSku.cs
@@ -43,6 +43,12 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal? Price { get; set; }
+ ///
+ /// 最初单价
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal? InitialPrice { get; set; }
+
[Column(StringLength = 50)]
public string ProductId { get; set; }
From 989cbda8408451ae6c9640b97114108d884e4691 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 8 Aug 2023 11:59:42 +0800
Subject: [PATCH 11/89] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=85=A5=E4=BB=93?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.API/Controllers/JDController.cs | 25 +++
.../Extensions/OrderStateExtension.cs | 21 ++-
BBWYB.Server.Business/JD/JDBusiness.cs | 148 +++++++++++++++++-
BBWYB.Server.Business/Order/OrderBusiness.cs | 2 +-
.../PurchaseOrder/PurchaseOrderBusiness.cs | 120 +++-----------
.../Vender/VenderBusiness.cs | 7 +
.../Db/Order/InStoreOrderCheckTask.cs | 29 ++++
.../Order/InStorePurchaseOrdeRrelationInfo.cs | 30 ++--
8 files changed, 258 insertions(+), 124 deletions(-)
create mode 100644 BBWYB.Server.API/Controllers/JDController.cs
create mode 100644 BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs
diff --git a/BBWYB.Server.API/Controllers/JDController.cs b/BBWYB.Server.API/Controllers/JDController.cs
new file mode 100644
index 0000000..ef06731
--- /dev/null
+++ b/BBWYB.Server.API/Controllers/JDController.cs
@@ -0,0 +1,25 @@
+using BBWYB.Server.Business.JD;
+using Microsoft.AspNetCore.Mvc;
+
+namespace BBWYB.Server.API.Controllers
+{
+
+ public class JDController : BaseApiController
+ {
+ private JDBusiness jdBusiness;
+
+ public JDController(IHttpContextAccessor httpContextAccessor, JDBusiness jdBusiness) : base(httpContextAccessor)
+ {
+ this.jdBusiness = jdBusiness;
+ }
+
+ ///
+ /// 检查入仓采购单
+ ///
+ [HttpPost]
+ public void CheckInStoreOrder()
+ {
+ jdBusiness.CheckInStoreOrder();
+ }
+ }
+}
diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
index 1834f9c..9b5c861 100644
--- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
+++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
@@ -13,18 +13,13 @@ namespace BBWYB.Server.Business
///
///
///
- /// 是否在入库单验证失败后通知钉钉
///
///
- ///
public static void CalculationOrderState(this Order order,
IFreeSql fsql,
- out bool IsNotifyDingDingWhenInStoreOrderFail,
IList orderSkuList = null,
- IList orderPurchaseInfoList = null,
- IList jdInStoreOrderDetailList = null)
+ IList orderPurchaseInfoList = null)
{
- IsNotifyDingDingWhenInStoreOrderFail = false;
if (order.OrderState == Enums.OrderState.已取消 ||
order.OrderState == Enums.OrderState.已完成 ||
order.OrderState == Enums.OrderState.待付款)
@@ -120,13 +115,15 @@ namespace BBWYB.Server.Business
}
else if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓)
{
- if (jdInStoreOrderDetailList == null || jdInStoreOrderDetailList.Count() == 0 || jdInStoreOrderDetailList.Any(x => x.storageStatus != "2"))
- {
+ if (order.OrderState != Enums.OrderState.待核算)
order.OrderState = Enums.OrderState.待验收;
- IsNotifyDingDingWhenInStoreOrderFail = true;
- }
- else
- order.OrderState = Enums.OrderState.待核算;
+ //if (jdInStoreOrderDetailList == null || jdInStoreOrderDetailList.Count() == 0 || jdInStoreOrderDetailList.Any(x => x.storageStatus != "2"))
+ //{
+ // order.OrderState = Enums.OrderState.待验收;
+ // IsNotifyDingDingWhenInStoreOrderFail = true;
+ //}
+ //else
+ // order.OrderState = Enums.OrderState.待核算;
}
return;
}
diff --git a/BBWYB.Server.Business/JD/JDBusiness.cs b/BBWYB.Server.Business/JD/JDBusiness.cs
index d00139d..5b2f1ba 100644
--- a/BBWYB.Server.Business/JD/JDBusiness.cs
+++ b/BBWYB.Server.Business/JD/JDBusiness.cs
@@ -1,8 +1,10 @@
using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
+using BBWYB.Server.Model.Db;
using JD.Dto;
using Newtonsoft.Json;
+using System.Text;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business.JD
@@ -11,14 +13,20 @@ namespace BBWYB.Server.Business.JD
{
private RestApiService restApiService;
private VenderBusiness venderBusiness;
+ private DingDingBusiness dingDingBusiness;
+ private TaskSchedulerManager taskSchedulerManager;
public JDBusiness(IFreeSql fsql,
NLogManager nLogManager,
IIdGenerator idGenerator,
RestApiService restApiService,
- VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator)
+ VenderBusiness venderBusiness,
+ DingDingBusiness dingDingBusiness,
+ TaskSchedulerManager taskSchedulerManager) : base(fsql, nLogManager, idGenerator)
{
this.restApiService = restApiService;
this.venderBusiness = venderBusiness;
+ this.dingDingBusiness = dingDingBusiness;
+ this.taskSchedulerManager = taskSchedulerManager;
}
public ApiResponse> GetJDInStoreOrderDetailList(string sourceShopName, IList poOrderNos)
@@ -50,5 +58,143 @@ namespace BBWYB.Server.Business.JD
return new ApiResponse>() { Code = 0, Msg = ex.Message };
}
}
+
+ public void CheckInStoreOrder()
+ {
+ List orderIds = null;
+
+ try
+ {
+ var checkTaskList = fsql.Select().Where(x => x.IsChecked == false).ToList();
+ if (checkTaskList.Count() == 0)
+ return;
+ orderIds = checkTaskList.Select(x => x.OrderId).ToList();
+ var orderPurchaseInfoList = fsql.Select().Where(opi => orderIds.Contains(opi.PurchaseOrderId) && opi.IsEnabled == true).ToList();
+
+ var waitCheckInStoreOrderList = fsql.Select()
+ .InnerJoin((io, o) => io.OrderId == o.Id)
+ .Where((io, o) => orderIds.Contains(io.OrderId) && !string.IsNullOrEmpty(o.SourceShopName))
+ .ToList((io, o) => new
+ {
+ io.Id,
+ io.PurchaseOrderId,
+ io.CreateTime,
+ io.InStorePurchaseOrderId,
+ io.OrderId,
+ io.ShopId,
+ io.WaybillNo,
+ o.SourceShopName
+ });
+ var shopIds = checkTaskList.Select(x => x.ShopId.ToString()).ToList();
+ var shopList = venderBusiness.GetShopList(shopIds);
+
+ foreach (var checkTask in checkTaskList)
+ {
+ var dingdingMsg = new StringBuilder();
+ var inStoreOrderRelationList = waitCheckInStoreOrderList.Where(x => x.OrderId == checkTask.OrderId).ToList();
+ var currentPurchaseOrderList = orderPurchaseInfoList.Where(opi => opi.OrderId == checkTask.OrderId).ToList();
+ var shop = shopList.FirstOrDefault(s => s.ShopId == checkTask.ShopId.ToString());
+ if (inStoreOrderRelationList == null || inStoreOrderRelationList.Count() == 0)
+ {
+ if (currentPurchaseOrderList.Count() > 0)
+ {
+ foreach (var opi in currentPurchaseOrderList)
+ {
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine("缺少入仓采购单号");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+ else
+ {
+ var poOrderNos = inStoreOrderRelationList.Select(i => i.InStorePurchaseOrderId).Distinct().ToList();
+ //查询京东
+ var inStoreResponse = GetJDInStoreOrderDetailList(inStoreOrderRelationList.FirstOrDefault().SourceShopName, poOrderNos);
+ if (!inStoreResponse.Success)
+ {
+ if (currentPurchaseOrderList.Count() > 0)
+ {
+ foreach (var opi in currentPurchaseOrderList)
+ {
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+ else
+ {
+ foreach (var inStoreOrderRelation in inStoreOrderRelationList)
+ {
+ var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId);
+ if (jdInStore == null || jdInStore.storageStatus == "2")
+ continue;
+ var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId);
+ if (opi == null)
+ continue;
+
+ var stateText = "";
+ switch (jdInStore.storageStatus)
+ {
+ case "1":
+ stateText = "有差异待确认";
+ break;
+ case "3":
+ stateText = "待确认";
+ break;
+ case "4":
+ stateText = "有差异已确认";
+ break;
+ }
+
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
+ dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}");
+ dingdingMsg.AppendLine();
+ }
+ }
+ }
+
+ if (dingdingMsg.Length > 0)
+ {
+ Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ nLogManager.Default().Error(ex, "CheckInStoreOrder");
+ }
+ finally
+ {
+ try
+ {
+ if (orderIds != null && orderIds.Count() > 0)
+ fsql.Update().Set(x => x.IsChecked, true).Where(x => orderIds.Contains(x.OrderId)).ExecuteAffrows();
+ }
+ catch { }
+ }
+ }
+
+ private void SendDingDing(string content)
+ {
+ try
+ {
+ dingDingBusiness.SendDingDingBotMessage("SEC5f08a3dd6813e50bf9a3b81350ec12a8086c64b9e29ef858a17f5cc7887906d7",
+ "https://oapi.dingtalk.com/robot/send?access_token=7ce472411bb8dde0c3ff503fcca9ead84d39950ee3c4c65c808dbc58981eb929",
+ content);
+ }
+ catch { }
+ }
}
}
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index f3a3ff8..dab1f9a 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -726,7 +726,7 @@ namespace BBWYB.Server.Business
updateOrderSku = fsql.Update(orderSku.Id).Set(osku => osku.IsCheck, true);
var oldOrderState = dbOrder.OrderState;
- dbOrder.CalculationOrderState(fsql, out _, orderSkuList, null);
+ dbOrder.CalculationOrderState(fsql, orderSkuList);
if (oldOrderState != dbOrder.OrderState)
updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 8068d69..ee612b7 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -541,7 +541,7 @@ namespace BBWYB.Server.Business
#endregion
#region 订单状态
- dbOrder.CalculationOrderState(fsql, out _, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList());
+ dbOrder.CalculationOrderState(fsql, orderSkus, orderPurchaseInfoList.Union(insertOrderPurchaseInfos).ToList());
#endregion
#region 通知C端状态
@@ -1041,7 +1041,7 @@ namespace BBWYB.Server.Business
#endregion
#region 订单状态
- dbOrder.CalculationOrderState(fsql, out _, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList());
+ dbOrder.CalculationOrderState(fsql, dbOrderSkuList, dbPurchaseOrderList.Union(insertOrderPurchaseInfoList).ToList());
#endregion
#region 通知C端状态
@@ -1296,7 +1296,7 @@ namespace BBWYB.Server.Business
#endregion
orderPurchaseInfoList.Remove(historyPurchaseOrder);
- dbOrder.CalculationOrderState(fsql, out _, orderPurchaseInfoList: orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, orderPurchaseInfoList: orderPurchaseInfoList);
fsql.Transaction(() =>
{
@@ -1339,7 +1339,6 @@ namespace BBWYB.Server.Business
});
}
-
///
/// 修改采购快递单
///
@@ -1489,7 +1488,7 @@ namespace BBWYB.Server.Business
#region 计算订单状态
var oldOrderState = dbOrder.OrderState;
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
if (oldOrderState != dbOrder.OrderState)
{
updateOrder = fsql.Update(dbOrder.Id).Set(o => o.OrderState, dbOrder.OrderState);
@@ -1704,7 +1703,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -1913,7 +1912,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -1965,7 +1964,6 @@ namespace BBWYB.Server.Business
taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
-
/////
///// 手动收货
/////
@@ -2371,7 +2369,7 @@ namespace BBWYB.Server.Business
#endregion
#region 计算订单状态
- dbOrder.CalculationOrderState(fsql, out _, null, orderPurchaseInfoList);
+ dbOrder.CalculationOrderState(fsql, null, orderPurchaseInfoList);
updateOrder = fsql.Update(dbOrder.Id)
.Set(o => o.OrderState, dbOrder.OrderState);
#endregion
@@ -2481,6 +2479,7 @@ namespace BBWYB.Server.Business
List> updateOrderPurchaseList = new List>();
List> updateOrderList = new List>();
List insertTimeLimitTaskList = new List();
+ List insertInStoreOrderCheckTaskList = new List();
#region 查询该笔快递单
var tpeo = fsql.Select(wayBillNo).ToOne();
@@ -2566,9 +2565,9 @@ namespace BBWYB.Server.Business
#endregion
#region 查询入库单信息
- IList inStoreOrderRelationList = null;
+ IList inStoreOrderCheckTaskList = null;
if (orderList.Any(o => o.IntoStoreType == Enums.IntoStoreType.厂商代发入仓) && state == "QianShou")
- inStoreOrderRelationList = fsql.Select().Where(i => orderIds.Contains(i.OrderId)).ToList();
+ inStoreOrderCheckTaskList = fsql.Select().Where(i => orderIds.Contains(i.OrderId)).ToList();
#endregion
#region 计算订单状态和采购单状态
@@ -2607,93 +2606,22 @@ namespace BBWYB.Server.Business
}
var oldOrderState = order.OrderState;
+ order.CalculationOrderState(fsql, currentOrderSkuList, currentPurchaseOrderList);
- if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 && state == "QianShou")
+ if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 &&
+ state == "QianShou" &&
+ order.OrderState == Enums.OrderState.待验收 &&
+ !inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{
- #region 检查入库采购单状态
- var isNotifyDingDingWhenInOrderFail = false;
- var currentOrder_InStoreOrderRelationList = inStoreOrderRelationList.Where(i => i.OrderId == order.Id).ToList();
- ApiResponse> inStoreResponse = null;
- if (currentOrder_InStoreOrderRelationList.Count() > 0)
- {
- var poOrderNos = currentOrder_InStoreOrderRelationList.Select(i => i.InStorePurchaseOrderId).Distinct().ToList();
- //查询京东
- inStoreResponse = jdBusiness.GetJDInStoreOrderDetailList(order.SourceShopName, poOrderNos);
- }
- order.CalculationOrderState(fsql, out isNotifyDingDingWhenInOrderFail, currentOrderSkuList, currentPurchaseOrderList, inStoreResponse?.Data);
-
- if (isNotifyDingDingWhenInOrderFail && inStoreResponse != null)
+ insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()
{
- #region 入库单查询有误,通知钉钉
- var shop = venderBusiness.GetShopList(order.ShopId).FirstOrDefault();
- var dingdingMsg = new StringBuilder();
- if (!inStoreResponse.Success)
- {
- foreach (var opi in currentPurchaseOrderList)
- {
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine($"{inStoreResponse.Msg}");
- dingdingMsg.AppendLine();
- }
- }
- else if (inStoreResponse.Data == null || inStoreResponse.Data.Count() == 0)
- {
- foreach (var opi in currentPurchaseOrderList)
- {
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine("缺少入仓采购单号");
- dingdingMsg.AppendLine();
- }
- }
- else
- {
- foreach (var inStoreOrderRelation in currentOrder_InStoreOrderRelationList)
- {
- var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId);
- if (jdInStore == null || jdInStore.storageStatus == "2")
- continue;
- var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId);
- if (opi == null)
- continue;
-
- var stateText = "";
- switch (jdInStore.storageStatus)
- {
- case "1":
- stateText = "有差异待确认";
- break;
- case "3":
- stateText = "待确认";
- break;
- case "4":
- stateText = "有差异已确认";
- break;
- }
-
- dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
- dingdingMsg.AppendLine($"拳探订单号:{order.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
- dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
- dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}");
- dingdingMsg.AppendLine();
- }
- }
-
- Task.Factory.StartNew(() => SendDingDing(dingdingMsg.ToString()), CancellationToken.None, TaskCreationOptions.None, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
- #endregion
- }
- #endregion
- }
- else
- {
- order.CalculationOrderState(fsql, out _, currentOrderSkuList, currentPurchaseOrderList);
+ Id = idGenerator.NewLong(),
+ CreateTime = DateTime.Now,
+ IsChecked = false,
+ OrderId = order.Id,
+ ShopId = order.ShopId,
+ OrderSn = order.OrderSn
+ });
}
if (order.OrderState != oldOrderState)
@@ -2747,6 +2675,8 @@ namespace BBWYB.Server.Business
}
if (insertTimeLimitTaskList.Count() > 0)
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows();
+ if (insertInStoreOrderCheckTaskList.Count() > 0)
+ fsql.Insert(insertInStoreOrderCheckTaskList).ExecuteAffrows();
});
#endregion
}
diff --git a/BBWYB.Server.Business/Vender/VenderBusiness.cs b/BBWYB.Server.Business/Vender/VenderBusiness.cs
index 1f55d66..a07ca3e 100644
--- a/BBWYB.Server.Business/Vender/VenderBusiness.cs
+++ b/BBWYB.Server.Business/Vender/VenderBusiness.cs
@@ -32,6 +32,13 @@ namespace BBWYB.Server.Business
.ToList();
}
+ public IList GetShopList(List shopIds)
+ {
+ return fsqlManager.MDSfsql.Select().Where(s => !string.IsNullOrEmpty(s.ShopId) &&
+ shopIds.Contains(s.ShopId))
+ .ToList();
+ }
+
public long SaveShopSetting(ShopSettingRequest shopSettingRequest)
{
diff --git a/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs b/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs
new file mode 100644
index 0000000..8bde073
--- /dev/null
+++ b/BBWYB.Server.Model/Db/Order/InStoreOrderCheckTask.cs
@@ -0,0 +1,29 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db
+{
+
+ [Table(Name = "instoreorderchecktask", DisableSyncStructure = true)]
+ public partial class InStoreOrderCheckTask
+ {
+
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
+
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+
+ public bool? IsChecked { get; set; } = false;
+
+ [Column(StringLength = 50)]
+ public string OrderId { get; set; }
+
+ [Column(StringLength = 50)]
+ public string OrderSn { get; set; }
+
+ public long? ShopId { get; set; }
+
+ }
+
+}
diff --git a/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs b/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
index 1a67e40..ecf27e7 100644
--- a/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
+++ b/BBWYB.Server.Model/Db/Order/InStorePurchaseOrdeRrelationInfo.cs
@@ -7,29 +7,29 @@ namespace BBWYB.Server.Model.Db
/// 入库采购单关系表
///
[Table(Name = "instorepurchaseorderrelationinfo", DisableSyncStructure = true)]
- public partial class InStorePurchaseOrdeRrelationInfo
+ public partial class InStorePurchaseOrdeRrelationInfo
{
- [Column(IsPrimary = true)]
- public long Id { get; set; }
+ [Column(IsPrimary = true)]
+ public long Id { get; set; }
- [Column(DbType = "datetime")]
- public DateTime? CreateTime { get; set; }
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
- [Column(StringLength = 100)]
- public string InStorePurchaseOrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string InStorePurchaseOrderId { get; set; }
- [Column(StringLength = 100)]
- public string OrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string OrderId { get; set; }
- [Column(StringLength = 100)]
- public string PurchaseOrderId { get; set; }
+ [Column(StringLength = 100)]
+ public string PurchaseOrderId { get; set; }
- public long? ShopId { get; set; }
+ public long? ShopId { get; set; }
- [Column(StringLength = 100)]
- public string WaybillNo { get; set; }
+ [Column(StringLength = 100)]
+ public string WaybillNo { get; set; }
- }
+ }
}
From fcdb0418673a0dc1d57374b9e27aae3962b48efa Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 8 Aug 2023 12:01:25 +0800
Subject: [PATCH 12/89] 1
---
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index ee612b7..d91f624 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -2611,7 +2611,8 @@ namespace BBWYB.Server.Business
if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 &&
state == "QianShou" &&
order.OrderState == Enums.OrderState.待验收 &&
- !inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
+ inStoreOrderCheckTaskList != null &&
+ !inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{
insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()
{
From 4cd538a36c2335fac23de8d1c0995825eefc2ced Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 8 Aug 2023 12:19:53 +0800
Subject: [PATCH 13/89] =?UTF-8?q?=E5=85=A5=E4=BB=93=E5=8D=95=E6=A3=80?=
=?UTF-8?q?=E6=B5=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/JD/JDBusiness.cs | 46 ++++++++++++++++++++++----
1 file changed, 39 insertions(+), 7 deletions(-)
diff --git a/BBWYB.Server.Business/JD/JDBusiness.cs b/BBWYB.Server.Business/JD/JDBusiness.cs
index 5b2f1ba..2bfe570 100644
--- a/BBWYB.Server.Business/JD/JDBusiness.cs
+++ b/BBWYB.Server.Business/JD/JDBusiness.cs
@@ -1,7 +1,9 @@
using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
+using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
+using FreeSql;
using JD.Dto;
using Newtonsoft.Json;
using System.Text;
@@ -62,7 +64,7 @@ namespace BBWYB.Server.Business.JD
public void CheckInStoreOrder()
{
List orderIds = null;
-
+ List> updateOrderList = new List>();
try
{
var checkTaskList = fsql.Select().Where(x => x.IsChecked == false).ToList();
@@ -131,14 +133,28 @@ namespace BBWYB.Server.Business.JD
}
else
{
+ bool validateResult = true;
foreach (var inStoreOrderRelation in inStoreOrderRelationList)
{
var jdInStore = inStoreResponse.Data.FirstOrDefault(x => x.poOrderNo == inStoreOrderRelation.InStorePurchaseOrderId);
- if (jdInStore == null || jdInStore.storageStatus == "2")
+ if (jdInStore != null && jdInStore.storageStatus == "2")
continue;
+
+ validateResult = false;
+
var opi = currentPurchaseOrderList.FirstOrDefault(opi => opi.PurchaseOrderId == inStoreOrderRelation.PurchaseOrderId);
- if (opi == null)
+
+ if (jdInStore == null)
+ {
+ dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
+ dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
+ dingdingMsg.AppendLine($"采购平台:{opi?.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi?.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
+ dingdingMsg.AppendLine($"未找到该入仓采购单号");
+ dingdingMsg.AppendLine();
continue;
+ }
var stateText = "";
switch (jdInStore.storageStatus)
@@ -156,12 +172,19 @@ namespace BBWYB.Server.Business.JD
dingdingMsg.AppendLine($"店铺名称:{shop?.ShopName}");
dingdingMsg.AppendLine($"拳探订单号:{checkTask.OrderSn}");
- dingdingMsg.AppendLine($"采购平台:{opi.PurchasePlatform}");
- dingdingMsg.AppendLine($"采购单号:{opi.PurchaseOrderId}");
+ dingdingMsg.AppendLine($"采购平台:{opi?.PurchasePlatform}");
+ dingdingMsg.AppendLine($"采购单号:{opi?.PurchaseOrderId}");
dingdingMsg.AppendLine($"入仓采购单号:{inStoreOrderRelation.InStorePurchaseOrderId}");
dingdingMsg.AppendLine($"入仓采购单状态:{jdInStore.storageStatus} {stateText}");
dingdingMsg.AppendLine();
}
+
+ if (validateResult)
+ {
+ var update = fsql.Update().Set(o => o.OrderState, Enums.OrderState.待核算)
+ .Where(o => o.Id == checkTask.OrderId && o.OrderState == Enums.OrderState.待验收);
+ updateOrderList.Add(update);
+ }
}
}
@@ -179,8 +202,17 @@ namespace BBWYB.Server.Business.JD
{
try
{
- if (orderIds != null && orderIds.Count() > 0)
- fsql.Update().Set(x => x.IsChecked, true).Where(x => orderIds.Contains(x.OrderId)).ExecuteAffrows();
+ fsql.Transaction(() =>
+ {
+ if (updateOrderList.Count() > 0)
+ {
+ foreach (var update in updateOrderList)
+ update.ExecuteAffrows();
+ }
+
+ if (orderIds != null && orderIds.Count() > 0)
+ fsql.Update().Set(x => x.IsChecked, true).Where(x => orderIds.Contains(x.OrderId)).ExecuteAffrows();
+ });
}
catch { }
}
From 5a9a28a2b84b95c479740f07620db1d7971a5d68 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Wed, 9 Aug 2023 13:24:48 +0800
Subject: [PATCH 14/89] 1
---
WebTest/GlobalContext.cs | 21 ++++++++++++++++++++
WebTest/MainWindow.xaml.cs | 10 +++++++++-
WebTest/ShellExecuteHelper.cs | 36 +++++++++++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 1 deletion(-)
create mode 100644 WebTest/ShellExecuteHelper.cs
diff --git a/WebTest/GlobalContext.cs b/WebTest/GlobalContext.cs
index dc18748..aa4c2e7 100644
--- a/WebTest/GlobalContext.cs
+++ b/WebTest/GlobalContext.cs
@@ -1,5 +1,7 @@
using Newtonsoft.Json;
+using System;
using System.Runtime.InteropServices;
+using System.Windows;
namespace WebTest
{
@@ -27,5 +29,24 @@ namespace WebTest
{
return "10123";
}
+
+ public void CallALiWangWang(string sellerLoginId)
+ {
+ var url = $"aliim:sendmsg?siteid=cnalichn&portalId=&gid=&itemsId=&touid=cnalichn{sellerLoginId}&status=1";
+ try
+ {
+ //Process.Start("explorer.exe", url);
+ ShellExecuteHelper.ShellExecute(IntPtr.Zero, "open", url, string.Empty, string.Empty, ShellExecuteHelper.ShowCommands.SW_SHOWNORMAL);
+ }
+ catch (Exception ex)
+ {
+ try
+ {
+ Clipboard.SetText(url);
+ }
+ catch { }
+ MessageBox.Show($"{ex.Message}\r\n唤醒旺旺失败,唤醒链接已复制到剪切板,请手动打开浏览器唤醒", "提示");
+ }
+ }
}
}
\ No newline at end of file
diff --git a/WebTest/MainWindow.xaml.cs b/WebTest/MainWindow.xaml.cs
index 05a29e6..1653a5c 100644
--- a/WebTest/MainWindow.xaml.cs
+++ b/WebTest/MainWindow.xaml.cs
@@ -26,6 +26,14 @@ namespace WebTest
private MdsApiService mdsApiService;
private ShopService shopService;
+#if DEBUG
+private string registerName = "webTestContext";
+#else
+private string registerName = "webContext";
+#endif
+
+
+
public MainWindow()
{
InitializeComponent();
@@ -87,7 +95,7 @@ namespace WebTest
if (args.PermissionKind == CoreWebView2PermissionKind.ClipboardRead)
args.State = CoreWebView2PermissionState.Allow;
};
- w2m.wb2.CoreWebView2.AddHostObjectToScript("webTestContext", this.globalContext);
+ w2m.wb2.CoreWebView2.AddHostObjectToScript(registerName, this.globalContext);
};
w2m.Init();
diff --git a/WebTest/ShellExecuteHelper.cs b/WebTest/ShellExecuteHelper.cs
new file mode 100644
index 0000000..5562daa
--- /dev/null
+++ b/WebTest/ShellExecuteHelper.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace WebTest
+{
+ public class ShellExecuteHelper
+ {
+ public enum ShowCommands : int
+ {
+ SW_HIDE = 0,
+ SW_SHOWNORMAL = 1,
+ SW_NORMAL = 1,
+ SW_SHOWMINIMIZED = 2,
+ SW_SHOWMAXIMIZED = 3,
+ SW_MAXIMIZE = 3,
+ SW_SHOWNOACTIVATE = 4,
+ SW_SHOW = 5,
+ SW_MINIMIZE = 6,
+ SW_SHOWMINNOACTIVE = 7,
+ SW_SHOWNA = 8,
+ SW_RESTORE = 9,
+ SW_SHOWDEFAULT = 10,
+ SW_FORCEMINIMIZE = 11,
+ SW_MAX = 11
+ }
+
+ [DllImport("shell32.dll")]
+ public static extern IntPtr ShellExecute(
+ IntPtr hwnd,
+ string lpOperation,
+ string lpFile,
+ string lpParameters,
+ string lpDirectory,
+ ShowCommands nShowCmd);
+ }
+}
From d2b90f1c69b83216e683b510288952cd477b92b4 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 9 Aug 2023 23:22:57 +0800
Subject: [PATCH 15/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=95=86=E5=93=81=E8=A1=A8=E5=A2=9E=E5=8A=A0PurchaserId?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Db/PurchaseScheme/Purchaseschemeproduct.cs | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproduct.cs b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproduct.cs
index d0733e3..1810917 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproduct.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproduct.cs
@@ -44,6 +44,12 @@ namespace BBWYB.Server.Model.Db
///
public long SkuPurchaseSchemeId { get; set; }
+ ///
+ /// 采购商Id
+ ///
+ [Column(StringLength = 20)]
+ public string PurchaserId { get; set; }
+
[Column(IsIgnore = true)]
public List PurchaseSchemeProductSkuList { get; set; }
From 628e502ecc35239697885df6ddf21057a45d1ff3 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 11 Aug 2023 01:08:31 +0800
Subject: [PATCH 16/89] =?UTF-8?q?1.=E7=BC=96=E8=BE=91/=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E6=8E=A5=E5=8F=A3=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E5=A4=9A=E5=95=86=E5=AE=B6=202.=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E5=A4=9A=E5=95=86=E5=AE=B6=EF=BC=8C=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E5=95=86=E5=93=81=E5=B1=82=E5=A2=9E=E5=8A=A0=E5=95=86=E5=AE=B6?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=B1=82=E5=A2=9E=E5=8A=A0=E5=95=86=E5=AE=B6=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=203.=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=88=B7=E6=96=B0=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E5=A4=9A?=
=?UTF-8?q?=E5=95=86=E5=AE=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 2 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 196 ++++++++++--------
BBWYB.Server.Model/BBWYB.Server.Model.csproj | 4 +
.../Db/PurchaseScheme/PurchaseScheme.cs | 14 +-
.../InputPurchaseSchemeProductRequest.cs | 30 ++-
.../InputPurchaseSchemeRequest.cs | 32 +--
.../PurchaseScheme/QuerySchemeRequest.cs | 16 +-
.../PurchaseSchemeProductResponse.cs | 8 +
.../PurchaseScheme/PurchaseSchemeResponse.cs | 9 +-
9 files changed, 187 insertions(+), 124 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 8e519e6..673114c 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -28,7 +28,7 @@ namespace BBWYB.Server.API.Controllers
}
///
- /// 查询采购方案列表
+ /// 获取采购方案列表 (不含采购配配件基本信息)
///
///
///
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 2347173..c0a5923 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -20,35 +20,45 @@ namespace BBWYB.Server.Business
private void ExtractNewPurchaser(IList purchaserSchemeList, IList addPurchaserList) where T : InputPurchaseSchemeRequest
{
- var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
+ List reqeustPurchaserIdList = new List();
+ foreach (var scheme in purchaserSchemeList)
+ reqeustPurchaserIdList.AddRange(scheme.PurchaseSchemeProductList.Select(p => p.PurchaserId));
+ reqeustPurchaserIdList = reqeustPurchaserIdList.Distinct().ToList();
+
+ //var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
var existPurchaserIdList = fsql.Select().Where(p => reqeustPurchaserIdList.Contains(p.Id)).ToList(p => p.Id);
var newPurchaserIdList = reqeustPurchaserIdList.Except(existPurchaserIdList);
foreach (var scheme in purchaserSchemeList)
{
- if (newPurchaserIdList.Any(p => p == scheme.PurchaserId) && !addPurchaserList.Any(p => p.Id == scheme.PurchaserId))
+ foreach (var ps in scheme.PurchaseSchemeProductList)
{
- addPurchaserList.Add(new Purchaser()
+ if (newPurchaserIdList.Any(p => p == ps.PurchaserId) && !addPurchaserList.Any(p => p.Id == ps.PurchaserId))
{
- Id = scheme.PurchaserId,
- Id2 = scheme.PurchaserId2,
- Name = scheme.PurchaserName,
- Location = scheme.PurchaserLocation,
- Platform = scheme.PurchasePlatform
- });
+ addPurchaserList.Add(new Purchaser()
+ {
+ Id = ps.PurchaserId,
+ Id2 = ps.PurchaserId2,
+ Name = ps.PurchaserName,
+ Location = ps.PurchaserLocation,
+ Platform = scheme.PurchasePlatform
+ });
+ }
}
+
}
}
public void EditPurchaseScheme(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 && batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
+ batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
throw new BusinessException("非法参数");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
List addPurchaseSchemeList = null;
@@ -138,48 +148,49 @@ namespace BBWYB.Server.Business
}
///
- /// 获取采购方案
+ /// 获取采购方案(不含采购配配件基本信息)
///
///
///
public IList GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
{
- var select = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id);
+ var select = fsql.Select();
if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
- select = select.Where((ps, p) => ps.Id == querySchemeRequest.SchemeId);
+ select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
- select = select.Where((ps, p) => querySchemeRequest.SchemeIdList.Contains(ps.Id));
+ select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
else
{
- select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, (ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, (ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .WhereIf(!string.IsNullOrEmpty(querySchemeRequest.PurchaserId), (ps, p) => ps.PurchaserId == querySchemeRequest.PurchaserId)
- .WhereIf(querySchemeRequest.PurchasePlatform != null, (ps, p) => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
+ select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, ps => ps.ShopId == querySchemeRequest.ShopId)
+ .WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, ps => querySchemeRequest.SkuIdList.Contains(ps.SkuId));
+ //.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
- var purchaseSchemeList = select.ToList((ps, p) => new PurchaseSchemeResponse
- {
- Id = ps.Id,
- ProductId = ps.ProductId,
- SkuId = ps.SkuId,
- ShopId = ps.ShopId,
- PurchaserId = p.Id,
- PurchaserId2 = p.Id2,
- PurchaserName = p.Name,
- PurchaserLocation = p.Location,
- DefaultCost = ps.DefaultCost,
- RealCost = ps.RealCost,
- CreateTime = ps.CreateTime,
- PurchasePlatform = ps.PurchasePlatform,
- LastPurchaseTime = ps.LastPurchaseTime
- });
+ var purchaseSchemeList = select.ToList();
+
if (purchaseSchemeList.Count > 0)
{
var purchaseSchemeIdList = purchaseSchemeList.Select(p => p.Id).ToList();
- var purchaseSchemeProductList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
- .ToList().Map>();
+ var purchaseSchemeProductList = fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .Where((psp, p) => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
+ .ToList((psp, p) => new PurchaseSchemeProductResponse
+ {
+ CreateTime = psp.CreateTime,
+ Id = psp.Id,
+ ProductId = psp.ProductId,
+ PurchaseProductId = psp.PurchaseProductId,
+ PurchaseUrl = psp.PurchaseUrl,
+ SkuId = psp.SkuId,
+ SkuPurchaseSchemeId = psp.SkuPurchaseSchemeId,
+ PurchaserId = p.Id,
+ PurchaserId2 = p.Id2,
+ PurchaserLocation = p.Location,
+ PurchaserName = p.Name,
+ PurchasePlatform = p.Platform,
+ });
var purchaseSchemeProductSkuList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
.ToList().Map>();
@@ -198,6 +209,23 @@ namespace BBWYB.Server.Business
schemeProduct.PurchaseSchemeProductSkuList.AddRange(schemeProductSkuList);
}
}
+
+ #region 封装采购商
+ foreach (var schemeProduct in schemeProductList)
+ {
+ if (!scheme.PurchaserList.Any(p => p.Id == schemeProduct.PurchaserId))
+ {
+ scheme.PurchaserList.Add(new Purchaser()
+ {
+ Id = schemeProduct.PurchaserId,
+ Id2 = schemeProduct.PurchaserId2,
+ Location = schemeProduct.PurchaserLocation,
+ Name = schemeProduct.PurchaserName,
+ Platform = schemeProduct.PurchasePlatform
+ });
+ }
+ }
+ #endregion
}
}
return purchaseSchemeList;
@@ -212,29 +240,33 @@ namespace BBWYB.Server.Business
List> updatePurchaseSchemeList = new List>();
foreach (var purchaseScheme in purchaseSchemeList)
{
- var purchaseProductIds = purchaseScheme.PurchaseSchemeProductList.Select(p => p.PurchaseProductId).ToArray();
- var purchaseSkuIds = new List();
- foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ var amount = 0M;
+ var purchasePlatformGroups = purchaseScheme.PurchaseSchemeProductList.GroupBy(p => p.PurchasePlatform);
+ foreach (var purchasePlatformGroup in purchasePlatformGroups)
{
- purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
- }
-
- var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
- {
- FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
- PriceMode = Enums.PurchaseOrderMode.批发,
- Params = new List()
+ var purchaseProductIds = purchasePlatformGroup.Select(p => p.PurchaseProductId).ToArray();
+ var purchaseSkuIds = new List();
+ foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ {
+ purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
+ }
+ var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
+ {
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ Params = new List()
{
new BatchPurchaseSkuBasicInfoParamRequest()
{
- Platform = purchaseScheme.PurchasePlatform,
+ Platform = purchasePlatformGroup.Key.Value,
PurchaseProductIds = purchaseProductIds,
PurchaseSkuIds = purchaseSkuIds
}
}
- });
+ });
+ amount += purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
+ }
- var amount = purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
if (purchaseScheme.DefaultCost != amount)
{
purchaseScheme.DefaultCost = amount;
@@ -255,34 +287,34 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
- ///
- /// 获取共同拥有的采购商
- ///
- ///
- ///
- public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
- {
- var skuCount = querySchemeRequest.SkuIdList.Count();
-
- var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
- .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .ToList();
- if (purchaseSchemeList.Count() == 0)
- return null;
-
- var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
- var sharePurchaserIdList = new List();
- foreach (var g in group)
- {
- if (g.Count() == skuCount)
- sharePurchaserIdList.Add(g.Key);
- }
- if (sharePurchaserIdList.Count == 0)
- return null;
-
- return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
- }
+ /////
+ ///// 获取共同拥有的采购商
+ /////
+ /////
+ /////
+ //public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
+ //{
+ // var skuCount = querySchemeRequest.SkuIdList.Count();
+
+ // var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
+ // .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
+ // .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
+ // .ToList();
+ // if (purchaseSchemeList.Count() == 0)
+ // return null;
+
+ // var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
+ // var sharePurchaserIdList = new List();
+ // foreach (var g in group)
+ // {
+ // if (g.Count() == skuCount)
+ // sharePurchaserIdList.Add(g.Key);
+ // }
+ // if (sharePurchaserIdList.Count == 0)
+ // return null;
+
+ // return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
+ //}
public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
{
diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
index a408f32..54ecedd 100644
--- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj
+++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
@@ -12,4 +12,8 @@
+
+
+
+
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index be1d49c..356d97b 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -29,11 +29,11 @@ namespace BBWYB.Server.Model
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
- ///
- /// 采购商Id
- ///
- [Column(StringLength = 20)]
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //[Column(StringLength = 20)]
+ //public string PurchaserId { get; set; }
///
/// 采购实际成本
@@ -51,8 +51,8 @@ namespace BBWYB.Server.Model
///
public DateTime? LastPurchaseTime { get; set; }
- [Column(MapType = typeof(int), DbType = "int(1)")]
- public Enums.Platform PurchasePlatform { get; set; }
+ //[Column(MapType = typeof(int), DbType = "int(1)")]
+ //public Enums.Platform PurchasePlatform { get; set; }
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
index 3ffb384..b97b8da 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace BBWYB.Server.Model.Dto
+namespace BBWYB.Server.Model.Dto
{
public class InputPurchaseSchemeProductRequest
{
@@ -11,17 +7,37 @@ namespace BBWYB.Server.Model.Dto
///
public string ProductId { get; set; }
///
- /// 店铺商品Skull
+ /// 店铺商品SkuId
///
public string SkuId { get; set; }
///
- /// 采购商品id
+ /// 采购商品Id
///
public string PurchaseProductId { get; set; }
///
/// 采购链接
///
public string PurchaseUrl { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId2 { get; set; }
+
+ ///
+ /// 采购商名称
+ ///
+ public string PurchaserName { get; set; }
+ ///
+ /// 采购商发货地
+ ///
+ public string PurchaserLocation { get; set; }
+
public IList PurchaseSchemeProductSkuList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index fda1121..b89d7e4 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -15,24 +15,24 @@ namespace BBWYB.Server.Model.Dto
/// 采购实际成本
///
public decimal? RealCost { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId2 { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId2 { get; set; }
- ///
- /// 采购商名称
- ///
- public string PurchaserName { get; set; }
- ///
- /// 采购商发货地
- ///
- public string PurchaserLocation { get; set; }
+ /////
+ ///// 采购商名称
+ /////
+ //public string PurchaserName { get; set; }
+ /////
+ ///// 采购商发货地
+ /////
+ //public string PurchaserLocation { get; set; }
///
/// 采购平台
///
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 59e2088..8924508 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
- ///
- /// 采购商Id, 可空
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id, 可空
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购平台
- ///
- public Enums.Platform? PurchasePlatform { get; set; }
+ /////
+ ///// 采购平台
+ /////
+ //public Enums.Platform? PurchasePlatform { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 0123956..288e9f2 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -6,6 +6,14 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{
+ public string PurchaserName { get; set; }
+
+ public string PurchaserId2 { get; set; }
+
+ public string PurchaserLocation { get; set; }
+
+ public Enums.Platform? PurchasePlatform { get; set; }
+
public new List PurchaseSchemeProductSkuList { get; set; }
public PurchaseSchemeProductResponse()
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
index f322e0a..e1c617b 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
@@ -6,17 +6,20 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeResponse : PurchaseScheme
{
- public string PurchaserName { get; set; }
+ //public string PurchaserName { get; set; }
- public string PurchaserId2 { get; set; }
+ //public string PurchaserId2 { get; set; }
- public string PurchaserLocation { get; set; }
+ //public string PurchaserLocation { get; set; }
public new List PurchaseSchemeProductList { get; set; }
+ public List PurchaserList { get; set; }
+
public PurchaseSchemeResponse()
{
PurchaseSchemeProductList = new List();
+ PurchaserList = new List();
}
}
}
From 5e5e6e0db44bcf68f3eb71b7134e25296adfb305 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 11 Aug 2023 10:37:52 +0800
Subject: [PATCH 17/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=A5=E5=BA=93?=
=?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/JD/JDBusiness.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BBWYB.Server.Business/JD/JDBusiness.cs b/BBWYB.Server.Business/JD/JDBusiness.cs
index 2bfe570..a6389aa 100644
--- a/BBWYB.Server.Business/JD/JDBusiness.cs
+++ b/BBWYB.Server.Business/JD/JDBusiness.cs
@@ -71,7 +71,7 @@ namespace BBWYB.Server.Business.JD
if (checkTaskList.Count() == 0)
return;
orderIds = checkTaskList.Select(x => x.OrderId).ToList();
- var orderPurchaseInfoList = fsql.Select().Where(opi => orderIds.Contains(opi.PurchaseOrderId) && opi.IsEnabled == true).ToList();
+ var orderPurchaseInfoList = fsql.Select().Where(opi => orderIds.Contains(opi.OrderId) && opi.IsEnabled == true).ToList();
var waitCheckInStoreOrderList = fsql.Select()
.InnerJoin((io, o) => io.OrderId == o.Id)
From e8a83a3b9102cc58e898a00e7c4fd97182849947 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Fri, 11 Aug 2023 10:48:55 +0800
Subject: [PATCH 18/89] =?UTF-8?q?=E5=AE=9A=E4=B9=89=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E9=85=8D=E4=BB=B6=E6=AF=94=E4=BE=8B=E8=AF=B7=E6=B1=82=E5=AF=B9?=
=?UTF-8?q?=E8=B1=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Db/PurchaseScheme/Purchaseschemeproductsku.cs | 6 ++++++
.../PurchaseScheme/EditPurchaseRatioRequest.cs | 11 +++++++++++
2 files changed, 17 insertions(+)
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
index 4a9e837..af819ee 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
@@ -46,6 +46,12 @@ namespace BBWYB.Server.Model.Db
///
public long SkuPurchaseSchemeId { get; set; }
+ ///
+ /// 采购比例
+ ///
+ [Column(DbType = "int(1)", IsNullable = true)]
+ public int? PurchaseRatio { get; set; }
+
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
new file mode 100644
index 0000000..2e09843
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -0,0 +1,11 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class EditPurchaseRatioRequest
+ {
+ public long SchemeId { get; set; }
+
+ public string SkuId { get; set; }
+
+ public string PurchaseSkuId { get; set; }
+ }
+}
From 1f2f43b981c5d48e52371d56dd3206f8e0b23364 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 01:32:50 +0800
Subject: [PATCH 19/89] 1
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 58 ++++++++++++-------
1 file changed, 37 insertions(+), 21 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index d91f624..3bee9f6 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -36,6 +36,7 @@ namespace BBWYB.Server.Business
private Lazy jdBusinessLazy;
private Lazy opPlatformClientFactoryLazy;
private Lazy venderBusinessLazy;
+ private Lazy purchaseSchemeBusinessLazy;
private PP_PlatformClientFactory ppPlatformClientFactory => pplatformClientFactoryLazy.Value;
private TaskSchedulerManager taskSchedulerManager => taskSchedulerManagerLazy.Value;
@@ -50,6 +51,8 @@ namespace BBWYB.Server.Business
private JDBusiness jdBusiness => jdBusinessLazy.Value;
+ private PurchaseSchemeBusiness purchaseSchemeBusiness => purchaseSchemeBusinessLazy.Value;
+
private IList cantPurchaseOrderStateList;
public PurchaseOrderBusiness(IFreeSql fsql,
@@ -68,6 +71,7 @@ namespace BBWYB.Server.Business
jdBusinessLazy = new Lazy(() => serviceProvider.GetService());
opPlatformClientFactoryLazy = new Lazy(() => serviceProvider.GetService());
venderBusinessLazy = new Lazy(() => serviceProvider.GetService());
+ purchaseSchemeBusinessLazy = new Lazy(() => serviceProvider.GetService());
cantPurchaseOrderStateList = new List()
{
Enums.OrderState.已取消,
@@ -1113,6 +1117,10 @@ namespace BBWYB.Server.Business
if (request.PurchasePlatform != Enums.Platform.阿里巴巴)
return null;
+ var order = fsql.Select(request.OrderId).ToOne();
+ if (order == null)
+ throw new BusinessException("订单不存在");
+
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
@@ -1143,24 +1151,34 @@ namespace BBWYB.Server.Business
#region 查询订单sku所有采购方案
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
- var purchaseSchemeSkuList = fsql.Select()
- .InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
- .InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
- .Where((p, ps, pss) => p.Id == purchaserId)
- .Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴)
- .Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
- .ToList((p, ps, pss) => new
- {
- pss.Id,
- pss.SkuId,
- pss.ProductId,
- pss.PurchaseProductId,
- pss.PurchaseSkuId,
- pss.PurchaseSkuSpecId,
- pss.SkuPurchaseSchemeId
- });
- if (purchaseSchemeSkuList.Count() == 0)
- throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
+
+
+ //var purchaseSchemeSkuList = fsql.Select()
+ // .InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
+ // .InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
+ // .Where((p, ps, pss) => p.Id == purchaserId)
+ // .Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴)
+ // .Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
+ // .ToList((p, ps, pss) => new
+ // {
+ // pss.Id,
+ // pss.SkuId,
+ // pss.ProductId,
+ // pss.PurchaseProductId,
+ // pss.PurchaseSkuId,
+ // pss.PurchaseSkuSpecId,
+ // pss.SkuPurchaseSchemeId
+ // });
+ //if (purchaseSchemeSkuList.Count() == 0)
+ // throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
+
+ var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ ShopId = order.ShopId,
+ SkuIdList = skuIds
+ });
+ if (purchaseSchemeList.Count() == 0)
+ throw new BusinessException("未匹配到采购方案");
#endregion
#region 匹配采购单所使用到的采购方案
@@ -1199,8 +1217,6 @@ namespace BBWYB.Server.Business
{
var currentPurchaseSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
.Sum(p => p.ProductAmount);
- //var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
- // .Sum(p => p.Quantity);
var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
.Sum(p => p.Quantity);
@@ -2611,7 +2627,7 @@ namespace BBWYB.Server.Business
if (order.IntoStoreType == Enums.IntoStoreType.厂商代发入仓 &&
state == "QianShou" &&
order.OrderState == Enums.OrderState.待验收 &&
- inStoreOrderCheckTaskList != null &&
+ inStoreOrderCheckTaskList != null &&
!inStoreOrderCheckTaskList.Any(x => x.OrderId == order.Id))
{
insertInStoreOrderCheckTaskList.Add(new InStoreOrderCheckTask()
From ba1c2d978ccf7086308c33a65b0c691240368f3a Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 02:15:11 +0800
Subject: [PATCH 20/89] =?UTF-8?q?=E5=8C=B9=E9=85=8D=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=9C=AA=E5=AE=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 45 +++++++++++++------
1 file changed, 31 insertions(+), 14 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 3bee9f6..a4eed99 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -1182,25 +1182,42 @@ namespace BBWYB.Server.Business
#endregion
#region 匹配采购单所使用到的采购方案
- var assocationOrderCostDetailList = new List();
- var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
var cargoParamList = new List();
- foreach (var schemeGroup in purchaseSchemeGroups)
+ foreach (var scheme in purchaseSchemeList)
{
- var schemePurchaseSkuList = schemeGroup.ToList();
- if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
+ var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
+ if (samePurchaserProductList.Count() == 0)
continue;
- cargoParamList.AddRange(schemePurchaseSkuList.Select(x => new CargoParamRequest()
- {
- BelongSkuId = x.SkuId,
- ProductId = x.PurchaseProductId,
- SkuId = x.PurchaseSkuId,
- Quantity = dbOrderSkuList.FirstOrDefault(s => s.SkuId == x.SkuId)?.ItemTotal ?? 1,
- SchemeId = x.SkuPurchaseSchemeId,
- SpecId = x.PurchaseSkuSpecId
- }));
+ foreach (var schemeProduct in samePurchaserProductList)
+ {
+
+ }
}
+ if (cargoParamList.Count() == 0)
+ throw new BusinessException("未匹配到采购方案");
+
+
+ var assocationOrderCostDetailList = new List();
+
+ //var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
+
+ //foreach (var schemeGroup in purchaseSchemeGroups)
+ //{
+ // var schemePurchaseSkuList = schemeGroup.ToList();
+ // if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
+ // continue;
+ // cargoParamList.AddRange(schemePurchaseSkuList.Select(x => new CargoParamRequest()
+ // {
+ // BelongSkuId = x.SkuId,
+ // ProductId = x.PurchaseProductId,
+ // SkuId = x.PurchaseSkuId,
+ // Quantity = dbOrderSkuList.FirstOrDefault(s => s.SkuId == x.SkuId)?.ItemTotal ?? 1,
+ // SchemeId = x.SkuPurchaseSchemeId,
+ // SpecId = x.PurchaseSkuSpecId
+ // }));
+ //}
+
var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
foreach (var belongSkuGroup in belongSkuGroups)
From 85f762c8efc264e5629642b78919c8d25599e277 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 12 Aug 2023 16:30:11 +0800
Subject: [PATCH 21/89] =?UTF-8?q?=E5=85=B3=E8=81=94=E9=A2=84=E8=A7=88?=
=?UTF-8?q?=EF=BC=8C=E5=85=B3=E8=81=94=E9=87=87=E8=B4=AD=E6=94=AF=E6=8C=81?=
=?UTF-8?q?=E5=8C=B9=E9=85=8D=E5=A4=9A=E9=87=87=E8=B4=AD=E5=95=86=E7=9A=84?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/DataRepairController.cs | 9 -
.../Controllers/PurchaseSchemeController.cs | 38 ++--
.../DataRepair/DataRepairBusiness.cs | 67 ------
.../PurchaseOrder/PurchaseOrderBusiness.cs | 198 +++++++++---------
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 22 +-
5 files changed, 131 insertions(+), 203 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index c741111..9c2bdbe 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -25,15 +25,6 @@ namespace BBWYB.Server.API.Controllers
dataRepairBusiness.SubscribeKD100(waybillNo, targetCompanyCode);
}
- ///
- /// 修复采购商信息
- ///
- [HttpPost]
- public void SupplementPurchaserInfo()
- {
- dataRepairBusiness.SupplementPurchaserInfo();
- }
-
///
/// 修复订单Sku成本
///
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 673114c..1244ca6 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -38,15 +38,15 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
- ///
- /// 删除采购商
- ///
- ///
- [HttpDelete]
- public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
- {
- purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
- }
+ /////
+ ///// 删除采购商
+ /////
+ /////
+ //[HttpDelete]
+ //public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
+ //{
+ // purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
+ //}
///
/// 删除采购方案
@@ -58,16 +58,16 @@ namespace BBWYB.Server.API.Controllers
purchaseSchemeBusiness.DeletePurchaseScheme(schemeId);
}
- ///
- /// 查询共有采购商
- ///
- ///
- ///
- [HttpPost]
- public IList GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
- {
- return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
- }
+ /////
+ ///// 查询共有采购商
+ /////
+ /////
+ /////
+ //[HttpPost]
+ //public IList GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
+ //{
+ // return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
+ //}
///
/// 查询采购方案中采购Sku的基本信息
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index f70c444..dcf2821 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -38,73 +38,6 @@ namespace BBWYB.Server.Business
purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false);
}
- public void SupplementPurchaserInfo()
- {
- var purlList = fsql.Select()
- .InnerJoin((psp, ps, p) => psp.SkuPurchaseSchemeId == ps.Id)
- .InnerJoin((psp, ps, p) => ps.PurchaserId == p.Id)
- .Where((psp, ps, p) => ps.PurchasePlatform == Enums.Platform.阿里巴巴 && string.IsNullOrEmpty(p.Id2))
- .ToList((psp, ps, p) => new
- {
- //psp.PurchaseUrl,
- psp.PurchaseProductId,
- p.Id
- });
- var groups = purlList.GroupBy(p => p.Id);
- Console.WriteLine(groups.Count());
- IList> updatePurchaserList = new List>();
- int i = 1;
- foreach (var group in groups)
- {
- var purchaseId = group.Key;
- var productId = group.Max(p => p.PurchaseProductId);
- Thread.Sleep(1000);
- Console.WriteLine();
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine($"index {i}");
- Console.ResetColor();
- Console.WriteLine();
- var response = purchaseSchemeBusiness.GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
- {
- FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
- Platform = Enums.Platform.阿里巴巴,
- PriceMode = Enums.PurchaseOrderMode.批发,
- PurchaseProductId = productId
- });
- if (!string.IsNullOrEmpty(response?.Purchaser?.Id2))
- {
- if (response.Purchaser.Id2.Length > 20)
- Console.WriteLine(response.Purchaser.Id2);
- var update = fsql.Update(purchaseId).Set(p => p.Id2, response.Purchaser.Id2);
- updatePurchaserList.Add(update);
- }
- i++;
-
- if (updatePurchaserList.Count >= 10)
- {
- fsql.Transaction(() =>
- {
- foreach (var update in updatePurchaserList)
- update.ExecuteAffrows();
- });
- updatePurchaserList.Clear();
- Console.WriteLine();
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("更新数据库更新");
- Console.ResetColor();
- Console.WriteLine();
- }
- }
-
- if (updatePurchaserList.Count() > 0)
- {
- fsql.Transaction(() =>
- {
- foreach (var update in updatePurchaserList)
- update.ExecuteAffrows();
- });
- }
- }
public void SupplementOrderSkuCost()
{
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index a4eed99..a83adf7 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -749,12 +749,13 @@ namespace BBWYB.Server.Business
{
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
{
- #region 补齐采购SKU
+ #region 补齐采购SKU和采购关系
var purchaseAccount = dbPurchaseAccountList.FirstOrDefault(pa => pa.Id == purchaseOrder.PurchaseAccountId ||
pa.AccountName == purchaseOrder.PurchaseAccountName);
if (purchaseAccount == null)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId}缺少有效的采购账号");
+ #region 查询1688采购单
var client = ppPlatformClientFactory.GetClient((AdapterEnums.PlatformType)purchaseOrder.PurchasePlatform);
var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
{
@@ -763,6 +764,7 @@ namespace BBWYB.Server.Business
AppToken = purchaseAccount.AppToken,
OrderId = purchaseOrder.PurchaseOrderId
});
+ #endregion
#region 处理采购商Id
var purchaserId = purchaseOrderSimpleInfo.PurchaserId;
@@ -782,58 +784,29 @@ namespace BBWYB.Server.Business
#region 匹配采购方案
var skuIds = purchaseOrder.AssocationOrderCostDetailList.Select(ocd => ocd.SkuId).ToList();
- var purchaseSchemeSkuList = fsql.Select()
- .InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
- .InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
- .Where((p, ps, pss) => p.Id == purchaserId)
- .Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴)
- .Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
- .ToList((p, ps, pss) => new
- {
- pss.Id,
- pss.SkuId,
- pss.ProductId,
- pss.PurchaseProductId,
- pss.PurchaseSkuId,
- pss.PurchaseSkuSpecId,
- pss.SkuPurchaseSchemeId
- });
- if (purchaseSchemeSkuList.Count() == 0)
- throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
- #endregion
-
-
- foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
+ var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
- var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo()
- {
- Id = purchaseOrderSku.OrderSkuId,
- CreateTime = DateTime.Now,
- OrderId = request.OrderId,
- PurchaseOrderId = purchaseOrder.PurchaseOrderId,
- PurchaseProductId = purchaseOrderSku.ProductId,
- PurchaseSkuId = purchaseOrderSku.SkuId,
- ShopId = request.ShopId
- };
- insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo);
- }
+ ShopId = dbOrder.ShopId,
+ SkuIdList = skuIds
+ });
+ if (purchaseSchemeList.Count() == 0)
+ throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
#endregion
#region 补齐采购关系
foreach (var assOrderCostDetail in purchaseOrder.AssocationOrderCostDetailList)
{
- var currentPurchaseSchemeSkuList = purchaseSchemeSkuList.Where(x => x.SkuId == assOrderCostDetail.SkuId).ToList();
- if (currentPurchaseSchemeSkuList == null || currentPurchaseSchemeSkuList.Count() == 0)
+ var matchResultList = MatchPurchaseScheme(assOrderCostDetail.SkuId,
+ assOrderCostDetail.PurchaseQuantity,
+ purchaserId,
+ purchaseSchemeList,
+ purchaseOrderSimpleInfo);
+ if (matchResultList.Count() == 0)
throw new BusinessException($"采购单{purchaseOrder.PurchaseOrderId} 采购商Id {purchaserId} Sku{assOrderCostDetail.SkuId}缺少采购方案");
- var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
- foreach (var currentPurchaseSchemeSku in currentPurchaseSchemeSkuList)
+ foreach (var cargoParam in matchResultList)
{
- var purchaseSkuFromApi = purchaseOrderSimpleInfo.ItemList.FirstOrDefault(x => x.SkuId == currentPurchaseSchemeSku.PurchaseSkuId);
- if (purchaseSkuFromApi == null)
- {
- throw new BusinessException($"Sku{assOrderCostDetail.SkuId}使用了采购方案{currentPurchaseSchemeSku.SkuPurchaseSchemeId}下的采购Sku{currentPurchaseSchemeSku.PurchaseSkuId},而且在采购单{purchaseOrder.PurchaseOrderId}的商品明细中没有找到该采购sku");
- }
+ var dbOrderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == assOrderCostDetail.SkuId);
var orderPurchaseRelationInfo = new OrderPurchaseRelationInfo()
{
Id = idGenerator.NewLong(),
@@ -841,16 +814,37 @@ namespace BBWYB.Server.Business
CreateTime = DateTime.Now,
OrderId = assOrderCostDetail.OrderId,
PurchaseOrderId = purchaseOrder.PurchaseOrderId,
- PurchaseSkuId = currentPurchaseSchemeSku.PurchaseSkuId,
- PurchaseProductId = currentPurchaseSchemeSku.PurchaseProductId,
- PurchaseSpecId = currentPurchaseSchemeSku.PurchaseSkuSpecId,
- SchemeId = currentPurchaseSchemeSku.SkuPurchaseSchemeId,
+ PurchaseSkuId = cargoParam.SkuId,
+ PurchaseProductId = cargoParam.ProductId,
+ PurchaseSpecId = cargoParam.SpecId,
+ SchemeId = cargoParam.SchemeId,
Quantity = assOrderCostDetail.PurchaseQuantity,
SourceSkuId = dbOrderSku.BelongSkuId
};
insertOrderPurchaseRelationInfoList.Add(orderPurchaseRelationInfo);
+
}
}
+
+ #region 补齐采购SKU
+ foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
+ {
+ var orderPurchaseSkuInfo = new OrderPurchaseSkuInfo()
+ {
+ Id = purchaseOrderSku.OrderSkuId,
+ CreateTime = DateTime.Now,
+ OrderId = request.OrderId,
+ PurchaseOrderId = purchaseOrder.PurchaseOrderId,
+ PurchaseProductId = purchaseOrderSku.ProductId,
+ PurchaseSkuId = purchaseOrderSku.SkuId,
+ ShopId = request.ShopId
+ };
+ insertOrderPurchaseSkuInfoList.Add(orderPurchaseSkuInfo);
+ }
+ #endregion
+
+ #endregion
+
#endregion
}
@@ -1151,27 +1145,6 @@ namespace BBWYB.Server.Business
#region 查询订单sku所有采购方案
var skuIds = dbOrderSkuList.Select(osku => osku.SkuId).ToList();
-
-
- //var purchaseSchemeSkuList = fsql.Select()
- // .InnerJoin((p, ps, pss) => p.Id == ps.PurchaserId)
- // .InnerJoin((p, ps, pss) => ps.Id == pss.SkuPurchaseSchemeId)
- // .Where((p, ps, pss) => p.Id == purchaserId)
- // .Where((p, ps, pss) => ps.PurchasePlatform == Enums.Platform.阿里巴巴)
- // .Where((p, ps, pss) => skuIds.Contains(pss.SkuId))
- // .ToList((p, ps, pss) => new
- // {
- // pss.Id,
- // pss.SkuId,
- // pss.ProductId,
- // pss.PurchaseProductId,
- // pss.PurchaseSkuId,
- // pss.PurchaseSkuSpecId,
- // pss.SkuPurchaseSchemeId
- // });
- //if (purchaseSchemeSkuList.Count() == 0)
- // throw new BusinessException($"采购单{request.PurchaseOrderId} 采购商Id{purchaserId} 未匹配到采购方案");
-
var purchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
ShopId = order.ShopId,
@@ -1183,41 +1156,17 @@ namespace BBWYB.Server.Business
#region 匹配采购单所使用到的采购方案
var cargoParamList = new List();
- foreach (var scheme in purchaseSchemeList)
+ foreach (var orderSku in dbOrderSkuList)
{
- var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
- if (samePurchaserProductList.Count() == 0)
- continue;
- foreach (var schemeProduct in samePurchaserProductList)
- {
-
- }
+ var matchResultList = MatchPurchaseScheme(orderSku.SkuId, orderSku.ItemTotal ?? 1, purchaserId, purchaseSchemeList, purchaseOrderSimpleInfo);
+ if (matchResultList.Count() > 0)
+ cargoParamList.AddRange(matchResultList);
}
if (cargoParamList.Count() == 0)
throw new BusinessException("未匹配到采购方案");
-
var assocationOrderCostDetailList = new List();
-
- //var purchaseSchemeGroups = purchaseSchemeSkuList.GroupBy(s => s.SkuPurchaseSchemeId);
-
- //foreach (var schemeGroup in purchaseSchemeGroups)
- //{
- // var schemePurchaseSkuList = schemeGroup.ToList();
- // if (schemePurchaseSkuList.Any(psku => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == psku.PurchaseSkuId) == 0))
- // continue;
- // cargoParamList.AddRange(schemePurchaseSkuList.Select(x => new CargoParamRequest()
- // {
- // BelongSkuId = x.SkuId,
- // ProductId = x.PurchaseProductId,
- // SkuId = x.PurchaseSkuId,
- // Quantity = dbOrderSkuList.FirstOrDefault(s => s.SkuId == x.SkuId)?.ItemTotal ?? 1,
- // SchemeId = x.SkuPurchaseSchemeId,
- // SpecId = x.PurchaseSkuSpecId
- // }));
- //}
-
var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
foreach (var belongSkuGroup in belongSkuGroups)
@@ -3011,5 +2960,60 @@ namespace BBWYB.Server.Business
}
}
+ ///
+ /// 匹配采购方案
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private IList MatchPurchaseScheme(string skuId,
+ int itemTotal,
+ string purchaserId,
+ IList purchaseSchemeList,
+ PP_QueryOrderDetailResponse purchaseOrderSimpleInfo)
+ {
+ List cargoParamList = new List();
+ var currentSkuSchemeList = purchaseSchemeList.Where(ps => ps.SkuId == skuId).ToList();
+ if (currentSkuSchemeList.Count() > 0)
+ {
+ foreach (var scheme in currentSkuSchemeList)
+ {
+ var samePurchaserProductList = scheme.PurchaseSchemeProductList.Where(psp => psp.PurchaserId == purchaserId).ToList();
+ if (samePurchaserProductList.Count() == 0)
+ continue;
+
+ bool isMatch = true;
+ foreach (var schemeProduct in samePurchaserProductList)
+ {
+ if (schemeProduct.PurchaseSchemeProductSkuList.Any(pss => purchaseOrderSimpleInfo.ItemList.Count(x => x.SkuId == pss.PurchaseSkuId) == 0))
+ {
+ isMatch = false;
+ break;
+ }
+ }
+
+ if (isMatch)
+ {
+ foreach (var schemeProduct in samePurchaserProductList)
+ {
+ cargoParamList.AddRange(schemeProduct.PurchaseSchemeProductSkuList.Select(pss => new CargoParamRequest()
+ {
+ BelongSkuId = pss.SkuId,
+ ProductId = pss.PurchaseProductId,
+ SkuId = pss.PurchaseSkuId,
+ SchemeId = pss.SkuPurchaseSchemeId,
+ SpecId = pss.PurchaseSkuSpecId,
+ Quantity = (itemTotal * pss.PurchaseRatio) ?? 1
+ }));
+ }
+ break;
+ }
+ }
+ }
+ return cargoParamList;
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index c0a5923..7a59a5b 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -316,18 +316,18 @@ namespace BBWYB.Server.Business
// return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
//}
- public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
- {
- var purchaseSchemeIdList = fsql.Select().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
- ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
+ //public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
+ //{
+ // var purchaseSchemeIdList = fsql.Select().Where(ps => ps.ProductId == deletePurchaseSchemeRequest.ProductId &&
+ // ps.PurchaserId == deletePurchaseSchemeRequest.PurchaserId).ToList(ps => ps.Id);
- fsql.Transaction(() =>
- {
- fsql.Delete(purchaseSchemeIdList).ExecuteAffrows();
- fsql.Delete().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
- fsql.Delete().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
- });
- }
+ // fsql.Transaction(() =>
+ // {
+ // fsql.Delete(purchaseSchemeIdList).ExecuteAffrows();
+ // fsql.Delete().Where(psp => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId)).ExecuteAffrows();
+ // fsql.Delete().Where(psps => purchaseSchemeIdList.Contains(psps.SkuPurchaseSchemeId)).ExecuteAffrows();
+ // });
+ //}
public void DeletePurchaseScheme(long schemeId)
{
From 39d1bc2703cb1af73d8693bcf4bf97fc3e3a5e2c Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 13 Aug 2023 12:46:49 +0800
Subject: [PATCH 22/89] =?UTF-8?q?=E5=A4=9A=E5=95=86=E5=AE=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/App.xaml.cs | 1 +
BBWYB.Client/GlobalContext.cs | 2 +-
.../Response/PurchaseSchemeProductResponse.cs | 10 +
.../Response/PurchaseSchemeResponse.cs | 36 +--
.../Models/PurchaseScheme/PurchaseScheme.cs | 28 ++-
.../PurchaseScheme/PurchaseSchemeProduct.cs | 13 +-
BBWYB.Client/ViewModels/MainViewModel.cs | 16 +-
.../Order/ChoosePurchaseSchemeViewModel.cs | 18 +-
.../Purchase/OnlinePurchaseViewModel.cs | 4 +-
.../Ware/BindingPurchaseProductViewModel.cs | 229 ++++++++++++------
.../ViewModels/Ware/WareManagerViewModel.cs | 228 ++++++++++-------
.../Views/Ware/BindingPurchaseProduct.xaml | 2 +-
.../Views/Ware/BindingPurchaseProduct.xaml.cs | 19 +-
BBWYB.Client/Views/Ware/WareManager.xaml | 57 ++++-
BBWYB.Client/appsettings.json | 4 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 37 ++-
.../InputPurchaseSchemeProductSkuRequest.cs | 5 +
.../PurchaseScheme/QuerySchemeRequest.cs | 16 +-
.../PurchaseSchemeProductResponse.cs | 6 +-
19 files changed, 473 insertions(+), 258 deletions(-)
diff --git a/BBWYB.Client/App.xaml.cs b/BBWYB.Client/App.xaml.cs
index 9f2d3f5..9b29706 100644
--- a/BBWYB.Client/App.xaml.cs
+++ b/BBWYB.Client/App.xaml.cs
@@ -79,6 +79,7 @@ namespace BBWYB.Client
serviceCollection.AddTransient();
serviceCollection.AddTransient();
serviceCollection.AddTransient();
+ serviceCollection.AddTransient();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index dcc7452..373eabc 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10030";
+ BBWYBApiVersion = "10031";
}
private User user;
diff --git a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
index 712aaaf..995aa88 100644
--- a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
@@ -13,6 +13,16 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long SkuPurchaseSchemeId { get; set; }
public long UserId { get; set; }
+
+ public string PurchaserName { get; set; }
+
+ public string PurchaserId { get; set; }
+ public string PurchaserId2 { get; set; }
+
+ public string PurchaserLocation { get; set; }
+
+ public Platform? PurchasePlatform { get; set; }
+
public List PurchaseSchemeProductSkuList { get; set; }
}
diff --git a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
index b010fef..01dc224 100644
--- a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
+++ b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
@@ -11,20 +11,20 @@ namespace BBWYB.Client.Models
///
public decimal? DefaultCost { get; set; }
public string ProductId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId2 { get; set; }
- public string PurchaserName { get; set; }
- ///
- /// 发货地
- ///
- public string PurchaserLocation { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId2 { get; set; }
+ //public string PurchaserName { get; set; }
+ /////
+ ///// 发货地
+ /////
+ //public string PurchaserLocation { get; set; }
///
/// 采购实际成本
///
@@ -32,10 +32,10 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long ShopId { get; set; }
- ///
- /// 采购平台
- ///
- public Platform PurchasePlatform { get; set; }
+ /////
+ ///// 采购平台
+ /////
+ //public Platform PurchasePlatform { get; set; }
///
/// 最后采购时间
@@ -43,6 +43,8 @@ namespace BBWYB.Client.Models
public DateTime? LastPurchaseTime { get; set; }
public List PurchaseSchemeProductList { get; set; }
+
+ public List PurchaserList { get; set; }
}
}
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
index 3d5ad1c..45c82e3 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Linq;
namespace BBWYB.Client.Models
{
@@ -21,10 +22,10 @@ namespace BBWYB.Client.Models
public decimal DefaultCost { get => defaultCost; set { SetProperty(ref defaultCost, value); } }
public decimal RealCost { get => realCost; set { SetProperty(ref realCost, value); } }
- public string PurchaserId { get; set; }
- public string PurchaserId2 { get; set; }
+ //public string PurchaserId { get; set; }
+ //public string PurchaserId2 { get; set; }
public string PurchaserName { get; set; }
- public string PurchaserLocation { get; set; }
+ //public string PurchaserLocation { get; set; }
public string PurchaseProductId1 { get; set; }
public int PurchaseProductSkuCount1 { get; set; }
public string PurchaseProductId2 { get; set; }
@@ -37,7 +38,7 @@ namespace BBWYB.Client.Models
///
/// 采购平台
///
- public Platform PurchasePlatform { get; set; }
+ //public Platform PurchasePlatform { get; set; }
///
/// 最后采购时间
@@ -49,9 +50,12 @@ namespace BBWYB.Client.Models
///
public IList PurchaseSchemeProductList { get; set; }
+ public List PurchaserList { get; set; }
+
public PurchaseScheme()
{
PurchaseSchemeProductList = new ObservableCollection();
+ PurchaserList = new List();
}
///
@@ -68,13 +72,17 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
DefaultCost = apiModel.DefaultCost ?? 0,
- RealCost = apiModel.RealCost ?? 0,
- PurchaserId = apiModel.PurchaserId,
- PurchaserName = apiModel.PurchaserName,
- PurchaserLocation = apiModel.PurchaserLocation,
- PurchasePlatform = apiModel.PurchasePlatform
+ RealCost = apiModel.RealCost ?? 0
+ //PurchaserId = apiModel.PurchaserId,
+ //PurchaserName = apiModel.PurchaserName,
+ //PurchaserLocation = apiModel.PurchaserLocation,
+ //PurchasePlatform = apiModel.PurchasePlatform
};
-
+ foreach (var p in apiModel.PurchaserList)
+ {
+ model.PurchaserList.Add(p);
+ }
+ model.PurchaserName = model.PurchaserList.Count() == 1 ? model.PurchaserList[0].Name : $"{model.PurchaserList[0].Name}等{model.PurchaserList.Count()}个采购商";
foreach (var apiProduct in apiModel.PurchaseSchemeProductList)
{
model.PurchaseSchemeProductList.Add(PurchaseSchemeProduct.Convert(apiProduct));
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
index 16bc54e..052bbca 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
+++ b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
@@ -28,6 +28,12 @@ namespace BBWYB.Client.Models
public string PurchaseUrl { get => purchaseUrl; set { SetProperty(ref purchaseUrl, value); } }
public string PurchaseProductId { get => purchaseProductId; set => purchaseProductId = value; }
+ public string PurchaserId { get; set; }
+ public string PurchaserId2 { get; set; }
+ public string PurchaserLocation { get; set; }
+ public string PurchaserName { get; set; }
+ public Platform PurchasePlatform { get; set; }
+
public bool IsEditing
{
get => isEditing;
@@ -79,7 +85,12 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
PurchaseProductId = apiModel.PurchaseProductId,
- PurchaseUrl = apiModel.PurchaseUrl
+ PurchaseUrl = apiModel.PurchaseUrl,
+ PurchaserId = apiModel.PurchaserId,
+ PurchaserId2 = apiModel.PurchaserId2,
+ PurchaserName = apiModel.PurchaserName,
+ PurchasePlatform = apiModel.PurchasePlatform.Value,
+ PurchaserLocation = apiModel.PurchaserLocation
};
model.SelectedSkuIdList.AddRange(apiModel.PurchaseSchemeProductSkuList.Select(s => s.PurchaseSkuId));
return model;
diff --git a/BBWYB.Client/ViewModels/MainViewModel.cs b/BBWYB.Client/ViewModels/MainViewModel.cs
index 233aafa..766958f 100644
--- a/BBWYB.Client/ViewModels/MainViewModel.cs
+++ b/BBWYB.Client/ViewModels/MainViewModel.cs
@@ -87,14 +87,14 @@ namespace BBWYB.Client.ViewModels
{
App.Current.Dispatcher.Invoke(() =>
{
- MenuList.Add(new MenuModel()
- {
- Name = "订单管理",
- ChildList = new List()
- {
- new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
- }
- });
+ //MenuList.Add(new MenuModel()
+ //{
+ // Name = "订单管理",
+ // ChildList = new List()
+ // {
+ // new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
+ // }
+ //});
MenuList.Add(new MenuModel()
{
Name = "商品管理",
diff --git a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
index b445e3c..b5c3b97 100644
--- a/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
+++ b/BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
@@ -117,17 +117,17 @@ namespace BBWYB.Client.ViewModels
if (!isResponse)
return;
isResponse = false;
- var purchaserId = skuGroup.SelectedScheme.PurchaserId;
+ //var purchaserId = skuGroup.SelectedScheme.PurchaserId;
- foreach (var otherSkuGroup in SkuGroup)
- {
- if (otherSkuGroup.SkuId == skuGroup.SkuId)
- continue;
+ //foreach (var otherSkuGroup in SkuGroup)
+ //{
+ // if (otherSkuGroup.SkuId == skuGroup.SkuId)
+ // continue;
- var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
- if (samePurchaseScheme != null)
- otherSkuGroup.SelectedScheme = samePurchaseScheme;
- }
+ // var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
+ // if (samePurchaseScheme != null)
+ // otherSkuGroup.SelectedScheme = samePurchaseScheme;
+ //}
isResponse = true;
}
diff --git a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
index 5358607..ed49682 100644
--- a/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
+++ b/BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
@@ -135,8 +135,8 @@ namespace BBWYB.Client.ViewModels
Logo = orderSku.Logo,
Price = orderSku.Price.Value,
ProductId = scheme.ProductId,
- PurchasePlatform = scheme.PurchasePlatform,
- PurchaserId = scheme.PurchaserId,
+ //PurchasePlatform = scheme.PurchasePlatform,
+ //PurchaserId = scheme.PurchaserId,
PurchaserName = scheme.PurchaserName,
PurchaseSchemeId = scheme.Id,
Quantity = orderSku.ItemTotal,
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index 85775b6..26cb3c9 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
@@ -4,9 +4,11 @@ using BBWYB.Client.Views.Ware;
using BBWYB.Common.Models;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
+using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
@@ -16,17 +18,17 @@ using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
- public class BindingPurchaseProductViewModel : BaseVM, IDenpendency
+ public class BindingPurchaseProductViewModel : BaseVM
{
#region Properties
private GlobalContext globalContext;
private PurchaseService purchaseService;
private PurchaseProductAPIService purchaseProductAPIService;
- private string purchaserName;
+ //private string purchaserName;
private bool isLoading;
-
- private Platform purchasePlatform;
+ private long? schemeId;
+ //private Platform purchasePlatform;
private IDictionary urlPatternDictionary;
@@ -34,15 +36,18 @@ namespace BBWYB.Client.ViewModels
public IList ProductSkuList { get; set; }
- public string PurchaserId { get; set; }
+ //public string PurchaserId { get; set; }
+
+ //public string PurchaserId2 { get; set; }
- public string PurchaserId2 { get; set; }
+ //public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
+ //public string PurchaserLocation { get; set; }
- public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
- public string PurchaserLocation { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
- public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
+ public long? SchemeId { get => schemeId; set { SetProperty(ref schemeId, value); } }
+
+ //public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
#endregion
@@ -86,68 +91,130 @@ namespace BBWYB.Client.ViewModels
{ Platform.阿里巴巴,@"^(https://detail.1688.com/offer/(\d+).html)[^\s]*" },
//{ Platform.拳探, @"^(https://qt.qiyue666.com/goods_detail/(\d+))(\?\w*)?$" }
};
+ ProductSkuList = new ObservableCollection();
}
- public void SetData(IList productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
+ //public void SetData(IList productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
+ //{
+ // this.ProductSkuList = productSkuList;
+ // //this.Product = product;
+ // this.PurchaserId = purchaserId;
+ // this.PurchaserId2 = purchaserId2;
+ // this.PurchaserName = purchaserName;
+ // this.PurchasePlatform = purchasePlatform;
+ //}
+
+ public void SetData(IList productSkuList, long? schemeId)
{
- this.ProductSkuList = productSkuList;
+ foreach (var productSku in productSkuList)
+ ProductSkuList.Add(productSku);
+ this.SchemeId = schemeId;
//this.Product = product;
- this.PurchaserId = purchaserId;
- this.PurchaserId2 = purchaserId2;
- this.PurchaserName = purchaserName;
- this.PurchasePlatform = purchasePlatform;
+ //this.PurchaserId = purchaserId;
+ //this.PurchaserId2 = purchaserId2;
+ //this.PurchaserName = purchaserName;
+ //this.PurchasePlatform = purchasePlatform;
}
protected override void Load()
{
- if (!string.IsNullOrEmpty(PurchaserId))
+ if (this.SchemeId != null)
{
IsLoading = true;
- Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
- {
- var apiResponse = r.Result;
- if (!apiResponse.Success)
- {
- App.Current.Dispatcher.BeginInvoke((Action)delegate
- {
- MessageBox.Show(apiResponse.Msg, "查询采购方案");
- });
- IsLoading = false;
- return;
- }
-
- var purchaseSchemeList = apiResponse.Data;
-
- var waitList = new List();
- foreach (var sku in ProductSkuList)
- {
- //当前SKU下当前采购商的采购方案
- var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
-
- if (apiScheme == null)
- continue;
-
- sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
- var ewh = new ManualResetEvent(false);
- waitList.Add(ewh);
-
- Task.Factory.StartNew(() =>
- {
- foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
- {
- purchaseSchemeProduct.IsEditing = false;
- LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
- }
- ewh.Set();
- ewh.Dispose();
- });
- }
- WaitHandle.WaitAll(waitList.ToArray());
- IsLoading = false;
- });
+ var skuIdList = ProductSkuList.Select(s => s.Id).ToList();
+ var sku = ProductSkuList.FirstOrDefault();
+ Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(skuIdList, shopId: globalContext.User.Shop.ShopId, schemeId: SchemeId)).ContinueWith(r =>
+ {
+ var apiResponse = r.Result;
+ if (!apiResponse.Success)
+ {
+ App.Current.Dispatcher.BeginInvoke((Action)delegate
+ {
+ MessageBox.Show(apiResponse.Msg, "查询采购方案");
+ });
+ IsLoading = false;
+ return;
+ }
+
+ var purchaseSchemeList = apiResponse.Data;
+ var apiScheme = purchaseSchemeList.FirstOrDefault();
+ if (apiScheme == null)
+ {
+ IsLoading = false;
+ return;
+ }
+ sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
+ var ewh = new ManualResetEvent(false);
+
+ var waitList = new List();
+ waitList.Add(ewh);
+
+ Task.Factory.StartNew(() =>
+ {
+ foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
+ {
+ purchaseSchemeProduct.IsEditing = false;
+ LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
+ }
+ ewh.Set();
+ ewh.Dispose();
+ });
+ WaitHandle.WaitAll(waitList.ToArray());
+ IsLoading = false;
+ });
}
}
+ //protected override void Load()
+ //{
+ // if (!string.IsNullOrEmpty(PurchaserId))
+ // {
+ // IsLoading = true;
+ // Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
+ // {
+ // var apiResponse = r.Result;
+ // if (!apiResponse.Success)
+ // {
+ // App.Current.Dispatcher.BeginInvoke((Action)delegate
+ // {
+ // MessageBox.Show(apiResponse.Msg, "查询采购方案");
+ // });
+ // IsLoading = false;
+ // return;
+ // }
+
+ // var purchaseSchemeList = apiResponse.Data;
+
+ // var waitList = new List();
+ // foreach (var sku in ProductSkuList)
+ // {
+ // //当前SKU下当前采购商的采购方案
+ // var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
+
+ // if (apiScheme == null)
+ // continue;
+
+ // sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
+ // var ewh = new ManualResetEvent(false);
+ // waitList.Add(ewh);
+
+ // Task.Factory.StartNew(() =>
+ // {
+ // foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
+ // {
+ // purchaseSchemeProduct.IsEditing = false;
+ // LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
+ // }
+ // ewh.Set();
+ // ewh.Dispose();
+ // });
+ // }
+ // WaitHandle.WaitAll(waitList.ToArray());
+ // IsLoading = false;
+ // });
+ // }
+ //}
+
public void LoadPurchaseProduct(Platform platform, PurchaseSchemeProduct purchaseSchemeProduct, string purchaseProductId, Func checkPurchaserFunc, out string errorMsg)
{
errorMsg = string.Empty;
@@ -180,10 +247,15 @@ namespace BBWYB.Client.ViewModels
return;
}
- PurchaserId = data.Value.purchaser.Id;
- PurchaserId2 = data.Value.purchaser.Id2;
- PurchaserName = data.Value.purchaser.Name;
- PurchaserLocation = data.Value.purchaser.Location;
+ purchaseSchemeProduct.PurchaserId = data.Value.purchaser.Id;
+ purchaseSchemeProduct.PurchaserId2 = data.Value.purchaser.Id2;
+ purchaseSchemeProduct.PurchaserName = data.Value.purchaser.Name;
+ purchaseSchemeProduct.PurchaserLocation = data.Value.purchaser.Location;
+
+ //PurchaserId = data.Value.purchaser.Id;
+ //PurchaserId2 = data.Value.purchaser.Id2;
+ //PurchaserName = data.Value.purchaser.Name;
+ //PurchaserLocation = data.Value.purchaser.Location;
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
@@ -214,8 +286,7 @@ namespace BBWYB.Client.ViewModels
productSku.SelectedPurchaseScheme = new PurchaseScheme()
{
ProductId = productSku.ProductId,
- SkuId = productSku.Id,
- PurchasePlatform = PurchasePlatform
+ SkuId = productSku.Id
};
}
else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
@@ -229,7 +300,8 @@ namespace BBWYB.Client.ViewModels
Id = DateTime.Now.ToFileTime(),
IsEditing = true,
ProductId = productSku.ProductId,
- SkuId = productSku.Id
+ SkuId = productSku.Id,
+ PurchasePlatform = Platform.阿里巴巴 //B端写死只能1688
});
}
@@ -237,8 +309,8 @@ namespace BBWYB.Client.ViewModels
{
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Remove(purchaseSchemeProduct);
- if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
- PurchaserId = string.Empty;
+ //if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
+ // PurchaserId = string.Empty;
}
///
@@ -254,7 +326,7 @@ namespace BBWYB.Client.ViewModels
return;
}
- urlPatternDictionary.TryGetValue(PurchasePlatform, out string pattern);
+ urlPatternDictionary.TryGetValue(purchaseSchemeProduct.PurchasePlatform, out string pattern);
var match = Regex.Match(purchaseSchemeProduct.PurchaseUrl, pattern);
if (!match.Success)
@@ -276,13 +348,13 @@ namespace BBWYB.Client.ViewModels
Task.Factory.StartNew(() =>
{
- LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
+ LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
{
- if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
- return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
+ //if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
+ // return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
- if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
- return "采购商必须相同";
+ //if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
+ // return "采购商必须相同";
return string.Empty;
}, out string errorMsg);
@@ -319,10 +391,10 @@ namespace BBWYB.Client.ViewModels
purchaseSchemeProduct.IsEditing = false;
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
- productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
- productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
- productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
- productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
+ //productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
+ //productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
+ //productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
+ //productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
productSku.SelectedPurchaseScheme.DefaultCost = productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Sum(p => p.PurchaseSchemeProductSkuList.Count() == 0 ? 0 : p.PurchaseSchemeProductSkuList.Sum(s => s.Price));
}
@@ -385,12 +457,13 @@ namespace BBWYB.Client.ViewModels
private void Closing(System.ComponentModel.CancelEventArgs e)
{
- PurchaserId = PurchaserName = string.Empty;
+ this.SchemeId = null;
//clear data
foreach (var sku in ProductSkuList)
{
sku.SelectedPurchaseScheme = null;
}
+ this.ProductSkuList.Clear();
//Product = null;
e.Cancel = false;
}
diff --git a/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs b/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
index 5661f0a..52b0f7c 100644
--- a/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
@@ -20,7 +20,7 @@ namespace BBWYB.Client.ViewModels
#region Properties
private PurchaseService purchaseService;
private ProductService productService;
- private BindingPurchaseProductViewModel bindingPurchaseProduct;
+ //private BindingPurchaseProductViewModel bindingPurchaseProduct;
private GlobalContext globalContext;
private bool isLoading;
private int pageIndex = 1;
@@ -45,22 +45,32 @@ namespace BBWYB.Client.ViewModels
#endregion
#region Commands
- public ICommand AddPurchaserCommand { get; set; }
- public ICommand EditPurchaserCommand { get; set; }
- public ICommand DeletePurchaserCommand { get; set; }
+ //public ICommand AddPurchaserCommand { get; set; }
+ //public ICommand EditPurchaserCommand { get; set; }
+ //public ICommand DeletePurchaserCommand { get; set; }
public ICommand SearchCommand { get; set; }
public ICommand ProductPageIndexChangedCommand { get; set; }
public ICommand SwitchPurchasePlatformCommand { get; set; }
+
+ public ICommand AddSchemeCommand { get; set; }
+
+ public ICommand EditSchemeCommand { get; set; }
+
+ public ICommand DeleteSchemeCommand { get; set; }
#endregion
#region Methods
public WareManagerViewModel(GlobalContext globalContext, BindingPurchaseProductViewModel bindingPurchaseProduct, PurchaseService purchaseService, ProductService productService)
{
PageSize = 5;
- AddPurchaserCommand = new RelayCommand(AddPurchaser);
- EditPurchaserCommand = new RelayCommand(EditPurchaser);
- DeletePurchaserCommand = new RelayCommand(DeletePurchaser);
+ //AddPurchaserCommand = new RelayCommand(AddPurchaser);
+ //EditPurchaserCommand = new RelayCommand(EditPurchaser);
+ //DeletePurchaserCommand = new RelayCommand(DeletePurchaser);
+ AddSchemeCommand = new RelayCommand(AddScheme);
+ EditSchemeCommand = new RelayCommand(EditScheme);
+ DeleteSchemeCommand = new RelayCommand(DeleteScheme);
+
SwitchPurchasePlatformCommand = new RelayCommand
///
///
- public IList GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
+ public IList GetPurchaseSchemeList(QuerySchemeRequest request)
{
var select = fsql.Select();
- if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
- select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
- else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
- select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
+ if (request.SchemeId != null && request.SchemeId != 0)
+ select = select.Where(ps => ps.Id == request.SchemeId);
+ else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
+ select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
else
{
- select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, ps => ps.ShopId == querySchemeRequest.ShopId)
- .WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, ps => querySchemeRequest.SkuIdList.Contains(ps.SkuId));
+ select = select.WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
+ .WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId));
+
+ if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
+ {
+ //var childSelect = fsql.Select()
+ // .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ // .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
+ // .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId);
+ //select = select.Where(ps => childSelect.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
+
+ select = select.Where(ps => fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
+ .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
+ .Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
+ }
//.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
-
+ var sql = select.ToSql();
var purchaseSchemeList = select.ToList();
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
index 9bdfd77..14b9bb5 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
@@ -21,5 +21,10 @@
/// 采购Ske SpecId (1688独有)
///
public string PurchaseSkuSpecId { get; set; }
+
+ ///
+ /// 采购配比
+ ///
+ public int? PurchaseRatio { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 8924508..59e2088 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
- /////
- ///// 采购商Id, 可空
- /////
- //public string PurchaserId { get; set; }
+ ///
+ /// 采购商Id, 可空
+ ///
+ public string PurchaserId { get; set; }
- /////
- ///// 采购平台
- /////
- //public Enums.Platform? PurchasePlatform { get; set; }
+ ///
+ /// 采购平台
+ ///
+ public Enums.Platform? PurchasePlatform { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 288e9f2..15c33cf 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace BBWYB.Server.Model.Dto
+namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{
From 9f7373c97eb39fc4fc8730c6bee8d520ff057db0 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 14 Aug 2023 01:46:20 +0800
Subject: [PATCH 23/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E8=BF=94?=
=?UTF-8?q?=E5=9B=9E=E9=87=87=E8=B4=AD=E9=85=8D=E4=BB=B6=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 29 ++++++++++++++-----
.../PurchaseScheme/QuerySchemeRequest.cs | 9 ++++--
.../PurchaseSchemeProductSkuResponse.cs | 21 ++++++++++----
3 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 931a9b2..8e15c73 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -154,7 +154,7 @@ namespace BBWYB.Server.Business
}
///
- /// 获取采购方案(不含采购配配件基本信息)
+ /// 获取采购方案
///
///
///
@@ -172,19 +172,12 @@ namespace BBWYB.Server.Business
if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
{
- //var childSelect = fsql.Select()
- // .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
- // .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
- // .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId);
- //select = select.Where(ps => childSelect.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
-
select = select.Where(ps => fsql.Select()
.InnerJoin((psp, p) => psp.PurchaserId == p.Id)
.WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
.WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
}
- //.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
var sql = select.ToSql();
var purchaseSchemeList = select.ToList();
@@ -247,6 +240,26 @@ namespace BBWYB.Server.Business
}
}
#endregion
+
+ #region 获取采购方案基本信息
+ if (request.IncludePurchaseSkuBasicInfo == 1)
+ {
+ foreach (var schemeProduct in schemeProductList)
+ {
+ try
+ {
+ var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
+ {
+
+ });
+ }
+ catch
+ {
+
+ }
+ }
+ }
+ #endregion
}
}
return purchaseSchemeList;
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 59e2088..0c2c4f1 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -19,13 +19,18 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
///
- /// 采购商Id, 可空
+ /// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询
///
public string PurchaserId { get; set; }
///
- /// 采购平台
+ /// 采购平台, 只要其中一个采购商品满足平台条件则命中查询
///
public Enums.Platform? PurchasePlatform { get; set; }
+
+ ///
+ /// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null
+ ///
+ public int? IncludePurchaseSkuBasicInfo { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
index 7374eaa..30942ea 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
@@ -1,10 +1,21 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace BBWYB.Server.Model.Dto
+namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductSkuResponse : Model.Db.PurchaseSchemeProductSku
{
+
+ ///
+ /// 采购SKU标题 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseSkuTitle { get; set; }
+
+ ///
+ /// 采购SKULogo 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseSkuLogo { get; set; }
+
+ ///
+ /// 采购SKU单价 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public decimal? PurchaseSkuPrice { get; set; }
}
}
From f96dbdacb409e08c9df21cebde1e369f6d826b25 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 14 Aug 2023 09:45:50 +0800
Subject: [PATCH 24/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81=E8=BF=94?=
=?UTF-8?q?=E5=9B=9E=E9=87=87=E8=B4=AD=E9=85=8D=E4=BB=B6=E5=9F=BA=E6=9C=AC?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 8e15c73..633cfb4 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -250,8 +250,24 @@ namespace BBWYB.Server.Business
{
var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
{
-
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ Platform = schemeProduct.PurchasePlatform ?? Enums.Platform.阿里巴巴,
+ PurchaseProductId = schemeProduct.PurchaseProductId
});
+ if (basicInfo != null)
+ {
+ foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
+ {
+ var basicSku = basicInfo.ItemList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId);
+ if (basicSku != null)
+ {
+ schemeProductSku.PurchaseSkuTitle = basicSku.Title;
+ schemeProductSku.PurchaseSkuPrice = basicSku.Price;
+ schemeProductSku.PurchaseSkuLogo = basicSku.Logo;
+ }
+ }
+ }
}
catch
{
From e8d95171183156980fe9d30f2d9d5e6b5fbc3318 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 14 Aug 2023 11:20:27 +0800
Subject: [PATCH 25/89] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E9=85=8D=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 10 ++++++++++
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 11 ++++++++++-
.../PurchaseScheme/EditPurchaseRatioRequest.cs | 4 +++-
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 673114c..1444c88 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -101,5 +101,15 @@ namespace BBWYB.Server.API.Controllers
{
return purchaseSchemeBusiness.RefreshPurchaseScheme(request);
}
+
+ ///
+ /// 修改采购配件比例
+ ///
+ ///
+ [HttpPost]
+ public void EditPurchaseRatio([FromBody]EditPurchaseRatioRequest request)
+ {
+ purchaseSchemeBusiness.EditPurchaseRatio(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index c0a5923..68ec95e 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -384,6 +384,15 @@ namespace BBWYB.Server.Business
return list;
}
-
+ public void EditPurchaseRatio(EditPurchaseRatioRequest request)
+ {
+ if (request.Ratio < 1)
+ request.Ratio = 1;
+ fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
+ .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
+ pss.SkuId == request.SkuId &&
+ pss.PurchaseSkuId == request.PurchaseSkuId)
+ .ExecuteAffrows();
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
index 2e09843..0eebc71 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -4,8 +4,10 @@
{
public long SchemeId { get; set; }
- public string SkuId { get; set; }
+ public string SkuId { get; set; }
public string PurchaseSkuId { get; set; }
+
+ public int Ratio { get; set; }
}
}
From 56cef350190c7ccfe6c41745e10c58bf44f58bc4 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 15 Aug 2023 14:39:07 +0800
Subject: [PATCH 26/89] =?UTF-8?q?=E6=8A=A5=E4=BB=B7=E6=8E=A5=E5=8F=A3?=
=?UTF-8?q?=EF=BC=8C=E8=BF=94=E5=9B=9E=E5=BA=93=E5=AD=98=E4=B8=8D=E8=B6=B3?=
=?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=8C=B9=E9=85=8D=E8=AE=A2=E5=8D=95sku?=
=?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 35 ++++++++++++++++---
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index a83adf7..c353ffc 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -19,6 +19,7 @@ using SDKAdapter.OperationPlatform.Models;
using SDKAdapter.PurchasePlatform.Client;
using SDKAdapter.PurchasePlatform.Models;
using System.Text;
+using System.Text.RegularExpressions;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
@@ -144,7 +145,6 @@ namespace BBWYB.Server.Business
#endregion
var extJArray = new List
public string PurchaserLocation { get; set; }
+ public string PurchaserMemberId { get; set; }
+
+
+ public Enums.Platform? PurchasePlatform { get; set; }
+
public IList PurchaseSchemeProductSkuList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 15c33cf..affd828 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -10,6 +10,8 @@
public Enums.Platform? PurchasePlatform { get; set; }
+ public string PurchaserMemberId { get; set; }
+
public new List PurchaseSchemeProductSkuList { get; set; }
public PurchaseSchemeProductResponse()
From 5cc0249a20591a05ab8ab82381cbef717e1047f6 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 15 Aug 2023 16:29:58 +0800
Subject: [PATCH 28/89] 1
---
.../Request/PurchaseScheme/InputPurchaseSchemeRequest.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index b89d7e4..bfce735 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -33,10 +33,10 @@ namespace BBWYB.Server.Model.Dto
///// 采购商发货地
/////
//public string PurchaserLocation { get; set; }
- ///
- /// 采购平台
- ///
- public Enums.Platform PurchasePlatform { get; set; } = Enums.Platform.阿里巴巴;
+ /////
+ ///// 采购平台
+ /////
+ //public Enums.Platform PurchasePlatform { get; set; } = Enums.Platform.阿里巴巴;
public IList PurchaseSchemeProductList { get; set; }
}
From 675facb4edcd0df31c34680eb6d99b4be529eb4e Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 15 Aug 2023 16:58:08 +0800
Subject: [PATCH 29/89] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=94=AF?=
=?UTF-8?q?=E6=8C=81memberId?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/APIServices/PurchaseProductAPIService.cs | 1 +
BBWYB.Client/GlobalContext.cs | 2 +-
.../APIModel/Response/PurchaseSchemeProductResponse.cs | 2 ++
BBWYB.Client/Models/Product/Purchaser.cs | 2 ++
BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs | 5 ++++-
.../ViewModels/Ware/BindingPurchaseProductViewModel.cs | 1 +
BBWYB.Client/appsettings.json | 4 ++--
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs | 2 +-
8 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/BBWYB.Client/APIServices/PurchaseProductAPIService.cs b/BBWYB.Client/APIServices/PurchaseProductAPIService.cs
index 17b0308..6a75477 100644
--- a/BBWYB.Client/APIServices/PurchaseProductAPIService.cs
+++ b/BBWYB.Client/APIServices/PurchaseProductAPIService.cs
@@ -210,6 +210,7 @@ namespace BBWYB.Client.APIServices
Id = jobject["globalData"]["tempModel"]["sellerUserId"].ToString(),
Id2 = jobject["globalData"]["tempModel"]["sellerLoginId"]?.ToString(),
Name = jobject["globalData"]["tempModel"]["companyName"].ToString(),
+ MemberId = jobject["globalData"]?["tempModel"]?["sellerMemberId"]?.ToString(),
Location = location,
Platform = platform
};
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index 373eabc..cbf3c6a 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10031";
+ BBWYBApiVersion = "10032";
}
private User user;
diff --git a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
index 995aa88..fb5ed5b 100644
--- a/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
@@ -23,6 +23,8 @@ namespace BBWYB.Client.Models
public Platform? PurchasePlatform { get; set; }
+ public string PurchaserMemberId { get; set; }
+
public List PurchaseSchemeProductSkuList { get; set; }
}
diff --git a/BBWYB.Client/Models/Product/Purchaser.cs b/BBWYB.Client/Models/Product/Purchaser.cs
index 0b021fb..46be3e5 100644
--- a/BBWYB.Client/Models/Product/Purchaser.cs
+++ b/BBWYB.Client/Models/Product/Purchaser.cs
@@ -25,5 +25,7 @@ namespace BBWYB.Client.Models
public string Location { get; set; }
public Platform Platform { get; set; }
+
+ public string MemberId { get; set; }
}
}
diff --git a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
index 052bbca..6f8d9c7 100644
--- a/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
+++ b/BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
@@ -34,6 +34,8 @@ namespace BBWYB.Client.Models
public string PurchaserName { get; set; }
public Platform PurchasePlatform { get; set; }
+
+ public string PurchaserMemberId { get; set; }
public bool IsEditing
{
get => isEditing;
@@ -90,7 +92,8 @@ namespace BBWYB.Client.Models
PurchaserId2 = apiModel.PurchaserId2,
PurchaserName = apiModel.PurchaserName,
PurchasePlatform = apiModel.PurchasePlatform.Value,
- PurchaserLocation = apiModel.PurchaserLocation
+ PurchaserLocation = apiModel.PurchaserLocation,
+ PurchaserMemberId = apiModel.PurchaserMemberId
};
model.SelectedSkuIdList.AddRange(apiModel.PurchaseSchemeProductSkuList.Select(s => s.PurchaseSkuId));
return model;
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index 26cb3c9..8bf6aa2 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
@@ -251,6 +251,7 @@ namespace BBWYB.Client.ViewModels
purchaseSchemeProduct.PurchaserId2 = data.Value.purchaser.Id2;
purchaseSchemeProduct.PurchaserName = data.Value.purchaser.Name;
purchaseSchemeProduct.PurchaserLocation = data.Value.purchaser.Location;
+ purchaseSchemeProduct.PurchaserMemberId = data.Value.purchaser.MemberId;
//PurchaserId = data.Value.purchaser.Id;
//PurchaserId2 = data.Value.purchaser.Id2;
diff --git a/BBWYB.Client/appsettings.json b/BBWYB.Client/appsettings.json
index 67f255d..cce26a2 100644
--- a/BBWYB.Client/appsettings.json
+++ b/BBWYB.Client/appsettings.json
@@ -1,6 +1,6 @@
{
- "BBWYApiHost": "http://localhost:5000",
- //"BBWYApiHost": "http://bbwyb.qiyue666.com",
+ //"BBWYApiHost": "http://localhost:5000",
+ "BBWYApiHost": "http://bbwyb.qiyue666.com",
"MDSApiHost": "http://mdsapi.qiyue666.com",
"BBWYCApiHost": "http://bbwytest.qiyue666.com",
"QKApiHost": "http://localhost:8080"
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 1b87505..840a9c4 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -28,7 +28,7 @@ namespace BBWYB.Server.API.Controllers
}
///
- /// 获取采购方案列表 (不含采购配配件基本信息)
+ /// 获取采购方案列表
///
///
///
From 75c63434e370839ebaed85fd8e436874de34c0d7 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 16 Aug 2023 01:42:58 +0800
Subject: [PATCH 30/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8DmemberId?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/DataRepairController.cs | 6 ++
.../DataRepair/DataRepairBusiness.cs | 67 +++++++++++++++++++
2 files changed, 73 insertions(+)
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index 9c2bdbe..7588b57 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -39,5 +39,11 @@ namespace BBWYB.Server.API.Controllers
{
dataRepairBusiness.PingJia();
}
+
+ [HttpPost]
+ public void SupplementPurchaserInfo()
+ {
+ dataRepairBusiness.SupplementPurchaserInfo();
+ }
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index dcf2821..ec73edd 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -81,5 +81,72 @@ namespace BBWYB.Server.Business
fsql.Insert(insertOrderSkuCostList).ExecuteAffrows();
});
}
+
+ public void SupplementPurchaserInfo()
+ {
+ var purlList = fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .Where((psp, p) => p.Platform == Enums.Platform.阿里巴巴 && string.IsNullOrEmpty(p.MemberId))
+ .ToList((psp, p) => new
+ {
+ //psp.PurchaseUrl,
+ psp.PurchaseProductId,
+ p.Id
+ });
+ var groups = purlList.GroupBy(p => p.Id);
+ Console.WriteLine(groups.Count());
+ IList> updatePurchaserList = new List>();
+ int i = 1;
+ foreach (var group in groups)
+ {
+ var purchaseId = group.Key;
+ var productId = group.Max(p => p.PurchaseProductId);
+ Thread.Sleep(1000);
+ Console.WriteLine();
+ Console.ForegroundColor = ConsoleColor.Red;
+ Console.WriteLine($"index {i}");
+ Console.ResetColor();
+ Console.WriteLine();
+ var response = purchaseSchemeBusiness.GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
+ {
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ Platform = Enums.Platform.阿里巴巴,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ PurchaseProductId = productId
+ });
+ if (!string.IsNullOrEmpty(response?.Purchaser?.MemberId))
+ {
+ if (response.Purchaser.MemberId.Length > 5)
+ Console.WriteLine(response.Purchaser.MemberId);
+ var update = fsql.Update(purchaseId).Set(p => p.MemberId, response.Purchaser.MemberId);
+ updatePurchaserList.Add(update);
+ }
+ i++;
+
+ if (updatePurchaserList.Count >= 10)
+ {
+ fsql.Transaction(() =>
+ {
+ foreach (var update in updatePurchaserList)
+ update.ExecuteAffrows();
+ });
+ updatePurchaserList.Clear();
+ Console.WriteLine();
+ Console.ForegroundColor = ConsoleColor.Red;
+ Console.WriteLine("更新数据库更新");
+ Console.ResetColor();
+ Console.WriteLine();
+ }
+ }
+
+ if (updatePurchaserList.Count() > 0)
+ {
+ fsql.Transaction(() =>
+ {
+ foreach (var update in updatePurchaserList)
+ update.ExecuteAffrows();
+ });
+ }
+ }
}
}
From 8516067967341a505989569474a4d1f92729a6a2 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Thu, 17 Aug 2023 11:26:17 +0800
Subject: [PATCH 31/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=95=86=E5=93=81=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6=E6=8F=90?=
=?UTF-8?q?=E7=A4=BA=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index 8bf6aa2..0735a59 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
@@ -292,7 +292,7 @@ namespace BBWYB.Client.ViewModels
}
else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
{
- MessageBox.Show("该采购方案的商品数量已达上限(5)");
+ MessageBox.Show("该采购方案的商品数量已达上限(4)");
return;
}
From 3c2e1fdebe8a1ccf07d50352a458acaa69ce9b27 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Thu, 17 Aug 2023 11:26:34 +0800
Subject: [PATCH 32/89] 10033
---
BBWYB.Client/GlobalContext.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index cbf3c6a..378bbe5 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10032";
+ BBWYBApiVersion = "10033";
}
private User user;
From 416ce28a31e1736cf9364cfbe639f2d8b79ca0af Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Thu, 17 Aug 2023 14:34:05 +0800
Subject: [PATCH 33/89] =?UTF-8?q?=E4=BB=8E=E5=A4=9A=E4=B8=AA=E7=8E=AF?=
=?UTF-8?q?=E8=8A=82=E6=95=B4=E5=90=88=E7=AD=89=E6=AF=94=E8=AE=A1=E7=AE=97?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=88=90=E6=9C=AC=E7=AE=97=E6=B3=95=20(?=
=?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=87=87=E8=B4=AD=EF=BC=8C=E5=85=B3=E8=81=94?=
=?UTF-8?q?=E9=A2=84=E8=A7=88=EF=BC=8C=E6=94=B9=E4=BB=B7=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 334 ++++++++++++------
.../Sync/OrderSyncBusiness.cs | 1 -
.../Core/ProportionalCalculationCostResult.cs | 11 +
3 files changed, 246 insertions(+), 100 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Core/ProportionalCalculationCostResult.cs
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index c353ffc..bd6ca55 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -4,12 +4,12 @@ using BBWYB.Common.Models;
using BBWYB.Server.Business.Extensions;
using BBWYB.Server.Business.JD;
using BBWYB.Server.Model;
+using BBWYB.Server.Model.Core;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.Mds;
using BBWYB.Server.Model.Db.MDS;
using BBWYB.Server.Model.Dto;
using FreeSql;
-using JD.Dto;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -398,33 +398,59 @@ namespace BBWYB.Server.Business
#endregion
}
- //采购单总件数,由于1688运费只存在订单层,sku层没有运费,所以需要以订单总件数为基础等比计算采购运费
- var purchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Sum(x => x.Quantity);
- var belongSkuGroups = cargoParamGroup.CargoParamList.GroupBy(p => p.BelongSkuId);
- var belongSkuIdList = belongSkuGroups.Select(bsg => bsg.Key).ToList();
- foreach (var belongSkuGroup in belongSkuGroups)
+ ////采购单总件数,由于1688运费只存在订单层,sku层没有运费,所以需要以订单总件数为基础等比计算采购运费
+ //var purchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Sum(x => x.Quantity);
+ //var belongSkuGroups = cargoParamGroup.CargoParamList.GroupBy(p => p.BelongSkuId);
+ //var belongSkuIdList = belongSkuGroups.Select(bsg => bsg.Key).ToList();
+ //foreach (var belongSkuGroup in belongSkuGroups)
+ //{
+ // var belongSkuId = belongSkuGroup.Key;
+ // //var currentOrderSkuCargoParamList = cargoParamGroup.CargoParamList.Where(p => p.BelongSkuId == belongSkuId); //找当前skuId的采购skuId
+ // var currentOrderSkuCargoParamList = belongSkuGroup.ToList();
+ // var currentSkuAmount = 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.SkuId)
+ // .Sum(p => p.ProductAmount);
+ // var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
+ // .Sum(p => p.Quantity);
+
+ // currentSkuAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity / currentPurchaseSkuTotalQuantity);
+ // //currentPurchaseFreight += purchaseOrderSimpleInfo.FreightAmount * (1.0M * currentOrderSkuCargo.Quantity / purchaseSkuTotalQuantity);
+ // }
+
+ // #region 成本明细
+ // var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId);
+ // var orderCostDetail = new OrderCostDetail()
+ // {
+ // Id = idGenerator.NewLong(),
+ // CreateTime = DateTime.Now,
+ // DeductionQuantity = orderSku.ItemTotal.Value,
+ // OrderId = request.OrderId,
+ // ProductId = orderSku.ProductId,
+ // PurchaseOrderId = purchaseOrderSimpleInfo.OrderId,
+ // SkuId = belongSkuId,
+ // IsEnabled = true
+ // };
+ // orderCostDetail.CalculationOrderCostDetailCostAndProfit(currentSkuAmount,
+ // currentPurchaseFreight,
+ // 0M,
+ // 0M);
+ // insertOrderCostDetails.Add(orderCostDetail);
+ // #endregion
+ //}
+ #region 等比计算采购成本
+ var proportionalCalculationResultList = ProportionalCalculationCost(cargoParamGroup.CargoParamList, purchaseOrderSimpleInfo);
+ foreach (var proportionalCalculationResult in proportionalCalculationResultList)
{
- var belongSkuId = belongSkuGroup.Key;
- var currentOrderSkuCargoParamList = cargoParamGroup.CargoParamList.Where(p => p.BelongSkuId == belongSkuId); //找当前skuId的采购skuId
-
- var currentSkuAmount = 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.SkuId)
- .Sum(p => p.ProductAmount);
- var currentPurchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
- .Sum(p => p.Quantity);
+ var skuId = proportionalCalculationResult.SkuId;
- currentSkuAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity / currentPurchaseSkuTotalQuantity);
- //currentPurchaseFreight += purchaseOrderSimpleInfo.FreightAmount * (1.0M * currentOrderSkuCargo.Quantity / purchaseSkuTotalQuantity);
- }
- #region 成本明细
- var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId);
+ var orderSku = orderSkus.FirstOrDefault(osku => osku.SkuId == skuId);
var orderCostDetail = new OrderCostDetail()
{
Id = idGenerator.NewLong(),
@@ -433,18 +459,19 @@ namespace BBWYB.Server.Business
OrderId = request.OrderId,
ProductId = orderSku.ProductId,
PurchaseOrderId = purchaseOrderSimpleInfo.OrderId,
- SkuId = belongSkuId,
+ SkuId = skuId,
IsEnabled = true
};
- orderCostDetail.CalculationOrderCostDetailCostAndProfit(currentSkuAmount,
- currentPurchaseFreight,
+ orderCostDetail.CalculationOrderCostDetailCostAndProfit(proportionalCalculationResult.ProductAmount,
+ proportionalCalculationResult.FreightAmount,
0M,
0M);
insertOrderCostDetails.Add(orderCostDetail);
- #endregion
}
+ #endregion
#region 采购订单信息
+ var belongSkuIdList = cargoParamGroup.CargoParamList.Select(c => c.BelongSkuId).Distinct().ToList();
var orderPurchaserInfo = new OrderPurchaseInfo()
{
Id = idGenerator.NewLong(),
@@ -1190,32 +1217,54 @@ namespace BBWYB.Server.Business
if (cargoParamList.Count() == 0)
throw new BusinessException("未匹配到采购方案");
+ #endregion
+ #region 等比计算采购成本
var assocationOrderCostDetailList = new List();
- var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
- var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
- foreach (var belongSkuGroup in belongSkuGroups)
+ //var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
+ //var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
+ //foreach (var belongSkuGroup in belongSkuGroups)
+ //{
+ // var skuId = belongSkuGroup.Key;
+ // //var currentOrderSkuCargoParamList = cargoParamList.Where(p => p.BelongSkuId == skuId); //找当前skuId的采购skuId
+ // var currentOrderSkuCargoParamList = belongSkuGroup.ToList(); //找当前skuId的采购skuId
+
+ // var currentSkuAmount = 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.SkuId)
+ // .Sum(p => p.ProductAmount);
+
+ // var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
+ // .Sum(p => p.Quantity);
+
+ // currentSkuAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity / currentPurchaseSkuTotalQuantity);
+
+ // }
+
+ // var orderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId);
+ // var assocationOrderCostDetail = new AssocationOrderCostDetailResponse()
+ // {
+ // Logo = orderSku.Logo,
+ // Title = orderSku.Title,
+ // SkuId = skuId,
+ // OrderId = orderSku.OrderId,
+ // SkuAmount = currentSkuAmount,
+ // PurchaseQuantity = orderSku.ItemTotal.Value,
+ // PurchaseFreight = currentPurchaseFreight
+ // };
+ // assocationOrderCostDetail.PurchasePrice = assocationOrderCostDetail.SkuAmount / assocationOrderCostDetail.PurchaseQuantity;
+ // assocationOrderCostDetailList.Add(assocationOrderCostDetail);
+ //}
+
+ var proportionalCalculationResultList = ProportionalCalculationCost(cargoParamList, purchaseOrderSimpleInfo);
+ foreach (var proportionalCalculationResult in proportionalCalculationResultList)
{
- var skuId = belongSkuGroup.Key;
- var currentOrderSkuCargoParamList = cargoParamList.Where(p => p.BelongSkuId == skuId); //找当前skuId的采购skuId
-
- var currentSkuAmount = 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.SkuId)
- .Sum(p => p.ProductAmount);
-
- var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
- .Sum(p => p.Quantity);
-
- currentSkuAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity / currentPurchaseSkuTotalQuantity);
-
- }
-
+ var skuId = proportionalCalculationResult.SkuId;
var orderSku = dbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId);
var assocationOrderCostDetail = new AssocationOrderCostDetailResponse()
{
@@ -1223,17 +1272,17 @@ namespace BBWYB.Server.Business
Title = orderSku.Title,
SkuId = skuId,
OrderId = orderSku.OrderId,
- SkuAmount = currentSkuAmount,
+ SkuAmount = proportionalCalculationResult.ProductAmount,
PurchaseQuantity = orderSku.ItemTotal.Value,
- PurchaseFreight = currentPurchaseFreight
+ PurchaseFreight = proportionalCalculationResult.FreightAmount
};
assocationOrderCostDetail.PurchasePrice = assocationOrderCostDetail.SkuAmount / assocationOrderCostDetail.PurchaseQuantity;
assocationOrderCostDetailList.Add(assocationOrderCostDetail);
}
- #endregion
if (assocationOrderCostDetailList.Count() == 0)
throw new BusinessException("没有匹配到合适的采购方案");
+ #endregion
return new AssociationPurchaseOrderResponse(assocationOrderCostDetailList)
{
@@ -2779,34 +2828,27 @@ namespace BBWYB.Server.Business
totalPurchaseProductAmount += purchaseOrderSimpleInfo.ProductAmount;
totalPurchaseFreight += purchaseOrderSimpleInfo.FreightAmount;
-
- var purchaseSkuTotalQuantity = purchaseOrderSimpleInfo.ItemList.Sum(x => x.Quantity);
var currentPurchaseOrderRelationInfos = dbOrderPurchaseRelationInfos.Where(x => x.PurchaseOrderId == opi.PurchaseOrderId).ToList();
-
- var belongSkuGroups = currentPurchaseOrderRelationInfos.GroupBy(p => p.BelongSkuId);
- foreach (var belongSkuGroup in belongSkuGroups)
+ var cargoParamList = currentPurchaseOrderRelationInfos.Select(x => new CargoParamRequest()
{
- 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);
- }
+ SkuId = x.PurchaseSkuId,
+ BelongSkuId = x.BelongSkuId,
+ ProductId = x.PurchaseProductId,
+ Quantity = x.Quantity ?? 1,
+ SpecId = x.PurchaseSpecId,
+ SchemeId = x.SchemeId.Value
+ }).ToList();
+
+ #region 等比计算采购成本
+ var proportionalCalculationResultList = ProportionalCalculationCost(cargoParamList, purchaseOrderSimpleInfo);
+ foreach (var proportionalCalculationResult in proportionalCalculationResultList)
+ {
+ var skuId = proportionalCalculationResult.SkuId;
#region 订单sku平价
- var orderSku = dbOrderSkus.FirstOrDefault(osku => osku.SkuId == belongSkuId);
if (isEditOrderPrice)
{
+ var orderSku = dbOrderSkus.FirstOrDefault(osku => osku.SkuId == skuId);
if (!oskuPriceEditParamDictionary.TryGetValue(orderSku.SkuId, out OP_EditPriceSkuRequest editSkuPrice))
{
editSkuPrice = new OP_EditPriceSkuRequest()
@@ -2817,35 +2859,87 @@ namespace BBWYB.Server.Business
};
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));
- //}
-
+ editSkuPrice.Price += proportionalCalculationResult.ProductAmount / (orderSku.ItemTotal ?? 1M);
+ editSkuPrice.Freight += proportionalCalculationResult.FreightAmount;
}
#endregion
- var dbOrderSkuDetail = dbOrderCostDetails.FirstOrDefault(ocd => ocd.SkuId == belongSkuId && ocd.PurchaseOrderId == opi.PurchaseOrderId);
- dbOrderSkuDetail.CalculationOrderCostDetailCostAndProfit(currentOrderSkuProductAmount,
- currentPurchaseFreight ?? 0M,
+ #region 更新sku成本明细
+ var dbOrderSkuDetail = dbOrderCostDetails.FirstOrDefault(ocd => ocd.SkuId == skuId && ocd.PurchaseOrderId == opi.PurchaseOrderId);
+ dbOrderSkuDetail.CalculationOrderCostDetailCostAndProfit(proportionalCalculationResult.ProductAmount,
+ proportionalCalculationResult.FreightAmount,
dbOrderSkuDetail.OutPackAmount ?? 0M,
dbOrderSkuDetail.DeliveryExpressFreight ?? 0M);
updateOrderCostDetailList.Add(fsql.Update().SetSource(dbOrderSkuDetail));
+ #endregion
+
}
+ #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)
@@ -3040,5 +3134,47 @@ namespace BBWYB.Server.Business
}
return cargoParamList;
}
+ ///
+ /// 等比计算sku采购成本
+ ///
+ ///
+ ///
+ ///
+ private IList ProportionalCalculationCost(IList cargoParamList,
+ PP_QueryOrderDetailResponse purchaseOrderSimpleInfo)
+ {
+ var list = new List();
+ var belongSkuGroups = cargoParamList.GroupBy(p => p.BelongSkuId);
+ var purchaseSkuTotalQuantity = cargoParamList.Sum(x => x.Quantity);
+ foreach (var belongSkuGroup in belongSkuGroups)
+ {
+ var skuId = belongSkuGroup.Key;
+ //var currentOrderSkuCargoParamList = cargoParamList.Where(p => p.BelongSkuId == skuId); //找当前skuId的采购skuId
+ var currentOrderSkuCargoParamList = belongSkuGroup.ToList(); //找当前skuId的采购skuId
+
+ var currentSkuAmount = 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.SkuId)
+ .Sum(p => p.ProductAmount);
+
+ var currentPurchaseSkuTotalQuantity = cargoParamList.Where(p => p.SkuId == currentOrderSkuCargo.SkuId)
+ .Sum(p => p.Quantity);
+
+ currentSkuAmount += currentPurchaseSkuProductAmount * (1.0M * currentOrderSkuCargo.Quantity / currentPurchaseSkuTotalQuantity);
+ }
+ list.Add(new ProportionalCalculationCostResult()
+ {
+ SkuId = skuId,
+ FreightAmount = currentPurchaseFreight,
+ ProductAmount = currentSkuAmount
+ });
+ }
+ return list;
+ }
}
}
diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
index 2ddcfe4..711c33e 100644
--- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
@@ -5,7 +5,6 @@ using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using FreeSql;
using Newtonsoft.Json.Linq;
-using Org.BouncyCastle.Bcpg;
using SDKAdapter;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
diff --git a/BBWYB.Server.Model/Dto/Core/ProportionalCalculationCostResult.cs b/BBWYB.Server.Model/Dto/Core/ProportionalCalculationCostResult.cs
new file mode 100644
index 0000000..15c0510
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Core/ProportionalCalculationCostResult.cs
@@ -0,0 +1,11 @@
+namespace BBWYB.Server.Model.Core
+{
+ public class ProportionalCalculationCostResult
+ {
+ public string SkuId { get; set; }
+
+ public decimal ProductAmount { get; set; }
+
+ public decimal FreightAmount { get; set; }
+ }
+}
From 18c9ce39bd38d269ff941b98d4176679f5bd9ffd Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Thu, 17 Aug 2023 14:46:02 +0800
Subject: [PATCH 34/89] =?UTF-8?q?10034=20=E5=8F=96=E6=B6=88=E9=87=87?=
=?UTF-8?q?=E8=B4=AD=E6=96=B9=E6=A1=88=E5=95=86=E5=93=81=E6=95=B0=E9=87=8F?=
=?UTF-8?q?=E9=99=90=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/GlobalContext.cs | 2 +-
.../ViewModels/Ware/BindingPurchaseProductViewModel.cs | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index 378bbe5..d0f3150 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10033";
+ BBWYBApiVersion = "10034";
}
private User user;
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index 0735a59..ea137ac 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
@@ -290,11 +290,11 @@ namespace BBWYB.Client.ViewModels
SkuId = productSku.Id
};
}
- else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
- {
- MessageBox.Show("该采购方案的商品数量已达上限(4)");
- return;
- }
+ //else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
+ //{
+ // MessageBox.Show("该采购方案的商品数量已达上限(4)");
+ // return;
+ //}
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Add(new PurchaseSchemeProduct()
{
From c9315ac0f3566bcfc4c0e8b95c1399e9ca041589 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 19 Aug 2023 00:35:10 +0800
Subject: [PATCH 35/89] =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=95=B0=E9=87=8F=E9=99=90=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/GlobalContext.cs | 2 +-
.../ViewModels/Ware/BindingPurchaseProductViewModel.cs | 10 +++++-----
BBWYB.Client/Views/Ware/WareManager.xaml | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index d0f3150..e3b24d0 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10034";
+ BBWYBApiVersion = "10035";
}
private User user;
diff --git a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
index ea137ac..5a678d6 100644
--- a/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
+++ b/BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
@@ -276,11 +276,11 @@ namespace BBWYB.Client.ViewModels
private void AddPurchaseProduct(ProductSku productSku)
{
- if (productSku.PurchaseSchemeList.Count > 4)
- {
- MessageBox.Show("该sku的采购方案已达上限(5)");
- return;
- }
+ //if (productSku.PurchaseSchemeList.Count > 4)
+ //{
+ // MessageBox.Show("该sku的采购方案已达上限(5)");
+ // return;
+ //}
if (productSku.SelectedPurchaseScheme == null)
{
diff --git a/BBWYB.Client/Views/Ware/WareManager.xaml b/BBWYB.Client/Views/Ware/WareManager.xaml
index c19224b..fb7aa82 100644
--- a/BBWYB.Client/Views/Ware/WareManager.xaml
+++ b/BBWYB.Client/Views/Ware/WareManager.xaml
@@ -127,7 +127,7 @@
-
+
From 75622d674f880239cebe0f92ea48cd31f9a26b20 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 19 Aug 2023 01:20:40 +0800
Subject: [PATCH 36/89] 1
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 7 +++++--
.../Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs | 2 ++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 1aaa0d6..f19868c 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -320,10 +320,13 @@ namespace BBWYB.Server.Business
amount += purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
}
- if (purchaseScheme.DefaultCost != amount)
+ if (purchaseScheme.RealCost != amount ||
+ purchaseScheme.DefaultCost != amount)
{
+ purchaseScheme.RealCost = amount;
purchaseScheme.DefaultCost = amount;
- var update = fsql.Update(purchaseScheme.Id).Set(p => p.DefaultCost, amount);
+ var update = fsql.Update(purchaseScheme.Id).Set(p => p.RealCost, amount)
+ .Set(p => p.DefaultCost, amount);
updatePurchaseSchemeList.Add(update);
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
index e1c617b..2b62f1a 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
@@ -12,6 +12,8 @@ namespace BBWYB.Server.Model.Dto
//public string PurchaserLocation { get; set; }
+ public decimal LastPurchasePriceCost { get => RealCost; }
+
public new List PurchaseSchemeProductList { get; set; }
public List PurchaserList { get; set; }
From dec97cd819d237b9b5da8437ddf4b2f37355b3de Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 20 Aug 2023 21:41:10 +0800
Subject: [PATCH 37/89] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=B4=A7=E6=BA=90=E4=BB=B7=E6=A0=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseOrder/PurchaseOrderBusiness.cs | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index bd6ca55..5c2a6c5 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -635,8 +635,8 @@ namespace BBWYB.Server.Business
fsql.Insert(insertOrderPurchaseRelationInfoList).ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
insertOrderCost?.ExecuteAffrows();
- if (updatePurchaseTimeSchemeIdList.Count() > 0)
- fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
+ //if (updatePurchaseTimeSchemeIdList.Count() > 0)
+ // fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
fsql.Update(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true)
@@ -649,6 +649,21 @@ namespace BBWYB.Server.Business
update.ExecuteAffrows();
}
});
+
+ #region 更新采购方案最新价格
+ Task.Factory.StartNew(() =>
+ {
+ try
+ {
+ purchaseSchemeBusiness.RefreshPurchaseScheme(new RefreshSchemeRequest()
+ {
+ SchemeIdList = updatePurchaseTimeSchemeIdList
+ });
+ }
+ catch { }
+
+ }, CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
+ #endregion
}
///
From cf380fd6a0240a789db7c641ffae40114eaa638a Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Mon, 21 Aug 2023 09:10:32 +0800
Subject: [PATCH 38/89] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=95=B0=E9=87=8F=E6=8E=A5=E5=8F=A3=20?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E5=A2=9E=E5=8A=A0=E9=87=87?=
=?UTF-8?q?=E8=B4=AD=E9=85=8D=E4=BB=B6=E5=AE=9E=E9=99=85=E5=8D=95=E4=BB=B7?=
=?UTF-8?q?=20=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E7=9A=84=E9=87=87?=
=?UTF-8?q?=E8=B4=AD=E6=88=90=E6=9C=AC=E7=94=B1=E6=9C=8D=E5=8A=A1=E7=AB=AF?=
=?UTF-8?q?=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 29 ++-
.../PurchaseOrder/PurchaseOrderBusiness.cs | 32 +--
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 184 +++++++++++-------
.../Db/PurchaseScheme/PurchaseScheme.cs | 11 +-
.../Purchaseschemeproductsku.cs | 7 +-
...EditPurchaseRatioAndActualPriceRequest.cs} | 4 +-
.../EditPurchaseSchemeRequest.cs | 3 +
.../InputPurchaseSchemeProductRequest.cs | 7 +-
.../InputPurchaseSchemeProductSkuRequest.cs | 21 +-
.../InputPurchaseSchemeRequest.cs | 34 +---
.../PurchaseScheme/QuerySchemeCountRequest.cs | 8 +
.../PurchaseSchemeCountResponse.cs | 9 +
.../PurchaseScheme/PurchaseSchemeResponse.cs | 2 -
13 files changed, 196 insertions(+), 155 deletions(-)
rename BBWYB.Server.Model/Dto/Request/PurchaseScheme/{EditPurchaseRatioRequest.cs => EditPurchaseRatioAndActualPriceRequest.cs} (68%)
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeCountResponse.cs
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 840a9c4..debd730 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -38,6 +38,17 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
+ ///
+ /// 获取Sku采购方案数量
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetPurchaseSchemeCountList([FromBody] QuerySchemeCountRequest request)
+ {
+ return purchaseSchemeBusiness.GetPurchaseSchemeCountList(request);
+ }
+
/////
///// 删除采购商
/////
@@ -102,14 +113,14 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.RefreshPurchaseScheme(request);
}
- ///
- /// 修改采购配件比例
- ///
- ///
- [HttpPost]
- public void EditPurchaseRatio([FromBody]EditPurchaseRatioRequest request)
- {
- purchaseSchemeBusiness.EditPurchaseRatio(request);
- }
+ /////
+ ///// 修改采购配件比例
+ /////
+ /////
+ //[HttpPost]
+ //public void EditPurchaseRatio([FromBody]EditPurchaseRatioAndActualPriceRequest request)
+ //{
+ // purchaseSchemeBusiness.EditPurchaseRatio(request);
+ //}
}
}
diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 5c2a6c5..5bce4dd 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -635,8 +635,8 @@ namespace BBWYB.Server.Business
fsql.Insert(insertOrderPurchaseRelationInfoList).ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
insertOrderCost?.ExecuteAffrows();
- //if (updatePurchaseTimeSchemeIdList.Count() > 0)
- // fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
+ if (updatePurchaseTimeSchemeIdList.Count() > 0)
+ fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows();
fsql.Update(request.OrderId).Set(o => o.OrderState, dbOrder.OrderState)
.SetIf(!string.IsNullOrEmpty(request.Remark), o => o.PurchaseRemark, request.Remark)
.Set(o => o.IsPurchased, true)
@@ -650,20 +650,20 @@ namespace BBWYB.Server.Business
}
});
- #region 更新采购方案最新价格
- Task.Factory.StartNew(() =>
- {
- try
- {
- purchaseSchemeBusiness.RefreshPurchaseScheme(new RefreshSchemeRequest()
- {
- SchemeIdList = updatePurchaseTimeSchemeIdList
- });
- }
- catch { }
+ //#region 更新采购方案最新价格
+ //Task.Factory.StartNew(() =>
+ //{
+ // try
+ // {
+ // purchaseSchemeBusiness.RefreshPurchaseScheme(new RefreshSchemeRequest()
+ // {
+ // SchemeIdList = updatePurchaseTimeSchemeIdList
+ // });
+ // }
+ // catch { }
- }, CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
- #endregion
+ //}, CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
+ //#endregion
}
///
@@ -3140,7 +3140,7 @@ namespace BBWYB.Server.Business
SkuId = pss.PurchaseSkuId,
SchemeId = pss.SkuPurchaseSchemeId,
SpecId = pss.PurchaseSkuSpecId,
- Quantity = (itemTotal * pss.PurchaseRatio) ?? 1
+ Quantity = itemTotal * (pss.PurchaseRatio ?? 1)
}));
}
break;
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index f19868c..9477a0c 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -61,67 +61,101 @@ namespace BBWYB.Server.Business
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0 && batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
+ throw new BusinessException("编辑方案中采购方案缺少Id");
- List addPurchaseSchemeList = null;
+ List addPurchaseSchemeList = new List();
List addPurchaseSchemeProductList = new List();
List addPurchaseSchemeProductSkuList = new List();
List newPurchaserList = new List();
List deletePurchaseSchemeIdList = new List();
+ List> updatePurchaseSchemeList = new List>();
- #region 新增采购方案
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
- addPurchaseSchemeList = batchCURDSchemeRequest.AddPurchaseSchemeList.Map>();
-
- foreach (var scheme in addPurchaseSchemeList)
+ foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
{
- scheme.Id = idGenerator.NewLong();
- scheme.CreateTime = DateTime.Now;
-
- foreach (var purchaseProduct in scheme.PurchaseSchemeProductList)
+ var ps = new PurchaseScheme()
{
- purchaseProduct.Id = idGenerator.NewLong();
- purchaseProduct.CreateTime = DateTime.Now;
- purchaseProduct.SkuPurchaseSchemeId = scheme.Id;
- foreach (var purchaseProductSku in purchaseProduct.PurchaseSchemeProductSkuList)
+ CreateTime = DateTime.Now,
+ Id = idGenerator.NewLong(),
+ ProductId = psReq.ProductId,
+ SkuId = psReq.SkuId,
+ ShopId = psReq.ShopId
+ };
+ addPurchaseSchemeList.Add(ps);
+ foreach (var pspReq in psReq.PurchaseSchemeProductList)
+ {
+ var psp = pspReq.Map();
+ psp.Id = idGenerator.NewLong();
+ psp.CreateTime = DateTime.Now;
+ psp.SkuPurchaseSchemeId = ps.Id;
+ addPurchaseSchemeProductList.Add(psp);
+
+ foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
{
- purchaseProductSku.Id = idGenerator.NewLong();
- purchaseProductSku.CreateTime = DateTime.Now;
- purchaseProductSku.SkuPurchaseSchemeId = scheme.Id;
+ var pss = pssReq.Map();
+ pss.Id = idGenerator.NewLong();
+ pss.CreateTime = DateTime.Now;
+ pss.SkuPurchaseSchemeId = ps.Id;
+ addPurchaseSchemeProductSkuList.Add(pss);
+ ps.DefaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
}
- addPurchaseSchemeProductSkuList.AddRange(purchaseProduct.PurchaseSchemeProductSkuList);
}
- addPurchaseSchemeProductList.AddRange(scheme.PurchaseSchemeProductList);
}
}
- #endregion
#region 更新采购方案
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{
- //ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList);
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
-
- var editPurchaseSchemeList = batchCURDSchemeRequest.EditPurchaseSchemeList.Map>();
- foreach (var scheme in editPurchaseSchemeList)
+ foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
{
- foreach (var purchaseProduct in scheme.PurchaseSchemeProductList)
+ var schemeId = psReq.Id;
+ var defaultCost = 0M;
+ foreach (var pspReq in psReq.PurchaseSchemeProductList)
{
- purchaseProduct.Id = idGenerator.NewLong();
- purchaseProduct.CreateTime = DateTime.Now;
- purchaseProduct.SkuPurchaseSchemeId = scheme.Id;
- foreach (var purchaseProductSku in purchaseProduct.PurchaseSchemeProductSkuList)
+ var psp = pspReq.Map();
+ psp.Id = idGenerator.NewLong();
+ psp.CreateTime = DateTime.Now;
+ psp.SkuPurchaseSchemeId = schemeId;
+ addPurchaseSchemeProductList.Add(psp);
+
+ foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
{
- purchaseProductSku.Id = idGenerator.NewLong();
- purchaseProductSku.CreateTime = DateTime.Now;
- purchaseProductSku.SkuPurchaseSchemeId = scheme.Id;
+ var pss = pssReq.Map();
+ pss.Id = idGenerator.NewLong();
+ pss.CreateTime = DateTime.Now;
+ pss.SkuPurchaseSchemeId = schemeId;
+ addPurchaseSchemeProductSkuList.Add(pss);
+ defaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
}
- addPurchaseSchemeProductSkuList.AddRange(purchaseProduct.PurchaseSchemeProductSkuList);
}
- addPurchaseSchemeProductList.AddRange(scheme.PurchaseSchemeProductList);
+ var psupdate = fsql.Update(schemeId)
+ .Set(ps => ps.DefaultCost, defaultCost);
+ updatePurchaseSchemeList.Add(psupdate);
}
+
+ //var editPurchaseSchemeList = batchCURDSchemeRequest.EditPurchaseSchemeList.Map>();
+ //foreach (var scheme in editPurchaseSchemeList)
+ //{
+ // foreach (var purchaseProduct in scheme.PurchaseSchemeProductList)
+ // {
+ // purchaseProduct.Id = idGenerator.NewLong();
+ // purchaseProduct.CreateTime = DateTime.Now;
+ // purchaseProduct.SkuPurchaseSchemeId = scheme.Id;
+ // foreach (var purchaseProductSku in purchaseProduct.PurchaseSchemeProductSkuList)
+ // {
+ // purchaseProductSku.Id = idGenerator.NewLong();
+ // purchaseProductSku.CreateTime = DateTime.Now;
+ // purchaseProductSku.SkuPurchaseSchemeId = scheme.Id;
+ // }
+ // addPurchaseSchemeProductSkuList.AddRange(purchaseProduct.PurchaseSchemeProductSkuList);
+ // }
+ // addPurchaseSchemeProductList.AddRange(scheme.PurchaseSchemeProductList);
+ //}
}
#endregion
@@ -150,7 +184,11 @@ namespace BBWYB.Server.Business
fsql.Insert(addPurchaseSchemeProductList).ExecuteAffrows();
if (addPurchaseSchemeProductSkuList.Count > 0)
fsql.Insert(addPurchaseSchemeProductSkuList).ExecuteAffrows();
-
+ if (updatePurchaseSchemeList.Count() > 0)
+ {
+ foreach (var update in updatePurchaseSchemeList)
+ update.ExecuteAffrows();
+ }
});
}
@@ -284,49 +322,40 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
+ public IList GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
+ {
+ var list = fsql.Select().Where(ps => ps.ShopId == request.ShopId &&
+ request.SkuIdList.Contains(ps.SkuId))
+ .GroupBy(ps => ps.SkuId)
+ .ToList(g => new PurchaseSchemeCountResponse()
+ {
+ SkuId = g.Key,
+ SchemeCount = g.Count()
+ });
+ return list;
+ }
+
public IList RefreshPurchaseScheme(RefreshSchemeRequest request)
{
var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
{
- SchemeIdList = request.SchemeIdList
+ SchemeIdList = request.SchemeIdList,
+ IncludePurchaseSkuBasicInfo = 1
});
List> updatePurchaseSchemeList = new List>();
- foreach (var purchaseScheme in purchaseSchemeList)
+ foreach (var ps in purchaseSchemeList)
{
- var amount = 0M;
- var purchasePlatformGroups = purchaseScheme.PurchaseSchemeProductList.GroupBy(p => p.PurchasePlatform);
- foreach (var purchasePlatformGroup in purchasePlatformGroups)
+ var defaultCost = 0M;
+ foreach (var psp in ps.PurchaseSchemeProductList)
{
- var purchaseProductIds = purchasePlatformGroup.Select(p => p.PurchaseProductId).ToArray();
- var purchaseSkuIds = new List();
- foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
- {
- purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
- }
- var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
- {
- FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
- PriceMode = Enums.PurchaseOrderMode.批发,
- Params = new List()
+ foreach (var pss in psp.PurchaseSchemeProductSkuList)
{
- new BatchPurchaseSkuBasicInfoParamRequest()
- {
- Platform = purchasePlatformGroup.Key.Value,
- PurchaseProductIds = purchaseProductIds,
- PurchaseSkuIds = purchaseSkuIds
- }
+ defaultCost += ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1);
}
- });
- amount += purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
}
-
- if (purchaseScheme.RealCost != amount ||
- purchaseScheme.DefaultCost != amount)
+ if (ps.DefaultCost != defaultCost)
{
- purchaseScheme.RealCost = amount;
- purchaseScheme.DefaultCost = amount;
- var update = fsql.Update(purchaseScheme.Id).Set(p => p.RealCost, amount)
- .Set(p => p.DefaultCost, amount);
+ var update = fsql.Update(ps.Id).Set(p => p.DefaultCost, defaultCost);
updatePurchaseSchemeList.Add(update);
}
}
@@ -440,15 +469,20 @@ namespace BBWYB.Server.Business
return list;
}
- public void EditPurchaseRatio(EditPurchaseRatioRequest request)
- {
- if (request.Ratio < 1)
- request.Ratio = 1;
- fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
- .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
- pss.SkuId == request.SkuId &&
- pss.PurchaseSkuId == request.PurchaseSkuId)
- .ExecuteAffrows();
- }
+ //public void EditPurchaseRatio(EditPurchaseRatioAndActualPriceRequest request)
+ //{
+ // if (request.Ratio < 1)
+ // request.Ratio = 1;
+
+
+ // fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
+ // .Set(pss => pss.ActualPrice, request.ActualPrice)
+ // .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
+ // pss.SkuId == request.SkuId &&
+ // pss.PurchaseSkuId == request.PurchaseSkuId)
+ // .ExecuteAffrows();
+
+
+ //}
}
}
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index 356d97b..7fd4b57 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -26,6 +26,11 @@ namespace BBWYB.Server.Model
public decimal DefaultCost { get; set; } = 0.0M;
+ ///
+ /// 上次采购成本
+ ///
+ public decimal LastPurchasePriceCost { get; set; } = 0.0M;
+
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
@@ -35,12 +40,6 @@ namespace BBWYB.Server.Model
//[Column(StringLength = 20)]
//public string PurchaserId { get; set; }
- ///
- /// 采购实际成本
- ///
-
- public decimal RealCost { get; set; } = 0.0M;
-
[Column(StringLength = 50, IsNullable = false)]
public string SkuId { get; set; }
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
index af819ee..8d4a605 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/Purchaseschemeproductsku.cs
@@ -50,7 +50,12 @@ namespace BBWYB.Server.Model.Db
/// 采购比例
///
[Column(DbType = "int(1)", IsNullable = true)]
- public int? PurchaseRatio { get; set; }
+ public int? PurchaseRatio { get; set; } = 1;
+
+ ///
+ /// 实际单价
+ ///
+ public decimal? ActualPrice { get; set; } = 0.00M;
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
similarity index 68%
rename from BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
rename to BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
index 0eebc71..a72e569 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
@@ -1,6 +1,6 @@
namespace BBWYB.Server.Model.Dto
{
- public class EditPurchaseRatioRequest
+ public class EditPurchaseRatioAndActualPriceRequest
{
public long SchemeId { get; set; }
@@ -9,5 +9,7 @@
public string PurchaseSkuId { get; set; }
public int Ratio { get; set; }
+
+ public decimal ActualPrice { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseSchemeRequest.cs
index f82c2fb..a5c8f9b 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseSchemeRequest.cs
@@ -2,6 +2,9 @@
{
public class EditPurchaseSchemeRequest: InputPurchaseSchemeRequest
{
+ ///
+ /// 采购方案Id
+ ///
public long Id { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
index e9bf736..e8ea75e 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
@@ -2,13 +2,8 @@
{
public class InputPurchaseSchemeProductRequest
{
- ///
- /// 店铺商品Id
- ///
public string ProductId { get; set; }
- ///
- /// 店铺商品SkuId
- ///
+
public string SkuId { get; set; }
///
/// 采购商品Id
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
index 14b9bb5..1a6050a 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
@@ -1,13 +1,10 @@
namespace BBWYB.Server.Model.Dto
{
public class InputPurchaseSchemeProductSkuRequest
- {///
- /// 店铺商品Id
- ///
+ {
+
public string ProductId { get; set; }
- ///
- /// 店铺商品Sku
- ///
+
public string SkuId { get; set; }
///
/// 采购商品Id
@@ -18,7 +15,7 @@
///
public string PurchaseSkuId { get; set; }
///
- /// 采购Ske SpecId (1688独有)
+ /// 采购SpecId (1688独有)
///
public string PurchaseSkuSpecId { get; set; }
@@ -26,5 +23,15 @@
/// 采购配比
///
public int? PurchaseRatio { get; set; }
+
+ ///
+ /// 实际单价(人工填写的单价,未填写传0或null)
+ ///
+ public decimal? ActualPrice { get; set; }
+
+ ///
+ /// 默认单价(采购配件基本信息接口里的单价)
+ ///
+ public decimal? DefaultPrice { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index bfce735..6a11c88 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -4,40 +4,10 @@ namespace BBWYB.Server.Model.Dto
{
public class InputPurchaseSchemeRequest
{
- public string ShopId { get; set; }
+ public long ShopId { get; set; }
public string ProductId { get; set; }
public string SkuId { get; set; }
- ///
- /// 采购默认成本
- ///
- public decimal? DefaultCost { get; set; }
- ///
- /// 采购实际成本
- ///
- public decimal? RealCost { get; set; }
- /////
- ///// 采购商Id
- /////
- //public string PurchaserId { get; set; }
-
- /////
- ///// 采购商Id
- /////
- //public string PurchaserId2 { get; set; }
-
- /////
- ///// 采购商名称
- /////
- //public string PurchaserName { get; set; }
- /////
- ///// 采购商发货地
- /////
- //public string PurchaserLocation { get; set; }
- /////
- ///// 采购平台
- /////
- //public Enums.Platform PurchasePlatform { get; set; } = Enums.Platform.阿里巴巴;
-
+
public IList PurchaseSchemeProductList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
new file mode 100644
index 0000000..063f392
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
@@ -0,0 +1,8 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class QuerySchemeCountRequest
+ {
+ public long? ShopId { get; set; }
+ public IList SkuIdList { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeCountResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeCountResponse.cs
new file mode 100644
index 0000000..746ad2b
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeCountResponse.cs
@@ -0,0 +1,9 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class PurchaseSchemeCountResponse
+ {
+ public string SkuId { get; set; }
+
+ public int SchemeCount { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
index 2b62f1a..e1c617b 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
@@ -12,8 +12,6 @@ namespace BBWYB.Server.Model.Dto
//public string PurchaserLocation { get; set; }
- public decimal LastPurchasePriceCost { get => RealCost; }
-
public new List PurchaseSchemeProductList { get; set; }
public List PurchaserList { get; set; }
From 7d04fba6f352acd51bcae49997ccb158b6901954 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Tue, 22 Aug 2023 12:39:49 +0800
Subject: [PATCH 39/89] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20spu=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2(=E5=8C=85=E5=90=ABsku)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/ProductController.cs | 11 +++
.../Product/ProductBusiness.cs | 74 +++++++++++++++++++
BBWYB.Server.Model/BBWYB.Server.Model.csproj | 4 +
.../Request/Product/QueryBProductRequest.cs | 8 ++
.../Dto/Response/Product/BProductResponse.cs | 16 ++++
5 files changed, 113 insertions(+)
create mode 100644 BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
diff --git a/BBWYB.Server.API/Controllers/ProductController.cs b/BBWYB.Server.API/Controllers/ProductController.cs
index 9aeec32..8435f26 100644
--- a/BBWYB.Server.API/Controllers/ProductController.cs
+++ b/BBWYB.Server.API/Controllers/ProductController.cs
@@ -35,6 +35,17 @@ namespace BBWYB.Server.API.Controllers
return productBusiness.GetProductSkuList(request);
}
+ ///
+ /// spu列表查询(包含sku)
+ ///
+ ///
+ ///
+ [HttpPost]
+ public BProductListResponse GetProductAndSkuList([FromBody]QueryBProductRequest request)
+ {
+ return productBusiness.GetProductAndSkuList(request);
+ }
+
///
/// 查询sku现有售价
///
diff --git a/BBWYB.Server.Business/Product/ProductBusiness.cs b/BBWYB.Server.Business/Product/ProductBusiness.cs
index d8b6326..f925b39 100644
--- a/BBWYB.Server.Business/Product/ProductBusiness.cs
+++ b/BBWYB.Server.Business/Product/ProductBusiness.cs
@@ -27,6 +27,80 @@ namespace BBWYB.Server.Business
return opPlatformClientFactory.GetClient(request.Platform).GetProductSkuList(request);
}
+ public BProductListResponse GetProductAndSkuList(QueryBProductRequest request)
+ {
+ if (string.IsNullOrEmpty(request.Spu) && !string.IsNullOrEmpty(request.Sku))
+ {
+ var skuResponse = GetProductSkuList(new OP_QueryProductSkuRequest()
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = 1,
+ PageSize = 50,
+ Platform = request.Platform,
+ Sku = request.Sku,
+ Spu = request.Spu
+ });
+ if (skuResponse.Count > 0)
+ {
+ request.Spu = skuResponse.Items.FirstOrDefault().ProductId;
+ request.PageIndex = 1;
+ request.PageSize = 50;
+ }
+ }
+
+ var list = new List();
+ var spuResponse = GetProductList(new OP_QueryProductRequest()
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = request.PageIndex,
+ PageSize = request.PageSize,
+ Platform = request.Platform,
+ Spu = request.Spu
+ });
+
+ if (spuResponse.Items.Count() > 0)
+ {
+ foreach (var op_product in spuResponse.Items)
+ {
+ var bproduct = new BProductResponse()
+ {
+ Id = op_product.Id,
+ BrandName = op_product.BrandName,
+ CreateTime = op_product.CreateTime,
+ Logo = op_product.Logo,
+ ProductItemNum = op_product.ProductItemNum,
+ State = op_product.State,
+ Title = op_product.Title
+ };
+ list.Add(bproduct);
+ var skuResponse = GetProductSkuList(new OP_QueryProductSkuRequest
+ {
+ AppSecret = request.AppSecret,
+ AppKey = request.AppKey,
+ AppToken = request.AppToken,
+ PageIndex = 1,
+ PageSize = 50,
+ Platform = request.Platform,
+ Spu = op_product.Id
+ });
+ if (skuResponse.Count > 0)
+ {
+ bproduct.SkuList = skuResponse.Items;
+ }
+ }
+ }
+
+ return new BProductListResponse()
+ {
+ Count = spuResponse.Count,
+ Items = list
+ };
+ }
+
public decimal? GetProductSkuPrice(QueryProductSkuPriceRequest request)
{
var response = GetProductSkuList(new OP_QueryProductSkuRequest()
diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
index 54ecedd..bcfb11f 100644
--- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj
+++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
@@ -16,4 +16,8 @@
+
+
+
+
diff --git a/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs b/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
new file mode 100644
index 0000000..a05a8ee
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Product/QueryBProductRequest.cs
@@ -0,0 +1,8 @@
+using SDKAdapter.OperationPlatform.Models;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class QueryBProductRequest: OP_QueryProductSkuRequest
+ {
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
new file mode 100644
index 0000000..08342b4
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
@@ -0,0 +1,16 @@
+using SDKAdapter.OperationPlatform.Models;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class BProductResponse : OP_ProductResponse
+ {
+ public IList SkuList { get; set; }
+ }
+
+ public class BProductListResponse
+ {
+ public int Count { get; set; }
+
+ public IList Items { get; set; }
+ }
+}
From 7a95770d9a7c25e2d44163cbaf59f7cca7d9f695 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Tue, 22 Aug 2023 14:45:14 +0800
Subject: [PATCH 40/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=95=86=E5=93=81?=
=?UTF-8?q?=E5=90=ABsku=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E=E6=96=B9?=
=?UTF-8?q?=E6=A1=88=E6=95=B0=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Product/ProductBusiness.cs | 29 +++++++++++++++++--
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 3 +-
.../PurchaseScheme/QuerySchemeCountRequest.cs | 1 -
.../Dto/Response/Product/BProductResponse.cs | 2 +-
.../Response/Product/BProductSkuResponse.cs | 9 ++++++
5 files changed, 38 insertions(+), 6 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs
diff --git a/BBWYB.Server.Business/Product/ProductBusiness.cs b/BBWYB.Server.Business/Product/ProductBusiness.cs
index f925b39..35954b7 100644
--- a/BBWYB.Server.Business/Product/ProductBusiness.cs
+++ b/BBWYB.Server.Business/Product/ProductBusiness.cs
@@ -2,6 +2,7 @@
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Dto;
+using Microsoft.Extensions.DependencyInjection;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
using Yitter.IdGenerator;
@@ -11,10 +12,13 @@ namespace BBWYB.Server.Business
public class ProductBusiness : BaseBusiness, IDenpendency
{
private OP_PlatformClientFactory opPlatformClientFactory;
+ private Lazy purchaseSchemeBusinessLazy;
+ private PurchaseSchemeBusiness purchaseSchemeBusiness => purchaseSchemeBusinessLazy.Value;
- public ProductBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator)
+ public ProductBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory, IServiceProvider serviceProvider) : base(fsql, nLogManager, idGenerator)
{
this.opPlatformClientFactory = opPlatformClientFactory;
+ this.purchaseSchemeBusinessLazy = new Lazy(() => serviceProvider.GetService());
}
public OP_ProductListResponse GetProductList(OP_QueryProductRequest request)
@@ -62,6 +66,7 @@ namespace BBWYB.Server.Business
Spu = request.Spu
});
+ var skuIdList = new List();
if (spuResponse.Items.Count() > 0)
{
foreach (var op_product in spuResponse.Items)
@@ -89,11 +94,31 @@ namespace BBWYB.Server.Business
});
if (skuResponse.Count > 0)
{
- bproduct.SkuList = skuResponse.Items;
+ bproduct.SkuList = skuResponse.Items.Select(x => new BProductSkuResponse()
+ {
+ CreateTime = x.CreateTime,
+ Id = x.Id,
+ Logo = x.Logo,
+ Price = x.Price,
+ ProductId = x.ProductId,
+ State = x.State,
+ Title = x.Title
+ }).ToList();
+ skuIdList.AddRange(skuResponse.Items.Select(s => s.Id));
}
}
}
+ var schemeCountRes = purchaseSchemeBusiness.GetPurchaseSchemeCountList(new QuerySchemeCountRequest()
+ {
+ SkuIdList = skuIdList
+ });
+ foreach (var bproduct in list)
+ {
+ foreach (var bsku in bproduct.SkuList)
+ bsku.SchemeCount = schemeCountRes.FirstOrDefault(ps => ps.SkuId == bsku.Id)?.SchemeCount ?? 0;
+ }
+
return new BProductListResponse()
{
Count = spuResponse.Count,
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 9477a0c..7acb9a7 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -324,8 +324,7 @@ namespace BBWYB.Server.Business
public IList GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
{
- var list = fsql.Select().Where(ps => ps.ShopId == request.ShopId &&
- request.SkuIdList.Contains(ps.SkuId))
+ var list = fsql.Select().Where(ps => request.SkuIdList.Contains(ps.SkuId))
.GroupBy(ps => ps.SkuId)
.ToList(g => new PurchaseSchemeCountResponse()
{
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
index 063f392..abcd89c 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
@@ -2,7 +2,6 @@
{
public class QuerySchemeCountRequest
{
- public long? ShopId { get; set; }
public IList SkuIdList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
index 08342b4..c970007 100644
--- a/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
@@ -4,7 +4,7 @@ namespace BBWYB.Server.Model.Dto
{
public class BProductResponse : OP_ProductResponse
{
- public IList SkuList { get; set; }
+ public IList SkuList { get; set; }
}
public class BProductListResponse
diff --git a/BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs
new file mode 100644
index 0000000..756e817
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs
@@ -0,0 +1,9 @@
+using SDKAdapter.OperationPlatform.Models;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class BProductSkuResponse: OP_ProductSkuResponse
+ {
+ public int SchemeCount { get; set; }
+ }
+}
From 201f6be79f1a2c257a6dbb901dd4d50f017e12b6 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Wed, 23 Aug 2023 15:23:27 +0800
Subject: [PATCH 41/89] =?UTF-8?q?=E5=85=B6=E4=BB=96=E4=BB=93=E4=B8=8D?=
=?UTF-8?q?=E5=8C=85=E8=A3=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Extensions/OrderStateExtension.cs | 10 +++-------
BBWYB.Server.Model/Enums.cs | 4 ++--
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
index 9b5c861..eef8e59 100644
--- a/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
+++ b/BBWYB.Server.Business/Extensions/OrderStateExtension.cs
@@ -117,14 +117,10 @@ namespace BBWYB.Server.Business
{
if (order.OrderState != Enums.OrderState.待核算)
order.OrderState = Enums.OrderState.待验收;
- //if (jdInStoreOrderDetailList == null || jdInStoreOrderDetailList.Count() == 0 || jdInStoreOrderDetailList.Any(x => x.storageStatus != "2"))
- //{
- // order.OrderState = Enums.OrderState.待验收;
- // IsNotifyDingDingWhenInStoreOrderFail = true;
- //}
- //else
- // order.OrderState = Enums.OrderState.待核算;
+
}
+ else if (order.IntoStoreType == Enums.IntoStoreType.其他仓不包装)
+ order.OrderState = Enums.OrderState.待核算;
return;
}
#endregion
diff --git a/BBWYB.Server.Model/Enums.cs b/BBWYB.Server.Model/Enums.cs
index 0c1429f..104bf09 100644
--- a/BBWYB.Server.Model/Enums.cs
+++ b/BBWYB.Server.Model/Enums.cs
@@ -300,11 +300,11 @@
}
///
- /// 入仓类型 (发回齐越 = 0, 厂商代发入仓 = 1)
+ /// 入仓类型 (发回齐越 = 0, 厂商代发入仓 = 1,其他仓不包装 = 2)
///
public enum IntoStoreType
{
- 发回齐越 = 0, 厂商代发入仓 = 1
+ 发回齐越 = 0, 厂商代发入仓 = 1, 其他仓不包装 = 2
}
///
From 36ea8660f1854ec2d71c5905b593fb14ec096760 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Thu, 24 Aug 2023 23:10:29 +0800
Subject: [PATCH 42/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/OrderSyncController.cs | 14 +++++++++++++-
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs | 16 ++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/BBWYB.Server.API/Controllers/OrderSyncController.cs b/BBWYB.Server.API/Controllers/OrderSyncController.cs
index be68e77..c461613 100644
--- a/BBWYB.Server.API/Controllers/OrderSyncController.cs
+++ b/BBWYB.Server.API/Controllers/OrderSyncController.cs
@@ -31,5 +31,17 @@ namespace BBWYB.Server.API.Controllers
{
orderSyncBusiness.ManualOrderSync(shopId, orderId, null, null);
}
- }
+
+ ///
+ /// 根据时间同步订单
+ ///
+ ///
+ ///
+ ///
+ [HttpPost]
+ public void ManualOrderSyncByTime([FromQuery] long shopId, [FromQuery] DateTime startTime, [FromQuery] DateTime endTime)
+ {
+ orderSyncBusiness.ManualOrderSync(shopId, startTime, endTime);
+ }
+ }
}
diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
index 711c33e..9cf75d4 100644
--- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
@@ -43,6 +43,22 @@ namespace BBWYB.Server.Business.Sync
Task.Factory.StartNew(() => Sync(shop, orderId, startTime, endTime, AdapterEnums.SortTimeField.Modify, AdapterEnums.SortType.Desc), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
}
+ public void ManualOrderSync(long shopId, DateTime startTime, DateTime endTime)
+ {
+ var shop = venderBusiness.GetShopList(shopId, platform: Enums.Platform.拳探).FirstOrDefault();
+ if (shop == null)
+ throw new BusinessException($"未找到店铺Id {shopId}");
+ while (true)
+ {
+ var s = startTime;
+ var e = s.AddHours(3);
+ Sync(shop, string.Empty, s, e, AdapterEnums.SortTimeField.Modify, AdapterEnums.SortType.Desc);
+ if (e >= endTime)
+ break;
+ startTime = startTime.AddHours(3);
+ }
+ }
+
private void Sync(ShopResponse shop,
string orderId,
DateTime? startTime,
From e3fba1a56b2f647138e8d701d426a2cd79f912d3 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Fri, 25 Aug 2023 13:10:51 +0800
Subject: [PATCH 43/89] =?UTF-8?q?=E4=B8=B9=E9=B8=9F=E7=89=A9=E6=B5=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
SDKAdapter/ExpressCompanyNameConverter.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/SDKAdapter/ExpressCompanyNameConverter.cs b/SDKAdapter/ExpressCompanyNameConverter.cs
index 7ea24ce..9ae4333 100644
--- a/SDKAdapter/ExpressCompanyNameConverter.cs
+++ b/SDKAdapter/ExpressCompanyNameConverter.cs
@@ -127,7 +127,9 @@ namespace SDKAdapter
new LogisticsCompanyRelationship(){SourceName="京东物流",TargetName="京东物流",TargetCode="jd"},
new LogisticsCompanyRelationship(){SourceName="速腾快递",TargetName="速腾快递",TargetCode="suteng"},
new LogisticsCompanyRelationship(){SourceName="运通快运",TargetName="运通快运",TargetCode="ytky168"},
- new LogisticsCompanyRelationship(){SourceName="汇森速运",TargetName="汇森速运",TargetCode="huisenky"}
+ new LogisticsCompanyRelationship(){SourceName="汇森速运",TargetName="汇森速运",TargetCode="huisenky"},
+ new LogisticsCompanyRelationship(){SourceName="丹鸟物流",TargetName="丹鸟物流",TargetCode="danniao"},
+ new LogisticsCompanyRelationship(){SourceName="丹鸟",TargetName="丹鸟物流",TargetCode="danniao"}
});
}
From 234786094e70146c89be8e28cc62c44525f8141d Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Fri, 25 Aug 2023 17:13:46 +0800
Subject: [PATCH 44/89] =?UTF-8?q?=E5=90=8C=E4=BD=8D=E8=A1=A5=E9=BD=90?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E5=88=86=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/DataRepairController.cs | 12 ++-
.../DataRepair/DataRepairBusiness.cs | 75 ++++++++++++++++---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 2 +-
.../Db/PurchaseScheme/PurchaseScheme.cs | 21 +++++-
.../Db/PurchaseScheme/PurchaseSchemeGroup.cs | 45 +++++++++++
5 files changed, 137 insertions(+), 18 deletions(-)
create mode 100644 BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs
diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index 7588b57..fa223f4 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -34,16 +34,20 @@ namespace BBWYB.Server.API.Controllers
dataRepairBusiness.SupplementOrderSkuCost();
}
+
[HttpPost]
- public void PingJia()
+ public void SupplementPurchaserInfo()
{
- dataRepairBusiness.PingJia();
+ dataRepairBusiness.SupplementPurchaserInfo();
}
+ ///
+ /// 补采购方案分组
+ ///
[HttpPost]
- public void SupplementPurchaserInfo()
+ public void SupplementPurchaseSchemeGroup()
{
- dataRepairBusiness.SupplementPurchaserInfo();
+ dataRepairBusiness.SupplementPurchaseSchemeGroup();
}
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index ec73edd..e744102 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -27,17 +27,6 @@ namespace BBWYB.Server.Business
kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
}
- public void PingJia()
- {
-
- var list = new List()
- {
-
- };
- foreach (var pid in list)
- purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false);
- }
-
public void SupplementOrderSkuCost()
{
@@ -148,5 +137,69 @@ namespace BBWYB.Server.Business
});
}
}
+
+ public void SupplementPurchaseSchemeGroup()
+ {
+ List insertSchemeGroups = new List();
+ IList> updatePurchaseSchemeList = new List>();
+
+ var purchaseSchemeList = fsql.Select().ToList().OrderByDescending(ps => ps.CreateTime);
+ var purchaseSchemeSpuGroups = purchaseSchemeList.GroupBy(ps => ps.ProductId);
+ foreach (var purchaseSchemeSpuGroup in purchaseSchemeSpuGroups)
+ {
+ var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId);
+ var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count()); //该spu最大的采购分组数
+
+ for (var i = 0; i < maxPsGroupCount; i++)
+ {
+ IList currentIndexSchemeList = new List();
+ //取每个sku的第i个方案
+ foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups)
+ {
+ var currentSkuPurchaseSchemeList = purchaseSchemeSkuGroup.ToList();
+
+ if (currentSkuPurchaseSchemeList.Count() >= (i + 1))
+ {
+ var scheme = currentSkuPurchaseSchemeList[i];
+ currentIndexSchemeList.Add(scheme);
+ }
+ }
+ var schemeGroupId = currentIndexSchemeList.FirstOrDefault(ps => ps.SchemeGroupId != null)?.SchemeGroupId;
+ if (schemeGroupId == null)
+ {
+ schemeGroupId = idGenerator.NewLong();
+ //同位中没有分组
+ var insertSchemeGroup = new PurchaseSchemeGroup()
+ {
+ Id = schemeGroupId.Value,
+ GroupName = schemeGroupId.Value.ToString(),
+ CreateTime = DateTime.Now,
+ ProductId = currentIndexSchemeList.First().ProductId,
+ ShopId = currentIndexSchemeList.First().ShopId
+ };
+ insertSchemeGroups.Add(insertSchemeGroup);
+ }
+ foreach (var purchaseScheme in currentIndexSchemeList)
+ {
+ if (purchaseScheme.SchemeGroupId != schemeGroupId)
+ {
+ var update = fsql.Update(purchaseScheme.Id).Set(ps => ps.SchemeGroupId, schemeGroupId);
+ updatePurchaseSchemeList.Add(update);
+ }
+ }
+ }
+ }
+
+ fsql.Transaction(() =>
+ {
+ if (insertSchemeGroups.Count() > 0)
+ fsql.Insert(insertSchemeGroups).ExecuteAffrows();
+ if (updatePurchaseSchemeList.Count() > 0)
+ {
+ foreach (var update in updatePurchaseSchemeList)
+ update.ExecuteAffrows();
+ }
+ });
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 7acb9a7..92d592f 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -219,7 +219,7 @@ namespace BBWYB.Server.Business
}
}
var sql = select.ToSql();
- var purchaseSchemeList = select.ToList();
+ var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList();
if (purchaseSchemeList.Count > 0)
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index 7fd4b57..2da1ef0 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -1,6 +1,8 @@
using BBWYB.Server.Model.Db;
using FreeSql.DataAnnotations;
+using Newtonsoft.Json;
+
namespace BBWYB.Server.Model
{
@@ -50,8 +52,23 @@ namespace BBWYB.Server.Model
///
public DateTime? LastPurchaseTime { get; set; }
- //[Column(MapType = typeof(int), DbType = "int(1)")]
- //public Enums.Platform PurchasePlatform { get; set; }
+ ///
+ /// 慧眼标的Id
+ ///
+ [Column(StringLength = 50)]
+ public string HYBDId { get; set; }
+
+ ///
+ /// 慧眼方案Id
+ ///
+ [Column(StringLength = 50)]
+ public string HYSchemeId { get; set; }
+
+ ///
+ /// 分组Id
+ ///
+ [Column(DbType = "bigint", IsNullable = true)]
+ public long? SchemeGroupId { get; set; }
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs
new file mode 100644
index 0000000..035efd9
--- /dev/null
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs
@@ -0,0 +1,45 @@
+using FreeSql.DataAnnotations;
+
+namespace BBWYB.Server.Model.Db
+{
+
+ ///
+ /// 采购方案分组表
+ ///
+ [Table(Name = "purchaseschemegroup", DisableSyncStructure = true)]
+ public partial class PurchaseSchemeGroup
+ {
+
+ ///
+ /// 分组Id
+ ///
+ [Column(DbType = "bigint", IsPrimary = true)]
+ public long Id { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime? CreateTime { get; set; }
+
+ ///
+ /// 组名
+ ///
+ [Column(StringLength = 100)]
+ public string GroupName { get; set; }
+
+ ///
+ /// 店铺spu,店铺商品Id
+ ///
+ [Column(StringLength = 50)]
+ public string ProductId { get; set; }
+
+ ///
+ /// 店铺Id
+ ///
+ [Column(DbType = "bigint")]
+ public long? ShopId { get; set; }
+
+ }
+
+}
From 53cc41c4497fb8c5fcb1438a6a13b9f792110d2c Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 26 Aug 2023 02:34:51 +0800
Subject: [PATCH 45/89] =?UTF-8?q?=E4=BB=A5=E5=88=86=E7=BB=84=E5=BD=A2?=
=?UTF-8?q?=E5=BC=8F=E8=BF=94=E5=9B=9E=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 13 ++-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 88 ++++++++++++-------
.../Db/PurchaseScheme/PurchaseScheme.cs | 4 +-
.../QuerySchemeAndGroupRequest.cs | 20 +++++
.../PurchaseScheme/QuerySchemeRequest.cs | 22 ++++-
.../PurchaseScheme/RefreshSchemeRequest.cs | 2 +-
.../PurchaseSchemeGroupResponse.cs | 9 ++
7 files changed, 119 insertions(+), 39 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index debd730..7e71b1b 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -1,5 +1,4 @@
using BBWYB.Server.Business;
-using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
@@ -38,6 +37,17 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
+ ///
+ /// 获取采购分组和采购方案
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request)
+ {
+ return purchaseSchemeBusiness.GetPurchaseSchemeAndGroupList(request);
+ }
+
///
/// 获取Sku采购方案数量
///
@@ -49,6 +59,7 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeCountList(request);
}
+
/////
///// 删除采购商
/////
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 92d592f..2654983 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -199,24 +199,46 @@ namespace BBWYB.Server.Business
///
public IList GetPurchaseSchemeList(QuerySchemeRequest request)
{
- var select = fsql.Select();
- if (request.SchemeId != null && request.SchemeId != 0)
- select = select.Where(ps => ps.Id == request.SchemeId);
+ #region 处理条件优先级
+ if (request.SchemeId != null)
+ {
+ request.SchemeIdList?.Clear();
+ request.SchemeGroupIdList?.Clear();
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
- select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
- else
{
- select = select.WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
- .WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId));
+ request.SchemeGroupIdList?.Clear();
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
+ else if (request.SchemeGroupIdList != null && request.SchemeGroupIdList.Count() > 0)
+ {
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
+ else if (request.SkuIdList != null && request.SkuIdList.Count() > 0)
+ {
+ request.ProductIdList?.Clear();
+ }
+ #endregion
- if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
- {
- select = select.Where(ps => fsql.Select()
- .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
- .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
- .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
- .Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
- }
+ var select = fsql.Select()
+ .WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
+ .WhereIf(request.SchemeId != null && request.SchemeId != 0, ps => ps.Id == request.SchemeId)
+ .WhereIf(request.SchemeIdList != null && request.SchemeIdList.Count() > 0, ps => request.SchemeIdList.Contains(ps.Id))
+ .WhereIf(request.SchemeGroupIdList != null && request.SchemeGroupIdList.Count() > 0, ps => request.SchemeGroupIdList.Contains(ps.SchemeGroupId))
+ .WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId))
+ .WhereIf(request.ProductIdList != null && request.ProductIdList.Count() > 0, ps => request.ProductIdList.Contains(ps.ProductId));
+
+ if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
+ {
+ select = select.Where(ps => fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
+ .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
+ .Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
}
var sql = select.ToSql();
var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList();
@@ -322,6 +344,26 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
+ public IList GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request)
+ {
+ var purchaseSchemeGroupsList = fsql.Select()
+ .Where(psg => psg.ShopId == request.ShopId &&
+ request.ProductIdList.Contains(psg.ProductId))
+ .ToList();
+ if (purchaseSchemeGroupsList.Count() > 0)
+ {
+ var groupIds = purchaseSchemeGroupsList.Select(g => g.Id).ToList();
+ var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ IncludePurchaseSkuBasicInfo = request.IncludePurchaseSkuBasicInfo,
+ SchemeGroupIdList = groupIds
+ });
+ foreach (var psg in purchaseSchemeGroupsList)
+ psg.PurchaseSchemeList = purchaseSchemeList.Where(ps => ps.SchemeGroupId == psg.Id).ToList();
+ }
+ return purchaseSchemeGroupsList;
+ }
+
public IList GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
{
var list = fsql.Select().Where(ps => request.SkuIdList.Contains(ps.SkuId))
@@ -467,21 +509,5 @@ namespace BBWYB.Server.Business
}
return list;
}
-
- //public void EditPurchaseRatio(EditPurchaseRatioAndActualPriceRequest request)
- //{
- // if (request.Ratio < 1)
- // request.Ratio = 1;
-
-
- // fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
- // .Set(pss => pss.ActualPrice, request.ActualPrice)
- // .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
- // pss.SkuId == request.SkuId &&
- // pss.PurchaseSkuId == request.PurchaseSkuId)
- // .ExecuteAffrows();
-
-
- //}
}
}
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index 2da1ef0..4b9e582 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -67,8 +67,8 @@ namespace BBWYB.Server.Model
///
/// 分组Id
///
- [Column(DbType = "bigint", IsNullable = true)]
- public long? SchemeGroupId { get; set; }
+ [Column(DbType = "bigint")]
+ public long SchemeGroupId { get; set; } = 0;
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
new file mode 100644
index 0000000..1f7cfa4
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
@@ -0,0 +1,20 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class QuerySchemeAndGroupRequest
+ {
+ ///
+ /// 店铺Id
+ ///
+ public long ShopId { get; set; }
+
+ ///
+ /// 店铺商品Id列表
+ ///
+ public IList ProductIdList { get; set; }
+
+ ///
+ /// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null
+ ///
+ public int? IncludePurchaseSkuBasicInfo { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 0c2c4f1..04d8b45 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -5,18 +5,32 @@ namespace BBWYB.Server.Model.Dto
public class QuerySchemeRequest
{
///
- /// 采购方案Id
+ /// 采购方案Id,有值则忽略SchemeIdList,SchemeGroupIdList,SkuIdList,ProductIdList
///
public long? SchemeId { get; set; }
///
- /// 采购方案Id集合
+ /// 采购方案Id集合,有值则忽略SchemeGroupIdList,SkuIdList,ProductIdList
///
- public IList SchemeIdList { get; set; }
+ public List SchemeIdList { get; set; }
+
+ ///
+ /// 采购方案分组Id集合,有值则忽略SkuIdList,ProductIdList
+ ///
+ public List SchemeGroupIdList { get; set; }
+
+ ///
+ /// skuId集合,有值则忽略ProductIdList
+ ///
+ public List SkuIdList { get; set; }
+
+ ///
+ /// spuId集合,有值则忽略
+ ///
+ public List ProductIdList { get; set; }
public long? ShopId { get; set; }
- public IList SkuIdList { get; set; }
///
/// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
index a4f0a20..d755cee 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
@@ -2,6 +2,6 @@
{
public class RefreshSchemeRequest
{
- public IList SchemeIdList { get; set; }
+ public List SchemeIdList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
new file mode 100644
index 0000000..5229648
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
@@ -0,0 +1,9 @@
+using BBWYB.Server.Model.Db;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class PurchaseSchemeGroupResponse : PurchaseSchemeGroup
+ {
+ public IList PurchaseSchemeList { get; set; }
+ }
+}
From 0288470b0a2148f3abd17197f0be57650f9e0e29 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 27 Aug 2023 01:02:33 +0800
Subject: [PATCH 46/89] =?UTF-8?q?=E4=BB=A5=E5=88=86=E7=BB=84=E5=BD=A2?=
=?UTF-8?q?=E5=BC=8F=E8=BF=94=E5=9B=9E=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
=?UTF-8?q?=E5=88=97=E8=A1=A8,=20=E6=8C=89sku=E9=87=87=E8=B4=AD=E6=96=B9?=
=?UTF-8?q?=E6=A1=88=E5=90=8C=E4=BD=8D=E9=A1=BA=E5=BA=8F=E8=A1=A5=E9=BD=90?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E5=88=86=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DataRepair/DataRepairBusiness.cs | 46 +++++--
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 124 ++++++++++++++++++
.../PurchaseScheme/BatchCURDSchemeRequest.cs | 2 +
3 files changed, 162 insertions(+), 10 deletions(-)
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index e744102..b86169e 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -141,17 +141,19 @@ namespace BBWYB.Server.Business
public void SupplementPurchaseSchemeGroup()
{
List insertSchemeGroups = new List();
- IList> updatePurchaseSchemeList = new List>();
+ Queue> updatePurchaseSchemeQueue = new Queue>();
- var purchaseSchemeList = fsql.Select().ToList().OrderByDescending(ps => ps.CreateTime);
+ var purchaseSchemeList = fsql.Select().OrderBy(ps => ps.Id).ToList();
var purchaseSchemeSpuGroups = purchaseSchemeList.GroupBy(ps => ps.ProductId);
foreach (var purchaseSchemeSpuGroup in purchaseSchemeSpuGroups)
{
+ Console.WriteLine($"正在处理spu {purchaseSchemeSpuGroup.Key}");
var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId);
var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count()); //该spu最大的采购分组数
for (var i = 0; i < maxPsGroupCount; i++)
{
+ Console.WriteLine($"正在处理第{i}组");
IList currentIndexSchemeList = new List();
//取每个sku的第i个方案
foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups)
@@ -165,14 +167,15 @@ namespace BBWYB.Server.Business
}
}
var schemeGroupId = currentIndexSchemeList.FirstOrDefault(ps => ps.SchemeGroupId != null)?.SchemeGroupId;
- if (schemeGroupId == null)
+ if (schemeGroupId == null || schemeGroupId == 0)
{
schemeGroupId = idGenerator.NewLong();
//同位中没有分组
var insertSchemeGroup = new PurchaseSchemeGroup()
{
Id = schemeGroupId.Value,
- GroupName = schemeGroupId.Value.ToString(),
+ //GroupName = schemeGroupId.Value.ToString(),
+ GroupName = $"{purchaseSchemeSpuGroup.Key}_第{i + 1}组",
CreateTime = DateTime.Now,
ProductId = currentIndexSchemeList.First().ProductId,
ShopId = currentIndexSchemeList.First().ShopId
@@ -184,22 +187,45 @@ namespace BBWYB.Server.Business
if (purchaseScheme.SchemeGroupId != schemeGroupId)
{
var update = fsql.Update(purchaseScheme.Id).Set(ps => ps.SchemeGroupId, schemeGroupId);
- updatePurchaseSchemeList.Add(update);
+ updatePurchaseSchemeQueue.Enqueue(update);
}
}
}
}
-
+ Console.WriteLine("数据库处理中");
fsql.Transaction(() =>
{
if (insertSchemeGroups.Count() > 0)
fsql.Insert(insertSchemeGroups).ExecuteAffrows();
- if (updatePurchaseSchemeList.Count() > 0)
+ });
+
+ var updatePurchaseSchemeList = new List>();
+ while (true)
+ {
+ if (updatePurchaseSchemeQueue.TryDequeue(out var update))
+ updatePurchaseSchemeList.Add(update);
+ else
+ break;
+ if (updatePurchaseSchemeList.Count() == 10)
{
- foreach (var update in updatePurchaseSchemeList)
- update.ExecuteAffrows();
+ Console.WriteLine($"执行数据库 {DateTime.Now}");
+ fsql.Transaction(() =>
+ {
+ foreach (var _update in updatePurchaseSchemeList)
+ _update.ExecuteAffrows();
+ });
+ updatePurchaseSchemeList.Clear();
}
- });
+ }
+ if (updatePurchaseSchemeList.Count() > 0)
+ {
+ Console.WriteLine($"最后执行数据库 {DateTime.Now}");
+ fsql.Transaction(() =>
+ {
+ foreach (var _update in updatePurchaseSchemeList)
+ _update.ExecuteAffrows();
+ });
+ }
}
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 2654983..d31a373 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -192,6 +192,130 @@ namespace BBWYB.Server.Business
});
}
+ public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest)
+ {
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
+ batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
+ throw new BusinessException("非法参数");
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
+ throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
+
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
+ throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0 && batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
+ throw new BusinessException("编辑方案中采购方案缺少Id");
+
+ List addPurchaseSchemeList = new List();
+ List addPurchaseSchemeProductList = new List();
+ List addPurchaseSchemeProductSkuList = new List();
+ List newPurchaserList = new List();
+ List deletePurchaseSchemeIdList = new List();
+ List> updatePurchaseSchemeList = new List>();
+
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
+ {
+ ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
+
+ foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
+ {
+ var ps = new PurchaseScheme()
+ {
+ CreateTime = DateTime.Now,
+ Id = idGenerator.NewLong(),
+ ProductId = psReq.ProductId,
+ SkuId = psReq.SkuId,
+ ShopId = psReq.ShopId
+ };
+ addPurchaseSchemeList.Add(ps);
+ foreach (var pspReq in psReq.PurchaseSchemeProductList)
+ {
+ var psp = pspReq.Map();
+ psp.Id = idGenerator.NewLong();
+ psp.CreateTime = DateTime.Now;
+ psp.SkuPurchaseSchemeId = ps.Id;
+ addPurchaseSchemeProductList.Add(psp);
+
+ foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
+ {
+ var pss = pssReq.Map();
+ pss.Id = idGenerator.NewLong();
+ pss.CreateTime = DateTime.Now;
+ pss.SkuPurchaseSchemeId = ps.Id;
+ addPurchaseSchemeProductSkuList.Add(pss);
+ ps.DefaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
+ }
+ }
+ }
+ }
+
+ #region 更新采购方案
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
+ {
+ deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
+ foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
+ {
+ var schemeId = psReq.Id;
+ var defaultCost = 0M;
+ foreach (var pspReq in psReq.PurchaseSchemeProductList)
+ {
+ var psp = pspReq.Map();
+ psp.Id = idGenerator.NewLong();
+ psp.CreateTime = DateTime.Now;
+ psp.SkuPurchaseSchemeId = schemeId;
+ addPurchaseSchemeProductList.Add(psp);
+
+ foreach (var pssReq in pspReq.PurchaseSchemeProductSkuList)
+ {
+ var pss = pssReq.Map();
+ pss.Id = idGenerator.NewLong();
+ pss.CreateTime = DateTime.Now;
+ pss.SkuPurchaseSchemeId = schemeId;
+ addPurchaseSchemeProductSkuList.Add(pss);
+ defaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
+ }
+ }
+ var psupdate = fsql.Update(schemeId)
+ .Set(ps => ps.DefaultCost, defaultCost);
+ updatePurchaseSchemeList.Add(psupdate);
+ }
+ }
+ #endregion
+
+ foreach (var purchaseProductSku in addPurchaseSchemeProductSkuList)
+ {
+ if (purchaseProductSku.PurchaseRatio == null)
+ purchaseProductSku.PurchaseRatio = 1;
+ }
+
+ fsql.Transaction(() =>
+ {
+ if (newPurchaserList.Count > 0)
+ fsql.Insert(newPurchaserList).ExecuteAffrows();
+
+ //更新,删除已存在的采购方案商品和Sku
+ if (deletePurchaseSchemeIdList.Count > 0)
+ {
+ fsql.Delete().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
+ fsql.Delete().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
+ }
+
+ //新增
+ if (addPurchaseSchemeList != null && addPurchaseSchemeList.Count > 0)
+ fsql.Insert(addPurchaseSchemeList).ExecuteAffrows();
+ if (addPurchaseSchemeProductList.Count > 0)
+ fsql.Insert(addPurchaseSchemeProductList).ExecuteAffrows();
+ if (addPurchaseSchemeProductSkuList.Count > 0)
+ fsql.Insert(addPurchaseSchemeProductSkuList).ExecuteAffrows();
+ if (updatePurchaseSchemeList.Count() > 0)
+ {
+ foreach (var update in updatePurchaseSchemeList)
+ update.ExecuteAffrows();
+ }
+ });
+ }
+
///
/// 获取采购方案
///
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs
index 8176ee2..61fba78 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs
@@ -13,5 +13,7 @@ namespace BBWYB.Server.Model.Dto
/// 需要新增的采购方案
///
public IList AddPurchaseSchemeList { get; set; }
+
+
}
}
From d702fed21578dde7630b6f41a287b7bd78cfb8e7 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 27 Aug 2023 09:43:21 +0800
Subject: [PATCH 47/89] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B7=BB=E5=8A=A0/?=
=?UTF-8?q?=E7=BC=96=E8=BE=91=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88(web)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 10 +++
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 79 ++++++++++++++++---
.../InputPurchaseSchemeProductRequest.cs | 4 +-
.../InputPurchaseSchemeRequest.cs | 17 +++-
4 files changed, 95 insertions(+), 15 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 7e71b1b..28285a9 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -26,6 +26,16 @@ namespace BBWYB.Server.API.Controllers
purchaseSchemeBusiness.EditPurchaseScheme(batchCURDSchemeRequest);
}
+ ///
+ /// 添加/编辑采购方案(web)
+ ///
+ ///
+ [HttpPost]
+ public void EditPurchaseSchemeV2([FromBody] BatchCURDSchemeRequest batchCURDSchemeRequest)
+ {
+ purchaseSchemeBusiness.EditPurchaseSchemeV2(batchCURDSchemeRequest);
+ }
+
///
/// 获取采购方案列表
///
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index d31a373..e08c632 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -194,25 +194,60 @@ namespace BBWYB.Server.Business
public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
- batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
- throw new BusinessException("非法参数");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
- string.IsNullOrEmpty(pp.PurchaserName))))
- throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
+ List dbSchemeGroupList = null;
+ List dbPurchaseSchemeList = null;
+
+ #region 数据验证
+ if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) &&
+ (batchCURDSchemeRequest.AddPurchaseSchemeList == null || batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0))
+ throw new BusinessException("更新方案和新增方案参数不能同时为空");
+
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0)
+ {
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
+ throw new BusinessException("更新方案中有采购商Id/Name/Location为空");
+
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
+ throw new BusinessException("更新方案中采购方案缺少Id");
+
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.SchemeGroupId == null || ps.SchemeGroupId == 0))
+ throw new BusinessException("更新方案中采购方案缺少分组Id");
+ }
+
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count() > 0)
+ {
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
+ throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
- string.IsNullOrEmpty(pp.PurchaserName))))
- throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0 && batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
- throw new BusinessException("编辑方案中采购方案缺少Id");
+ var productIds = batchCURDSchemeRequest.AddPurchaseSchemeList.Select(ps => ps.ProductId).ToList();
+
+ dbSchemeGroupList = fsql.Select().Where(psg => productIds.Contains(psg.ProductId)).ToList();
+ var dbSchemeGroupIds = dbSchemeGroupList.Select(psg => psg.Id).ToList();
+ dbPurchaseSchemeList = fsql.Select().Where(ps => dbSchemeGroupIds.Contains(ps.SchemeGroupId)).ToList();
+ foreach (var addPurchaseScheme in batchCURDSchemeRequest.AddPurchaseSchemeList)
+ {
+ if (addPurchaseScheme.SchemeGroupId == null || addPurchaseScheme.SchemeGroupId == 0)
+ continue;
+ var dbSchemeGroup = dbSchemeGroupList.FirstOrDefault(g => g.Id == addPurchaseScheme.SchemeGroupId);
+ if (dbSchemeGroup == null)
+ throw new BusinessException($"新增方案中指定了不存在的分组{addPurchaseScheme.SchemeGroupId}");
+ var dbPurchaseSchemeList_sameGroup = dbPurchaseSchemeList.Where(ps => ps.SchemeGroupId == addPurchaseScheme.SchemeGroupId).ToList();
+ if (dbPurchaseSchemeList_sameGroup.Any(ps => ps.SkuId == addPurchaseScheme.SkuId))
+ throw new BusinessException($"采购方案分组中Sku不允许重复,{dbSchemeGroup.GroupName}已存在{addPurchaseScheme.SkuId}的采购方案");
+ }
+ }
+
+ #endregion
List addPurchaseSchemeList = new List();
List addPurchaseSchemeProductList = new List();
List addPurchaseSchemeProductSkuList = new List();
List newPurchaserList = new List();
List deletePurchaseSchemeIdList = new List();
List> updatePurchaseSchemeList = new List>();
+ List insertPurchaseSchemeGroupsList = new List();
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
@@ -220,13 +255,31 @@ namespace BBWYB.Server.Business
foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
{
+ if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0)
+ {
+ //新增分组
+ var saemSpuSchemeGroupList = dbSchemeGroupList.Where(psg => psg.ProductId == psReq.ProductId).ToList();
+ var insertSchemeGroup = new PurchaseSchemeGroup()
+ {
+ Id = idGenerator.NewLong(),
+ CreateTime = DateTime.Now,
+ GroupName = $"{psReq.ProductId}_第{saemSpuSchemeGroupList.Count() + 1}组",
+ ProductId = psReq.ProductId,
+ ShopId = psReq.ShopId
+ };
+ insertPurchaseSchemeGroupsList.Add(insertSchemeGroup);
+ }
+
var ps = new PurchaseScheme()
{
CreateTime = DateTime.Now,
Id = idGenerator.NewLong(),
ProductId = psReq.ProductId,
SkuId = psReq.SkuId,
- ShopId = psReq.ShopId
+ ShopId = psReq.ShopId,
+ HYBDId = psReq.HYBDId,
+ HYSchemeId = psReq.HYSchemeId,
+ SchemeGroupId = psReq.SchemeGroupId ?? 0
};
addPurchaseSchemeList.Add(ps);
foreach (var pspReq in psReq.PurchaseSchemeProductList)
@@ -308,6 +361,8 @@ namespace BBWYB.Server.Business
fsql.Insert(addPurchaseSchemeProductList).ExecuteAffrows();
if (addPurchaseSchemeProductSkuList.Count > 0)
fsql.Insert(addPurchaseSchemeProductSkuList).ExecuteAffrows();
+ if (insertPurchaseSchemeGroupsList.Count() > 0)
+ fsql.Insert(insertPurchaseSchemeGroupsList).ExecuteAffrows();
if (updatePurchaseSchemeList.Count() > 0)
{
foreach (var update in updatePurchaseSchemeList)
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
index e8ea75e..141aa17 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
@@ -15,12 +15,12 @@
public string PurchaseUrl { get; set; }
///
- /// 采购商Id
+ /// 采购商Id (1688 SellerUserId)
///
public string PurchaserId { get; set; }
///
- /// 采购商Id
+ /// 采购商Id2 (1688 SellerLoginId)
///
public string PurchaserId2 { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index 6a11c88..955a6d0 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -4,10 +4,25 @@ namespace BBWYB.Server.Model.Dto
{
public class InputPurchaseSchemeRequest
{
+ ///
+ /// 采购方案分组Id,为空将新增分组
+ ///
+ public long? SchemeGroupId { get; set; }
+
+ ///
+ /// 慧眼标的Id
+ ///
+ public string HYBDId { get; set; }
+
+ ///
+ /// 慧眼方案Id
+ ///
+ public string HYSchemeId { get; set; }
+
public long ShopId { get; set; }
public string ProductId { get; set; }
public string SkuId { get; set; }
-
+
public IList PurchaseSchemeProductList { get; set; }
}
}
From 7ed0cfceffd5a85cb07c29de750823336aa202b4 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Sun, 27 Aug 2023 21:32:07 +0800
Subject: [PATCH 48/89] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E9=94=99=E8=AF=AF=E6=94=B9=E6=88=90=E4=B8=9A=E5=8A=A1=E5=BC=82?=
=?UTF-8?q?=E5=B8=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../OperationPlatform/Client/Impl/OP_QuanTanClient.cs | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
index 6e1cf4a..6cd3169 100644
--- a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
+++ b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
@@ -1,4 +1,5 @@
using BBWYB.Common.Http;
+using BBWYB.Common.Models;
using QuanTan.SDK.Client.Supplier;
using QuanTan.SDK.Models.Supplier;
using SDKAdapter.OperationPlatform.Models;
@@ -203,7 +204,7 @@ namespace SDKAdapter.OperationPlatform.Client
remark = request.Remark
}, request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)
- throw new Exception(qtResponse.Message);
+ throw new BusinessException(qtResponse.Message);
}
public override void EditPrice(OP_EditPriceRequest request)
@@ -222,7 +223,7 @@ namespace SDKAdapter.OperationPlatform.Client
}, request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)
- throw new Exception(qtResponse.Message);
+ throw new BusinessException(qtResponse.Message);
}
public override void EditProductPrice(OP_EditProductPriceRequest request)
@@ -238,7 +239,7 @@ namespace SDKAdapter.OperationPlatform.Client
}).ToList()
}, request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)
- throw new Exception(qtResponse.Message);
+ throw new BusinessException(qtResponse.Message);
}
}
}
From 83109829ed3ae744c37fcdc083b830774f690341 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 28 Aug 2023 15:43:01 +0800
Subject: [PATCH 49/89] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=85=A7=E7=9C=BC?=
=?UTF-8?q?=E6=A0=87=E7=9A=84=E6=96=B9=E6=A1=88=E6=9F=A5=E8=AF=A2=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 11 ++
.../PurchaseProductAPIService.cs | 4 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 153 +++++++++++++++++-
.../Dto/Core/HY/HYPurchaseScheme.cs | 51 ++++++
.../PurchaseScheme/hy/QueryHYSchemeRequest.cs | 17 ++
.../HY/HYPurchaseSchemeResponse.cs | 10 ++
.../PurchaseProductBasicInfoResponse.cs | 4 +
.../PurchaseSchemeProductResponse.cs | 10 ++
8 files changed, 257 insertions(+), 3 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Core/HY/HYPurchaseScheme.cs
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/hy/QueryHYSchemeRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/PurchaseScheme/HY/HYPurchaseSchemeResponse.cs
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 28285a9..b31afcd 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -143,5 +143,16 @@ namespace BBWYB.Server.API.Controllers
//{
// purchaseSchemeBusiness.EditPurchaseRatio(request);
//}
+
+ ///
+ /// 根据慧眼标的Id获取慧眼采购方案(含全部配件基本信息)
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetPurchaseSchemeByHYBDId([FromBody]QueryHYSchemeRequest request)
+ {
+ return purchaseSchemeBusiness.GetPurchaseSchemeByHYBDId(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
index 5549279..c447a9b 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
@@ -273,7 +273,9 @@ namespace BBWYB.Server.Business
ItemList = list,
Purchaser = purchaser,
PurchaseProductId = request.PurchaseProductId,
- PurchasePlatform = Enums.Platform.阿里巴巴
+ PurchasePlatform = Enums.Platform.阿里巴巴,
+ ProductName = jobject["globalData"]["tempModel"]["offerTitle"]?.ToString(),
+ ProductLogo = list.FirstOrDefault()?.Logo
};
}
catch
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index e08c632..6a15dcb 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -1,10 +1,15 @@
using BBWYB.Common.Extensions;
+using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using FreeSql;
+using MySqlX.XDevAPI;
+using Newtonsoft.Json;
+using Org.BouncyCastle.Asn1.X509.Qualified;
+using System.Net.Http.Headers;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
@@ -12,10 +17,16 @@ namespace BBWYB.Server.Business
public class PurchaseSchemeBusiness : BaseBusiness, IDenpendency
{
private PurchaseProductAPIService purchaseProductAPIService;
+ private RestApiService restApiService;
- public PurchaseSchemeBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, PurchaseProductAPIService purchaseProductAPIService) : base(fsql, nLogManager, idGenerator)
+ public PurchaseSchemeBusiness(IFreeSql fsql,
+ NLogManager nLogManager,
+ IIdGenerator idGenerator,
+ PurchaseProductAPIService purchaseProductAPIService,
+ RestApiService restApiService) : base(fsql, nLogManager, idGenerator)
{
this.purchaseProductAPIService = purchaseProductAPIService;
+ this.restApiService = restApiService;
}
private void ExtractNewPurchaser(IList purchaserSchemeList, IList addPurchaserList) where T : InputPurchaseSchemeRequest
@@ -204,6 +215,16 @@ namespace BBWYB.Server.Business
if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count() > 0)
{
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => string.IsNullOrEmpty(ps.ProductId) ||
+ string.IsNullOrEmpty(ps.SkuId) ||
+ ps.PurchaseSchemeProductList.Any(psp => string.IsNullOrEmpty(psp.ProductId) ||
+ string.IsNullOrEmpty(psp.SkuId) ||
+ psp.PurchaseSchemeProductSkuList.Any(pss => string.IsNullOrEmpty(pss.ProductId) ||
+ string.IsNullOrEmpty(pss.SkuId)))))
+ {
+ throw new BusinessException("更新方案缺少ProductId/SkuId");
+ }
+
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("更新方案中有采购商Id/Name/Location为空");
@@ -217,6 +238,16 @@ namespace BBWYB.Server.Business
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count() > 0)
{
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => string.IsNullOrEmpty(ps.ProductId) ||
+ string.IsNullOrEmpty(ps.SkuId) ||
+ ps.PurchaseSchemeProductList.Any(psp => string.IsNullOrEmpty(psp.ProductId) ||
+ string.IsNullOrEmpty(psp.SkuId) ||
+ psp.PurchaseSchemeProductSkuList.Any(pss => string.IsNullOrEmpty(pss.ProductId) ||
+ string.IsNullOrEmpty(pss.SkuId)))))
+ {
+ throw new BusinessException("新增方案缺少ProductId/SkuId");
+ }
+
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
@@ -237,6 +268,11 @@ namespace BBWYB.Server.Business
var dbPurchaseSchemeList_sameGroup = dbPurchaseSchemeList.Where(ps => ps.SchemeGroupId == addPurchaseScheme.SchemeGroupId).ToList();
if (dbPurchaseSchemeList_sameGroup.Any(ps => ps.SkuId == addPurchaseScheme.SkuId))
throw new BusinessException($"采购方案分组中Sku不允许重复,{dbSchemeGroup.GroupName}已存在{addPurchaseScheme.SkuId}的采购方案");
+ if (!string.IsNullOrEmpty(addPurchaseScheme.HYSchemeId))
+ {
+ if (dbPurchaseSchemeList.Any(ps => ps.HYSchemeId == addPurchaseScheme.HYSchemeId))
+ throw new BusinessException($"慧眼方案Id{addPurchaseScheme.HYSchemeId}已被其他采购方案使用");
+ }
}
}
@@ -419,7 +455,7 @@ namespace BBWYB.Server.Business
.WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
}
- var sql = select.ToSql();
+ //var sql = select.ToSql();
var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList();
@@ -499,6 +535,9 @@ namespace BBWYB.Server.Business
});
if (basicInfo != null)
{
+ schemeProduct.PurchaseProductLogo = basicInfo.ProductLogo;
+ schemeProduct.PurchaseProductName = basicInfo.ProductName;
+
foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
{
var basicSku = basicInfo.ItemList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId);
@@ -688,5 +727,115 @@ namespace BBWYB.Server.Business
}
return list;
}
+
+ ///
+ /// 根据慧眼标的Id获取采购方案(含全部配件基本信息)
+ ///
+ ///
+ ///
+ ///
+ public IList GetPurchaseSchemeByHYBDId(QueryHYSchemeRequest request)
+ {
+ if (request.ShopId == 0)
+ throw new BusinessException("缺少店铺Id");
+ if (string.IsNullOrEmpty(request.ProductId))
+ throw new BusinessException("缺少商品Id");
+ if (string.IsNullOrEmpty(request.HYBDId))
+ throw new BusinessException("缺少标的Id");
+
+ var hyHttpResult = restApiService.SendRequest("http://hyapi.qiyue666.com", "/HuiYan/ItemPlan/GetPlanByOrderId", $"orderId={request.HYBDId}", null, HttpMethod.Get);
+ if (hyHttpResult.StatusCode != System.Net.HttpStatusCode.OK)
+ throw new BusinessException(hyHttpResult.Content);
+ var hyResponse = JsonConvert.DeserializeObject>>(hyHttpResult.Content);
+ if (!hyResponse.Success)
+ throw new BusinessException(hyResponse.Msg);
+ if (hyResponse.Data == null || hyResponse.Data.Count() == 0)
+ throw new BusinessException("该标的Id缺少采购方案");
+ var hySchemeList = hyResponse.Data;
+ var hySchemeIdList = hySchemeList.Select(x => x.Id.ToString()).ToList();
+ var dbSchemeList = fsql.Select().Where(ps => ps.ProductId == request.ProductId &&
+ !string.IsNullOrEmpty(ps.HYSchemeId) &&
+ hySchemeIdList.Contains(ps.HYSchemeId)).ToList();
+
+ var resultList = new List();
+ foreach (var hyScheme in hySchemeList)
+ {
+ if (hyScheme.PlanItems == null || hyScheme.PlanItems.Count() == 0)
+ continue;
+
+ var hySchemeResponse = new HYPurchaseSchemeResponse()
+ {
+ Id = 0,
+ CreateTime = DateTime.Now,
+ HYBDId = request.HYBDId,
+ IsAdded = dbSchemeList.Any(ps => ps.HYBDId == request.HYBDId && ps.HYSchemeId == hyScheme.Id.ToString()),
+ HYSchemeId = hyScheme.Id.ToString(),
+ ProductId = request.ProductId,
+ ShopId = request.ShopId
+ };
+ resultList.Add(hySchemeResponse);
+
+ foreach (var hySchemeProduct in hyScheme.PlanItems)
+ {
+ var basicInfo = GetPurchaseSkuBasicInfo(new PurchaseSkuBasicInfoRequest()
+ {
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ Platform = Enums.Platform.阿里巴巴,
+ PurchaseProductId = hySchemeProduct.ItemId
+ });
+
+ var hySchemeProductResponse = new PurchaseSchemeProductResponse()
+ {
+ Id = 0,
+ ProductId = request.ProductId,
+ PurchasePlatform = Enums.Platform.阿里巴巴,
+ PurchaseProductId = hySchemeProduct.ItemId,
+ PurchaseProductLogo = basicInfo.ProductLogo,
+ PurchaseProductName = basicInfo.ProductName,
+ PurchaserId = basicInfo.Purchaser?.Id,
+ PurchaserId2 = basicInfo.Purchaser?.Id2,
+ PurchaserMemberId = basicInfo.Purchaser?.MemberId,
+ PurchaserLocation = basicInfo.Purchaser?.Location,
+ PurchaserName = basicInfo.Purchaser?.Name,
+ PurchaseUrl = $"https://detail.1688.com/offer/{hySchemeProduct.ItemId}.html"
+ };
+ hySchemeResponse.PurchaseSchemeProductList.Add(hySchemeProductResponse);
+
+ if (!hySchemeResponse.PurchaserList.Any(p => p.Id == hySchemeProductResponse.PurchaserId))
+ {
+ hySchemeResponse.PurchaserList.Add(new Purchaser()
+ {
+ Id = hySchemeProductResponse.PurchaserId,
+ Id2 = hySchemeProductResponse.PurchaserId2,
+ Location = hySchemeProductResponse.PurchaserLocation,
+ Name = hySchemeProductResponse.PurchaserName,
+ Platform = hySchemeProductResponse.PurchasePlatform,
+ MemberId = hySchemeProductResponse.PurchaserMemberId
+ });
+ }
+
+ foreach (var skuBasicInfo in basicInfo.ItemList)
+ {
+ var hySchemeProductSkuResponse = new PurchaseSchemeProductSkuResponse()
+ {
+ Id = 0,
+ ActualPrice = skuBasicInfo.Price,
+ ProductId = request.ProductId,
+ PurchaseProductId = skuBasicInfo.PurchaseProductId,
+ PurchaseRatio = 1,
+ PurchaseSkuId = skuBasicInfo.PurchaseSkuId,
+ PurchaseSkuLogo = skuBasicInfo.Logo,
+ PurchaseSkuPrice = skuBasicInfo.Price,
+ PurchaseSkuSpecId = skuBasicInfo.PurchaseSkuSpecId,
+ PurchaseSkuTitle = skuBasicInfo.Title
+ };
+ hySchemeProductResponse.PurchaseSchemeProductSkuList.Add(hySchemeProductSkuResponse);
+ hySchemeResponse.DefaultCost += skuBasicInfo.Price;
+ }
+ }
+ }
+ return resultList;
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Core/HY/HYPurchaseScheme.cs b/BBWYB.Server.Model/Dto/Core/HY/HYPurchaseScheme.cs
new file mode 100644
index 0000000..ed39981
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Core/HY/HYPurchaseScheme.cs
@@ -0,0 +1,51 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class HYPurchaseScheme
+ {
+ ///
+ /// HY方案Id
+ ///
+ public int Id { get; set; }
+
+ public string TeamitemsId { get; set; }
+
+ public string UserId { get; set; }
+
+ ///
+ /// 配件数量
+ ///
+ public int SkuCount { get; set; }
+
+ public IList PlanItems { get; set; }
+ }
+
+ public class HYPurchaseSchemeProduct
+ {
+ public string Id { get; set; }
+
+ ///
+ /// 慧眼方案Id
+ ///
+ public int SupplierTaskPlanId { get; set; }
+
+ ///
+ /// Taobao=0 Jd=1 ALBB=2 PDD=3
+ ///
+ public int Platform { get; set; }
+
+ ///
+ /// 采购商品Id
+ ///
+ public string ItemId { get; set; }
+ }
+
+ public class HYPurchaseSchemeProductSku
+ {
+
+ }
+
+ public class HYSupplierInfo
+ {
+
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/hy/QueryHYSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/hy/QueryHYSchemeRequest.cs
new file mode 100644
index 0000000..ab142fe
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/hy/QueryHYSchemeRequest.cs
@@ -0,0 +1,17 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class QueryHYSchemeRequest
+ {
+ public long ShopId { get; set; }
+
+ ///
+ /// 店铺商品Id
+ ///
+ public string ProductId { get; set; }
+
+ ///
+ /// 慧眼标的Id
+ ///
+ public string HYBDId { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/HY/HYPurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/HY/HYPurchaseSchemeResponse.cs
new file mode 100644
index 0000000..8e60df2
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/HY/HYPurchaseSchemeResponse.cs
@@ -0,0 +1,10 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class HYPurchaseSchemeResponse : PurchaseSchemeResponse
+ {
+ ///
+ /// 是否已经添加到SPU之中
+ ///
+ public bool IsAdded { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
index 336d112..d4bd3ff 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
@@ -11,6 +11,10 @@ namespace BBWYB.Server.Model.Dto
public string PurchaseProductId { get; set; }
+ public string ProductName { get; set; }
+
+ public string ProductLogo { get; set; }
+
///
/// 采购SKU基础信息列表
///
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index affd828..7010514 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -12,6 +12,16 @@
public string PurchaserMemberId { get; set; }
+ ///
+ /// 采购商品标题 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseProductName { get; set; }
+
+ ///
+ /// 采购商品Logo 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
+ ///
+ public string PurchaseProductLogo { get; set; }
+
public new List PurchaseSchemeProductSkuList { get; set; }
public PurchaseSchemeProductResponse()
From f4157f8afcffd584c8b74fc3e55747f740a27c99 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 28 Aug 2023 16:29:57 +0800
Subject: [PATCH 50/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 6a15dcb..6231c81 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -82,7 +82,7 @@ namespace BBWYB.Server.Business
List deletePurchaseSchemeIdList = new List();
List> updatePurchaseSchemeList = new List>();
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
@@ -119,7 +119,7 @@ namespace BBWYB.Server.Business
}
#region 更新采购方案
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
@@ -225,9 +225,11 @@ namespace BBWYB.Server.Business
throw new BusinessException("更新方案缺少ProductId/SkuId");
}
+
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserId2) ||
string.IsNullOrEmpty(pp.PurchaserName))))
- throw new BusinessException("更新方案中有采购商Id/Name/Location为空");
+ throw new BusinessException("更新方案中有采购商Id/Id2/Name/Location为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
throw new BusinessException("更新方案中采购方案缺少Id");
@@ -249,8 +251,9 @@ namespace BBWYB.Server.Business
}
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserId2) ||
string.IsNullOrEmpty(pp.PurchaserName))))
- throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
+ throw new BusinessException("新增方案中有采购商Id/Id2/Name/Location为空");
var productIds = batchCURDSchemeRequest.AddPurchaseSchemeList.Select(ps => ps.ProductId).ToList();
@@ -285,7 +288,7 @@ namespace BBWYB.Server.Business
List> updatePurchaseSchemeList = new List>();
List insertPurchaseSchemeGroupsList = new List();
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
@@ -340,7 +343,7 @@ namespace BBWYB.Server.Business
}
#region 更新采购方案
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
From 7f60ef0784e5b9cc2503747dba66c255b12c1e19 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 28 Aug 2023 17:51:00 +0800
Subject: [PATCH 51/89] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=85=8D=E4=BB=B6?=
=?UTF-8?q?=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF=E5=A2=9E=E5=8A=A0=E8=BF=94?=
=?UTF-8?q?=E5=9B=9E=E5=80=BC=E6=9D=A5=E6=BA=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseProductAPIService.cs | 6 ++++--
.../PurchaseScheme/PurchaseProductBasicInfoResponse.cs | 2 ++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
index c447a9b..edf34e2 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseProductAPIService.cs
@@ -141,7 +141,8 @@ namespace BBWYB.Server.Business
},
ItemList = list,
PurchasePlatform = request.Platform,
- PurchaseProductId = request.PurchaseProductId
+ PurchaseProductId = request.PurchaseProductId,
+ APIMode = Enums.PurchaseProductAPIMode.OneBound
};
}
}
@@ -275,7 +276,8 @@ namespace BBWYB.Server.Business
PurchaseProductId = request.PurchaseProductId,
PurchasePlatform = Enums.Platform.阿里巴巴,
ProductName = jobject["globalData"]["tempModel"]["offerTitle"]?.ToString(),
- ProductLogo = list.FirstOrDefault()?.Logo
+ ProductLogo = list.FirstOrDefault()?.Logo,
+ APIMode = Enums.PurchaseProductAPIMode.Spider
};
}
catch
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
index d4bd3ff..28d0738 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseProductBasicInfoResponse.cs
@@ -24,6 +24,8 @@ namespace BBWYB.Server.Model.Dto
/// 采购商
///
public Purchaser Purchaser { get; set; }
+
+ public Enums.PurchaseProductAPIMode APIMode { get; set; }
}
///
From abc25da1cf0f9e36f04c8d13265f2cb2f933bba1 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 01:50:00 +0800
Subject: [PATCH 52/89] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E5=8D=95=E7=8B=AC?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E8=B4=AD=E6=AF=94=E4=BE=8B=E7=9A=84?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 13 ++++-
.../DataRepair/DataRepairBusiness.cs | 2 +-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 54 ++++++++++++++++++-
...Request.cs => EditPurchaseRatioRequest.cs} | 4 +-
4 files changed, 66 insertions(+), 7 deletions(-)
rename BBWYB.Server.Model/Dto/Request/PurchaseScheme/{EditPurchaseRatioAndActualPriceRequest.cs => EditPurchaseRatioRequest.cs} (68%)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index b31afcd..8f129aa 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -150,9 +150,20 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public IList GetPurchaseSchemeByHYBDId([FromBody]QueryHYSchemeRequest request)
+ public IList GetPurchaseSchemeByHYBDId([FromBody] QueryHYSchemeRequest request)
{
return purchaseSchemeBusiness.GetPurchaseSchemeByHYBDId(request);
}
+
+ ///
+ /// 修改采购配件比例
+ ///
+ /// 最新的采购方案成本
+ ///
+ [HttpPost]
+ public decimal EditPurchaseRatio([FromBody] EditPurchaseRatioRequest request)
+ {
+ return purchaseSchemeBusiness.EditPurchaseRatio(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index b86169e..bc0e040 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -175,7 +175,7 @@ namespace BBWYB.Server.Business
{
Id = schemeGroupId.Value,
//GroupName = schemeGroupId.Value.ToString(),
- GroupName = $"{purchaseSchemeSpuGroup.Key}_第{i + 1}组",
+ GroupName = $"{purchaseSchemeSpuGroup.Key}-{schemeGroupId.Value}",
CreateTime = DateTime.Now,
ProductId = currentIndexSchemeList.First().ProductId,
ShopId = currentIndexSchemeList.First().ShopId
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 6231c81..96a0729 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -297,12 +297,11 @@ namespace BBWYB.Server.Business
if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0)
{
//新增分组
- var saemSpuSchemeGroupList = dbSchemeGroupList.Where(psg => psg.ProductId == psReq.ProductId).ToList();
var insertSchemeGroup = new PurchaseSchemeGroup()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
- GroupName = $"{psReq.ProductId}_第{saemSpuSchemeGroupList.Count() + 1}组",
+ GroupName = $"{psReq.ProductId}-{DateTime.Now:yyyyMMddHHmmss}",
ProductId = psReq.ProductId,
ShopId = psReq.ShopId
};
@@ -678,8 +677,20 @@ namespace BBWYB.Server.Business
public void DeletePurchaseScheme(long schemeId)
{
+ IDelete? deletePsg = null;
+ var purchaseScheme = fsql.Select(schemeId).ToOne();
+ if (purchaseScheme == null)
+ throw new BusinessException("采购方案不存在");
+ if (purchaseScheme.SchemeGroupId != 0)
+ {
+ var sameGroupSchemeCount = fsql.Select().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId &&
+ ps.Id != purchaseScheme.Id).Count();
+ if (sameGroupSchemeCount == 0)
+ deletePsg = fsql.Delete(purchaseScheme.SchemeGroupId);
+ }
fsql.Transaction(() =>
{
+ deletePsg?.ExecuteAffrows();
fsql.Delete(schemeId).ExecuteAffrows();
fsql.Delete().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
fsql.Delete().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
@@ -840,5 +851,44 @@ namespace BBWYB.Server.Business
}
return resultList;
}
+
+ public decimal EditPurchaseRatio(EditPurchaseRatioRequest request)
+ {
+ if (request.SchemeId == 0 || string.IsNullOrEmpty(request.SkuId) || string.IsNullOrEmpty(request.PurchaseSkuId))
+ throw new BusinessException("参数不完整");
+ if (request.Ratio < 1)
+ request.Ratio = 1;
+ var schemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ IncludePurchaseSkuBasicInfo = 1,
+ SchemeId = request.SchemeId
+ });
+ if (schemeList.Count() == 0)
+ throw new BusinessException("采购方案不存在");
+ var scheme = schemeList[0];
+ var defaultCost = 0M;
+ long? pssId = null;
+ foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
+ {
+ foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
+ {
+ if (schemeProductSku.SkuId == request.SkuId &&
+ schemeProductSku.PurchaseSkuId == request.PurchaseSkuId)
+ {
+ schemeProductSku.PurchaseRatio = request.Ratio;
+ pssId = schemeProductSku.Id;
+ }
+ defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
+ }
+ }
+ if (pssId == null)
+ throw new BusinessException("未找到需要更新的采购配件");
+ fsql.Transaction(() =>
+ {
+ fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
+ fsql.Update(pssId.Value).Set(pss => pss.PurchaseRatio, request.Ratio).ExecuteAffrows();
+ });
+ return defaultCost;
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
similarity index 68%
rename from BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
rename to BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
index a72e569..0eebc71 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioAndActualPriceRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/EditPurchaseRatioRequest.cs
@@ -1,6 +1,6 @@
namespace BBWYB.Server.Model.Dto
{
- public class EditPurchaseRatioAndActualPriceRequest
+ public class EditPurchaseRatioRequest
{
public long SchemeId { get; set; }
@@ -9,7 +9,5 @@
public string PurchaseSkuId { get; set; }
public int Ratio { get; set; }
-
- public decimal ActualPrice { get; set; }
}
}
From 1f3ff1e8864de18f97488a1cd117e5eea9df85fe Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 09:21:37 +0800
Subject: [PATCH 53/89] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 11 +++
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 83 +++++++++++++++++--
.../DeletePurchaseSchemeRequest.cs | 9 --
.../DeletePurchaseSkuRequest.cs | 11 +++
4 files changed, 97 insertions(+), 17 deletions(-)
delete mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 8f129aa..6e9c386 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -165,5 +165,16 @@ namespace BBWYB.Server.API.Controllers
{
return purchaseSchemeBusiness.EditPurchaseRatio(request);
}
+
+ ///
+ /// 删除采购Sku
+ ///
+ ///
+ /// 最新的采购方案成本
+ [HttpDelete]
+ public decimal DeletePurchaseSku([FromBody]DeletePurchaseSkuRequest request)
+ {
+ return purchaseSchemeBusiness.DeletePurchaseSku(request);
+ }
}
}
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 96a0729..4de643b 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -225,6 +225,14 @@ namespace BBWYB.Server.Business
throw new BusinessException("更新方案缺少ProductId/SkuId");
}
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList == null ||
+ ps.PurchaseSchemeProductList.Count() == 0 ||
+ ps.PurchaseSchemeProductList.Any(psp => psp.PurchaseSchemeProductSkuList == null ||
+ psp.PurchaseSchemeProductSkuList.Count() == 0)))
+ {
+ throw new BusinessException("更新方案缺少商品信息");
+ }
+
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserId2) ||
@@ -250,6 +258,15 @@ namespace BBWYB.Server.Business
throw new BusinessException("新增方案缺少ProductId/SkuId");
}
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList == null ||
+ ps.PurchaseSchemeProductList.Count() == 0 ||
+ ps.PurchaseSchemeProductList.Any(psp => psp.PurchaseSchemeProductSkuList == null ||
+ psp.PurchaseSchemeProductSkuList.Count() == 0)))
+ {
+ throw new BusinessException("新增方案缺少商品信息");
+ }
+
+
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserId2) ||
string.IsNullOrEmpty(pp.PurchaserName))))
@@ -870,16 +887,27 @@ namespace BBWYB.Server.Business
long? pssId = null;
foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
{
- foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
+ var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId &&
+ pss.PurchaseSkuId == request.PurchaseSkuId);
+
+ if (tartegtPurchaseProductSku != null)
{
- if (schemeProductSku.SkuId == request.SkuId &&
- schemeProductSku.PurchaseSkuId == request.PurchaseSkuId)
- {
- schemeProductSku.PurchaseRatio = request.Ratio;
- pssId = schemeProductSku.Id;
- }
- defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
+ tartegtPurchaseProductSku.PurchaseRatio = request.Ratio;
+ pssId = tartegtPurchaseProductSku.Id;
}
+
+ defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1));
+
+ //foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
+ //{
+ // if (schemeProductSku.SkuId == request.SkuId &&
+ // schemeProductSku.PurchaseSkuId == request.PurchaseSkuId)
+ // {
+ // schemeProductSku.PurchaseRatio = request.Ratio;
+ // pssId = schemeProductSku.Id;
+ // }
+ // defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
+ //}
}
if (pssId == null)
throw new BusinessException("未找到需要更新的采购配件");
@@ -890,5 +918,44 @@ namespace BBWYB.Server.Business
});
return defaultCost;
}
+
+ public decimal DeletePurchaseSku(DeletePurchaseSkuRequest request)
+ {
+ if (request.SchemeId == 0 || string.IsNullOrEmpty(request.SkuId) || string.IsNullOrEmpty(request.PurchaseSkuId))
+ throw new BusinessException("参数不完整");
+ var schemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ IncludePurchaseSkuBasicInfo = 1,
+ SchemeId = request.SchemeId
+ });
+ if (schemeList.Count() == 0)
+ throw new BusinessException("采购方案不存在");
+ var scheme = schemeList[0];
+ var defaultCost = 0M;
+ long? pssId = null;
+ foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
+ {
+ var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId &&
+ pss.PurchaseSkuId == request.PurchaseSkuId);
+ if (tartegtPurchaseProductSku != null)
+ {
+ if (schemeProduct.PurchaseSchemeProductSkuList.Count() == 1)
+ throw new BusinessException("最后一个采购sku不能被移除");
+ pssId = tartegtPurchaseProductSku.Id;
+ }
+
+ defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Where(pss => !(pss.SkuId == request.SkuId && pss.PurchaseSkuId == request.PurchaseSkuId))
+ .Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1));
+ }
+
+ if (pssId == null)
+ throw new BusinessException("未找到需要移除的采购sku");
+ fsql.Transaction(() =>
+ {
+ fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
+ fsql.Delete(pssId.Value).ExecuteAffrows();
+ });
+ return defaultCost;
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs
deleted file mode 100644
index 047cd7b..0000000
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace BBWYB.Server.Model.Dto
-{
- public class DeletePurchaseSchemeRequest
- {
- public string ProductId { get; set; }
-
- public string PurchaserId { get; set; }
- }
-}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs
new file mode 100644
index 0000000..47d4440
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs
@@ -0,0 +1,11 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class DeletePurchaseSkuRequest
+ {
+ public long SchemeId { get; set; }
+
+ public string SkuId { get; set; }
+
+ public string PurchaseSkuId { get; set; }
+ }
+}
From 0ed439532e1e1c64e22d1fa3dbbd12a02755f9ff Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 09:22:58 +0800
Subject: [PATCH 54/89] 1
---
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 6e9c386..171612f 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -159,7 +159,7 @@ namespace BBWYB.Server.API.Controllers
/// 修改采购配件比例
///
/// 最新的采购方案成本
- ///
+ /// 最新的采购方案成本
[HttpPost]
public decimal EditPurchaseRatio([FromBody] EditPurchaseRatioRequest request)
{
From 4c213e215c4cdc30ebe698fa19818b4794ccc1e7 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 10:40:12 +0800
Subject: [PATCH 55/89] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 4de643b..1a6d0aa 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -205,6 +205,8 @@ namespace BBWYB.Server.Business
public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
+ nLogManager.Default().Info($"EditPurchaseSchemeV2 {JsonConvert.SerializeObject(batchCURDSchemeRequest)}");
+
List dbSchemeGroupList = null;
List dbPurchaseSchemeList = null;
From 3053fb06e3dbfc9c368694569db09b2faef6fe6f Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 10:59:52 +0800
Subject: [PATCH 56/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88=E5=88=86=E7=BB=84Idbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 1a6d0aa..678b70a 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -325,6 +325,7 @@ namespace BBWYB.Server.Business
ShopId = psReq.ShopId
};
insertPurchaseSchemeGroupsList.Add(insertSchemeGroup);
+ psReq.SchemeGroupId = insertSchemeGroup.Id;
}
var ps = new PurchaseScheme()
From 1c39aeb35ece7c56dec977053cb661e751f41384 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 29 Aug 2023 12:04:03 +0800
Subject: [PATCH 57/89] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E5=88=86=E7=BB=84=E4=B8=8D=E5=90=8C=E7=BB=84?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 33 +++++++++++--------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 678b70a..006ed26 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -311,22 +311,29 @@ namespace BBWYB.Server.Business
{
ExtractNewPurchaser(batchCURDSchemeRequest.AddPurchaseSchemeList, newPurchaserList);
+ #region 新建分组
+ long? newPurchaseGroupId = null;
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.SchemeGroupId == 0 || ps.SchemeGroupId == null))
+ {
+ //新增分组
+ var firstScheme = batchCURDSchemeRequest.AddPurchaseSchemeList.First();
+ var insertSchemeGroup = new PurchaseSchemeGroup()
+ {
+ Id = idGenerator.NewLong(),
+ CreateTime = DateTime.Now,
+ GroupName = $"{firstScheme.ProductId}-{DateTime.Now:yyyyMMddHHmmss}",
+ ProductId = firstScheme.ProductId,
+ ShopId = firstScheme.ShopId
+ };
+ insertPurchaseSchemeGroupsList.Add(insertSchemeGroup);
+ newPurchaseGroupId = insertSchemeGroup.Id;
+ }
+ #endregion
+
foreach (var psReq in batchCURDSchemeRequest.AddPurchaseSchemeList)
{
if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0)
- {
- //新增分组
- var insertSchemeGroup = new PurchaseSchemeGroup()
- {
- Id = idGenerator.NewLong(),
- CreateTime = DateTime.Now,
- GroupName = $"{psReq.ProductId}-{DateTime.Now:yyyyMMddHHmmss}",
- ProductId = psReq.ProductId,
- ShopId = psReq.ShopId
- };
- insertPurchaseSchemeGroupsList.Add(insertSchemeGroup);
- psReq.SchemeGroupId = insertSchemeGroup.Id;
- }
+ psReq.SchemeGroupId = newPurchaseGroupId;
var ps = new PurchaseScheme()
{
From 7988065bd55c993c77ce6c8a047846dddde001a2 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 30 Aug 2023 10:20:12 +0800
Subject: [PATCH 58/89] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=85=8D=E4=BB=B6?=
=?UTF-8?q?=E8=A7=84=E5=88=99=E4=BF=AE=E6=94=B9=EF=BC=8C=E7=BC=96=E8=BE=91?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E6=94=AF=E6=8C=81hyid?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 23 +++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 006ed26..374319d 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -395,7 +395,9 @@ namespace BBWYB.Server.Business
}
}
var psupdate = fsql.Update(schemeId)
- .Set(ps => ps.DefaultCost, defaultCost);
+ .Set(ps => ps.DefaultCost, defaultCost)
+ .Set(ps => ps.HYSchemeId, psReq.HYSchemeId)
+ .Set(ps => ps.HYBDId, psReq.HYBDId);
updatePurchaseSchemeList.Add(psupdate);
}
}
@@ -943,6 +945,12 @@ namespace BBWYB.Server.Business
var scheme = schemeList[0];
var defaultCost = 0M;
long? pssId = null;
+
+ IDelete deletePss = null;
+ IDelete deletePsp = null;
+ IUpdate updatePs = null;
+
+
foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
{
var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId &&
@@ -950,8 +958,13 @@ namespace BBWYB.Server.Business
if (tartegtPurchaseProductSku != null)
{
if (schemeProduct.PurchaseSchemeProductSkuList.Count() == 1)
- throw new BusinessException("最后一个采购sku不能被移除");
+ {
+ if (scheme.PurchaseSchemeProductList.Count() == 1)
+ throw new BusinessException("最后一个采购sku不能被移除");
+ deletePsp = fsql.Delete(schemeProduct.Id);
+ }
pssId = tartegtPurchaseProductSku.Id;
+ deletePss = fsql.Delete(pssId);
}
defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Where(pss => !(pss.SkuId == request.SkuId && pss.PurchaseSkuId == request.PurchaseSkuId))
@@ -960,10 +973,12 @@ namespace BBWYB.Server.Business
if (pssId == null)
throw new BusinessException("未找到需要移除的采购sku");
+ updatePs = fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost);
fsql.Transaction(() =>
{
- fsql.Update(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
- fsql.Delete(pssId.Value).ExecuteAffrows();
+ updatePs?.ExecuteAffrows();
+ deletePsp?.ExecuteAffrows();
+ deletePss?.ExecuteAffrows();
});
return defaultCost;
}
From b9b37050cf64465148d42a6aa8dcf7206e5400db Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 30 Aug 2023 11:11:09 +0800
Subject: [PATCH 59/89] =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=87=87=E8=B4=AD?=
=?UTF-8?q?=E6=96=B9=E6=A1=88=E5=A2=9E=E5=8A=A0=E9=87=87=E8=B4=AD=E5=95=86?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 374319d..8600d69 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -371,6 +371,8 @@ namespace BBWYB.Server.Business
#region 更新采购方案
if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{
+ ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList);
+
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
{
From 25ed48e5ebea0976fc4a79ab5ca6ebcf082cd1b6 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 30 Aug 2023 12:03:09 +0800
Subject: [PATCH 60/89] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=A7=E6=BA=90?=
=?UTF-8?q?=E7=AE=A1=E7=90=86web=E8=8F=9C=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWYB.Client/BBWYB.Client.csproj | 13 +++
BBWYB.Client/GlobalContext.cs | 2 +-
BBWYB.Client/ViewModels/MainViewModel.cs | 3 +-
BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml | 14 +++
.../Views/WebB/WebB_GoodsSource.xaml.cs | 104 ++++++++++++++++++
5 files changed, 134 insertions(+), 2 deletions(-)
create mode 100644 BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml
create mode 100644 BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs
diff --git a/BBWYB.Client/BBWYB.Client.csproj b/BBWYB.Client/BBWYB.Client.csproj
index 5fca9cb..91a07a9 100644
--- a/BBWYB.Client/BBWYB.Client.csproj
+++ b/BBWYB.Client/BBWYB.Client.csproj
@@ -53,4 +53,17 @@
+
+
+ Code
+
+
+
+
+
+ $(DefaultXamlRuntime)
+ Designer
+
+
+
diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs
index e3b24d0..4f7f7a9 100644
--- a/BBWYB.Client/GlobalContext.cs
+++ b/BBWYB.Client/GlobalContext.cs
@@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
- BBWYBApiVersion = "10035";
+ BBWYBApiVersion = "10036";
}
private User user;
diff --git a/BBWYB.Client/ViewModels/MainViewModel.cs b/BBWYB.Client/ViewModels/MainViewModel.cs
index 766958f..4903cbf 100644
--- a/BBWYB.Client/ViewModels/MainViewModel.cs
+++ b/BBWYB.Client/ViewModels/MainViewModel.cs
@@ -109,7 +109,8 @@ namespace BBWYB.Client.ViewModels
ChildList = new List()
{
new MenuModel(){ Name="订单列表Bata",Url="/Views/WebB/WebB.xaml" },
- new MenuModel(){ Name="绩效考核",Url="/Views/WebB/WebB_KPI.xaml" }
+ new MenuModel(){ Name="绩效考核",Url="/Views/WebB/WebB_KPI.xaml" },
+ new MenuModel(){ Name="货源管理",Url="/Views/WebB/WebB_GoodsSource.xaml" }
}
});
MenuList.Add(new MenuModel()
diff --git a/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml b/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml
new file mode 100644
index 0000000..8df7144
--- /dev/null
+++ b/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs b/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs
new file mode 100644
index 0000000..bd3e95e
--- /dev/null
+++ b/BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs
@@ -0,0 +1,104 @@
+using CommunityToolkit.Mvvm.Messaging;
+using CommunityToolkit.Mvvm.Messaging.Messages;
+using Microsoft.Extensions.DependencyInjection;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace BBWYB.Client.Views.WebB
+{
+ ///
+ /// WebB.xaml 的交互逻辑
+ ///
+ public partial class WebB_GoodsSource : Page
+ {
+ private WebView2Manager w2m;
+ private bool isNavigated;
+
+ private GlobalContext globalContext;
+
+ public WebB_GoodsSource()
+ {
+ InitializeComponent();
+ this.Loaded += WebB_Loaded;
+ this.Unloaded += WebB_Unloaded;
+
+ //WeakReferenceMessenger.Default.Register(this, (o, x) =>
+ //{
+ // this.Dispatcher.Invoke(() =>
+ // {
+ // _ = w2m.wb2.ExecuteScriptAsync("window.location.reload();");
+ // });
+ //});
+
+ //WeakReferenceMessenger.Default.Register(this, (o, x) =>
+ //{
+ // this.Dispatcher.Invoke(() =>
+ // {
+ // _ = w2m.wb2.ExecuteScriptAsync("window.BBWY_B_WebContex('PACK_CONFIG_SUCCESS');");
+ // });
+ //});
+ }
+
+ private void WebB_Unloaded(object sender, RoutedEventArgs e)
+ {
+ grid.Children.Remove(w2m.wb2);
+ //w2m.wb2.Dispose();
+ w2m.Close();
+ WeakReferenceMessenger.Default.UnregisterAll(this);
+ }
+
+ private void WebB_Loaded(object sender, System.Windows.RoutedEventArgs e)
+ {
+ var sp = (App.Current as App).ServiceProvider;
+ using (var s = sp.CreateScope())
+ {
+ w2m = s.ServiceProvider.GetRequiredService();
+ globalContext = s.ServiceProvider.GetRequiredService();
+ }
+
+#if DEBUG
+ var url = "http://192.168.1.2/#/goods-source";
+ var registerName = "webTestContext";
+ //var url = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "s.html");
+#else
+ var url = "http://qtbbwy.qiyue666.com/#/goods-source";
+ var registerName = "webContext";
+#endif
+ w2m.CoreWebView2InitializationCompleted = (e) =>
+ {
+ w2m.wb2.CoreWebView2.AddHostObjectToScript(registerName, this.globalContext);
+ isNavigated = true;
+ w2m.wb2.CoreWebView2.Navigate(url);
+ };
+
+
+ w2m.Init("bbwyb_web");
+ w2m.wb2.SetValue(Grid.RowProperty, 1);
+ w2m.wb2.Margin = new Thickness(1, 0, 1, 0);
+ //grid.Children.Clear();
+ grid.Children.Add(w2m.wb2);
+
+ if (w2m.IsInitializationCompleted && !isNavigated)
+ {
+ w2m.wb2.CoreWebView2.Navigate(url);
+ //w2m.wb2.CoreWebView2.NavigateToString(content);
+ isNavigated = true;
+ }
+ }
+ }
+
+
+ //public class Message_WebB_GoodsSource_Refresh : ValueChangedMessage