Browse Source

Merge branch 'purchaseSchemeVersion'

yijia
shanji 2 years ago
parent
commit
83c8b345de
  1. 2
      BBWYB.Common/Log/NLogManager.cs
  2. 4
      BBWYB.Server.API/Controllers/DataRepairController.cs
  3. 70
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  4. 8
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  5. 73
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  6. 5
      BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs
  7. 40
      BBWYB.Server.Model/Db/PurchaseScheme/OrderPurchaseRelationInfo.cs
  8. 6
      BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
  9. 83
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs
  10. 59
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs
  11. 72
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs
  12. 5
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs
  13. 5
      BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs
  14. 8
      BBWYB.Server.Model/MappingProfiles.cs

2
BBWYB.Common/Log/NLogManager.cs

@ -29,8 +29,6 @@ namespace BBWYB.Common.Log
loggerDictionary.TryAdd(loggerName, logger);
}
return logger;
}
}
}

4
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -70,5 +70,9 @@ namespace BBWYB.Server.API.Controllers
[HttpPost]
public void SelectBExistsAndCNotExists()
{ dataRepairBusiness.SelectBExistsAndCNotExists(); }
[HttpPost]
public void SyncHistoryPurchaseScheme()
{ dataRepairBusiness.SyncHistoryPurchaseScheme();}
}
}

70
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -1,4 +1,5 @@
using BBWYB.Common.Log;
using BBWYB.Common.Extensions;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Db;
@ -15,12 +16,14 @@ namespace BBWYB.Server.Business
private PurchaseSchemeBusiness purchaseSchemeBusiness;
private PurchaseOrderBusiness purchaseOrderBusiness;
private FreeSqlMultiDBManager freeSqlMultiDBManager;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager) : base(fsql, nLogManager, idGenerator)
private VenderBusiness venderBusiness;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager, VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator)
{
this.kuaiDi100Manager = kuaiDi100Manager;
this.purchaseSchemeBusiness = purchaseSchemeBusiness;
this.purchaseOrderBusiness = purchaseOrderBusiness;
this.freeSqlMultiDBManager = freeSqlMultiDBManager;
this.venderBusiness = venderBusiness;
}
@ -393,5 +396,68 @@ namespace BBWYB.Server.Business
Console.WriteLine($"B端在而C端不在的数量有 {bexceptIdList.Count()}");
Console.WriteLine($"C端在而B端不在的数量有 {cexceptIdList.Count()}");
}
public void SyncHistoryPurchaseScheme()
{
var qtShops = venderBusiness.GetShopList(platform: Enums.Platform.);
foreach (var shop in qtShops)
{
var psList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest()
{
ShopId = long.Parse(shop.ShopId)
});
List<HistoryPurchaseScheme> insertHistoryPSList = new List<HistoryPurchaseScheme>();
List<HistoryPurchaseSchemeProduct> insertHistoryPSPList = new List<HistoryPurchaseSchemeProduct>();
List<HistoryPurchaseSchemeProductSku> insertHistoryPSSList = new List<HistoryPurchaseSchemeProductSku>();
foreach (var ps in psList)
{
//var newVersion = ps.Version + 1;
var newVersion = ps.Version;
foreach (var psp in ps.PurchaseSchemeProductList)
{
foreach (var pss in psp.PurchaseSchemeProductSkuList)
{
#region 处理历史版本
var historyPss = psp.Map<HistoryPurchaseSchemeProductSku>();
historyPss.HistoryId = idGenerator.NewLong();
historyPss.Version = newVersion;
insertHistoryPSSList.Add(historyPss);
#endregion
}
#region 处理历史版本
var historyPsp = psp.Map<HistoryPurchaseSchemeProduct>();
historyPsp.HistoryId = idGenerator.NewLong();
historyPsp.Version = newVersion;
insertHistoryPSPList.Add(historyPsp);
#endregion
}
#region 处理历史版本
var historyPs = ps.Map<HistoryPurchaseScheme>();
historyPs.HistoryId = idGenerator.NewLong();
historyPs.Version = newVersion;
insertHistoryPSList.Add(historyPs);
//updatePurchaseSchemeIdList.Add(ps.Id);
#endregion
}
fsql.Transaction(() =>
{
if (insertHistoryPSList.Count() > 0)
fsql.Insert(insertHistoryPSList).ExecuteAffrows();
if (insertHistoryPSPList.Count() > 0)
fsql.Insert(insertHistoryPSPList).ExecuteAffrows();
if (insertHistoryPSSList.Count() > 0)
fsql.Insert(insertHistoryPSSList).ExecuteAffrows();
//if (updatePurchaseSchemeIdList.Count() > 0)
// fsql.Update<PurchaseScheme>(updatePurchaseSchemeIdList).Set(ps => ps.Version + 1).ExecuteAffrows();
});
}
}
}
}

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

@ -392,7 +392,8 @@ namespace BBWYB.Server.Business
PurchaseSpecId = cargoParam.SpecId,
Quantity = cargoParam.Quantity,
SchemeId = cargoParam.SchemeId,
SourceSkuId = orderSku?.BelongSkuId
SourceSkuId = orderSku?.BelongSkuId,
SchemeVersion = cargoParam.SchemeVersion ?? 1
});
}
#endregion
@ -488,7 +489,8 @@ namespace BBWYB.Server.Business
notifyQikuPackSchemeParamList.Add(new QiKuPackTaskSkuPurchaseSchemeIdRequest()
{
SkuId = orderSku.BelongSkuId,
SkuPurchaseSchemeId = cargoParam.SchemeId.ToString()
SkuPurchaseSchemeId = cargoParam.SchemeId.ToString(),
SchemeVersion = cargoParam.SchemeVersion ?? 1
});
}
}
@ -863,6 +865,7 @@ namespace BBWYB.Server.Business
PurchaseProductId = cargoParam.ProductId,
PurchaseSpecId = cargoParam.SpecId,
SchemeId = cargoParam.SchemeId,
SchemeVersion = cargoParam.SchemeVersion ?? 1,
Quantity = assOrderCostDetail.PurchaseQuantity,
SourceSkuId = dbOrderSku.BelongSkuId
};
@ -3125,6 +3128,7 @@ namespace BBWYB.Server.Business
ProductId = pss.PurchaseProductId,
SkuId = pss.PurchaseSkuId,
SchemeId = pss.SkuPurchaseSchemeId,
SchemeVersion = scheme.Version,
SpecId = pss.PurchaseSkuSpecId,
Quantity = itemTotal * (pss.PurchaseRatio ?? 1)
}));

73
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -206,6 +206,7 @@ namespace BBWYB.Server.Business
List<PurchaseSchemeGroup> dbSchemeGroupList = null;
List<PurchaseScheme> dbPurchaseSchemeList = null;
List<long> deleteSchemeIdList = new List<long>();
#region 数据验证
if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) &&
(batchCURDSchemeRequest.AddPurchaseSchemeList == null || batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0))
@ -338,6 +339,10 @@ namespace BBWYB.Server.Business
IInsert<PurchaseSchemeGroupIndex>? insertPurchaseSchemeGroupIndex = null;
IUpdate<PurchaseSchemeGroupIndex>? updatePurchaseSchemeGroupIndex = null;
List<HistoryPurchaseScheme> insertHistoryPSList = new List<HistoryPurchaseScheme>();
List<HistoryPurchaseSchemeProduct> insertHistoryPSPList = new List<HistoryPurchaseSchemeProduct>();
List<HistoryPurchaseSchemeProductSku> insertHistoryPSSList = new List<HistoryPurchaseSchemeProductSku>();
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
@ -395,7 +400,8 @@ namespace BBWYB.Server.Business
ShopId = psReq.ShopId,
HYBDId = psReq.HYBDId,
HYSchemeId = psReq.HYSchemeId,
SchemeGroupId = psReq.SchemeGroupId ?? 0
SchemeGroupId = psReq.SchemeGroupId ?? 0,
Version = 1
};
addPurchaseSchemeList.Add(ps);
foreach (var pspReq in psReq.PurchaseSchemeProductList)
@ -414,8 +420,28 @@ namespace BBWYB.Server.Business
pss.SkuPurchaseSchemeId = ps.Id;
addPurchaseSchemeProductSkuList.Add(pss);
ps.DefaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
#region 处理历史版本
var historyPss = psp.Map<HistoryPurchaseSchemeProductSku>();
historyPss.HistoryId = idGenerator.NewLong();
historyPss.Version = 1;
insertHistoryPSSList.Add(historyPss);
#endregion
}
#region 处理历史版本
var historyPsp = psp.Map<HistoryPurchaseSchemeProduct>();
historyPsp.HistoryId = idGenerator.NewLong();
historyPsp.Version = 1;
insertHistoryPSPList.Add(historyPsp);
#endregion
}
#region 处理历史版本
var historyPs = ps.Map<HistoryPurchaseScheme>();
historyPs.HistoryId = idGenerator.NewLong();
insertHistoryPSList.Add(historyPs);
#endregion
}
}
@ -423,11 +449,17 @@ namespace BBWYB.Server.Business
if (batchCURDSchemeRequest.EditPurchaseSchemeList != null && batchCURDSchemeRequest.EditPurchaseSchemeList.Count > 0)
{
ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList);
var editSchemeIdList = batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id).ToList();
List<PurchaseScheme> dbPurchaseSchemes = fsql.Select<PurchaseScheme>().Where(ps => editSchemeIdList.Contains(ps.Id)).ToList();
deletePartsSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
{
var schemeId = psReq.Id;
var dbps = dbPurchaseSchemes.FirstOrDefault(x => x.Id == schemeId);
if (dbps == null)
throw new BusinessException($"未找到编辑方案{schemeId}");
var newVersion = dbps.Version + 1; //采购方案版本
var defaultCost = 0M;
foreach (var pspReq in psReq.PurchaseSchemeProductList)
{
@ -445,13 +477,43 @@ namespace BBWYB.Server.Business
pss.SkuPurchaseSchemeId = schemeId;
addPurchaseSchemeProductSkuList.Add(pss);
defaultCost += ((pssReq.ActualPrice ?? pssReq.DefaultPrice) ?? 0) * (pssReq.PurchaseRatio ?? 1);
#region 处理历史版本
var historyPss = pssReq.Map<HistoryPurchaseSchemeProductSku>();
historyPss.HistoryId = idGenerator.NewLong();
historyPss.CreateTime = DateTime.Now;
historyPss.SkuPurchaseSchemeId = schemeId;
historyPss.Version = newVersion;
insertHistoryPSSList.Add(historyPss);
#endregion
}
#region 处理历史版本
var historyPsp = pspReq.Map<HistoryPurchaseSchemeProduct>();
historyPsp.HistoryId = idGenerator.NewLong();
historyPsp.CreateTime = DateTime.Now;
historyPsp.SkuPurchaseSchemeId = schemeId;
historyPsp.Version = newVersion;
insertHistoryPSPList.Add(historyPsp);
#endregion
}
var psupdate = fsql.Update<PurchaseScheme>(schemeId)
.Set(ps => ps.DefaultCost, defaultCost)
.Set(ps => ps.HYSchemeId, psReq.HYSchemeId)
.Set(ps => ps.HYBDId, psReq.HYBDId);
.Set(ps => ps.HYBDId, psReq.HYBDId)
.Set(ps => ps.Version, newVersion);
updatePurchaseSchemeList.Add(psupdate);
#region 处理历史版本
var historyPs = psReq.Map<HistoryPurchaseScheme>();
historyPs.LastPurchaseTime = dbps.LastPurchaseTime;
historyPs.LastPurchasePriceCost = dbps.LastPurchasePriceCost;
historyPs.DefaultCost = defaultCost;
historyPs.CreateTime = DateTime.Now;
historyPs.Version = newVersion;
historyPs.HistoryId = idGenerator.NewLong();
insertHistoryPSList.Add(historyPs);
#endregion
}
}
#endregion
@ -490,6 +552,13 @@ namespace BBWYB.Server.Business
}
insertPurchaseSchemeGroupIndex?.ExecuteAffrows();
updatePurchaseSchemeGroupIndex?.ExecuteAffrows();
if (insertHistoryPSList.Count() > 0)
fsql.Insert(insertHistoryPSList).ExecuteAffrows();
if (insertHistoryPSPList.Count() > 0)
fsql.Insert(insertHistoryPSPList).ExecuteAffrows();
if (insertHistoryPSSList.Count() > 0)
fsql.Insert(insertHistoryPSSList).ExecuteAffrows();
});
//删除信息残缺的采购方案

5
BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs

@ -64,6 +64,11 @@ namespace BBWYB.Server.Model.Db
/// </summary>
public long? SchemeId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
public int SchemeVersion { get; set; } = 1;
/// <summary>
/// 来源SkuId (JD)
/// </summary>

40
BBWYB.Server.Model/Db/PurchaseScheme/OrderPurchaseRelationInfo.cs

@ -1,40 +0,0 @@
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace BBWYB.Server.Model.Db.PurchaseScheme
{
[Table(Name = "orderpurchaserelationinfo", DisableSyncStructure = true)]
public class OrderPurchaseRelationInfo
{
[Column( IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 采购单Id
/// </summary>
public string PurchaseOrderId { get; set; }
/// <summary>
/// 订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 采购方案Id
/// </summary>
public string SchemeId { get; set; }
/// <summary>
/// 采购spu
/// </summary>
public string PurchaseProductId { get; set; }
/// <summary>
/// 采购sku
/// </summary>
public string PurchaseSkuId { get; set; }
}
}

6
BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs

@ -70,6 +70,12 @@ namespace BBWYB.Server.Model
[Column(DbType = "bigint")]
public long SchemeGroupId { get; set; } = 0;
/// <summary>
/// 方案版本
/// </summary>
[Column(DbType = "int")]
public int Version { get; set; } = 1;
[Column(IsIgnore = true)]
public List<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }
}

83
BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs

@ -0,0 +1,83 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 历史采购方案表
/// </summary>
[Table(Name = "historypurchasescheme", DisableSyncStructure = true)]
public partial class HistoryPurchaseScheme
{
/// <summary>
/// 历史流水Id
/// </summary>
[Column(DbType = "bigint", IsPrimary = true)]
public long HistoryId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 采购默认成本
/// </summary>
public decimal? DefaultCost { get; set; }
/// <summary>
/// 慧眼标的Id
/// </summary>
[Column(StringLength = 50)]
public string HYBDId { get; set; }
/// <summary>
/// 慧眼采购方案Id
/// </summary>
[Column(StringLength = 50)]
public string HYSchemeId { get; set; }
/// <summary>
/// 采购方案Id
/// </summary>
[Column(DbType = "bigint")]
public long? Id { get; set; }
/// <summary>
/// 上次采购成本
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal? LastPurchasePriceCost { get; set; }
/// <summary>
/// 上次采购时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? LastPurchaseTime { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
/// <summary>
/// 方案分组Id
/// </summary>
[Column(DbType = "bigint")]
public long? SchemeGroupId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
[Column(DbType = "bigint")]
public long ShopId { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string SkuId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
[Column(DbType = "int")]
public int? Version { get; set; } = 1;
}
}

59
BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs

@ -0,0 +1,59 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 采购方案商品表
/// </summary>
[ Table(Name = "historypurchaseschemeproduct", DisableSyncStructure = true)]
public partial class HistoryPurchaseSchemeProduct {
/// <summary>
/// 历史流水Id
/// </summary>
[Column(DbType = "bigint", IsPrimary = true)]
public long HistoryId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 采购商品Id
/// </summary>
[Column(StringLength = 50)]
public string PurchaseProductId { get; set; }
/// <summary>
/// 商家Id
/// </summary>
[Column(StringLength = 50)]
public string PurchaserId { get; set; }
/// <summary>
/// 采购商品链接
/// </summary>
[Column(StringLength = 500)]
public string PurchaseUrl { get; set; }
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// Sku采购方案Id
/// </summary>
[Column(DbType = "bigint")]
public long? SkuPurchaseSchemeId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
[Column(DbType = "int")]
public int? Version { get; set; } = 1;
}
}

72
BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs

@ -0,0 +1,72 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 采购方案sku表
/// </summary>
[Table(Name = "historypurchaseschemeproductsku", DisableSyncStructure = true)]
public partial class HistoryPurchaseSchemeProductSku {
/// <summary>
/// 历史流水Id
/// </summary>
[Column(DbType = "bigint", IsPrimary = true)]
public long HistoryId { get; set; }
/// <summary>
/// 实际单价(人工设置)
/// </summary>
[Column(DbType = "decimal(18,2)")]
public decimal? ActualPrice { get; set; } = 0.00M;
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
/// <summary>
/// 采购商品Id
/// </summary>
[Column(StringLength = 50, IsNullable = false)]
public string PurchaseProductId { get; set; }
/// <summary>
/// 采购比例
/// </summary>
[Column(DbType = "int")]
public int? PurchaseRatio { get; set; } = 1;
/// <summary>
/// 采购商品的SkuId
/// </summary>
[Column(StringLength = 50)]
public string PurchaseSkuId { get; set; }
/// <summary>
/// 采购商品Sku的SpecId
/// </summary>
[Column(StringLength = 50)]
public string PurchaseSkuSpecId { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string SkuId { get; set; }
/// <summary>
/// Sku采购方案Id
/// </summary>
[Column(DbType = "bigint")]
public long SkuPurchaseSchemeId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
[Column(DbType = "int")]
public int? Version { get; set; } = 1;
}
}

5
BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs

@ -31,6 +31,11 @@
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
public int? SchemeVersion { get; set; } = 1;
/// <summary>
/// 配件的采购比例 不传值默认1
/// </summary>

5
BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs

@ -5,5 +5,10 @@
public string SkuId { get; set; }
public string SkuPurchaseSchemeId { get; set; }
/// <summary>
/// 采购方案版本
/// </summary>
public long? SchemeVersion { get; set; } = 1;
}
}

8
BBWYB.Server.Model/MappingProfiles.cs

@ -50,8 +50,12 @@ namespace BBWYB.Server.Model
.ForPath(t => t.OrderCost.PurchaseFreight, opt => opt.MapFrom(f => f.PurchaseFreight));
CreateMap<OrderPurchaseInfo, OrderPurchaseInfoResponse>();
//CreateMap<AddOrEditPromotionTaskRequest, PromotionTask>();
CreateMap<EditPurchaseSchemeRequest, HistoryPurchaseScheme>();
CreateMap<InputPurchaseSchemeProductRequest, HistoryPurchaseSchemeProduct>();
CreateMap<InputPurchaseSchemeProductSkuRequest, HistoryPurchaseSchemeProductSku>();
CreateMap<PurchaseScheme, HistoryPurchaseScheme>();
CreateMap<PurchaseSchemeProduct, HistoryPurchaseSchemeProduct>();
CreateMap<PurchaseSchemeProductSku, HistoryPurchaseSchemeProductSku>();
}
}
}

Loading…
Cancel
Save