Browse Source

编辑/新增采购方案保存采购历史,修补采购方案历史

yijia
shanji 2 years ago
parent
commit
bfd64ba4b3
  1. 4
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 70
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  3. 70
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  4. 6
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs
  5. 6
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs
  6. 5
      BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs
  7. 8
      BBWYB.Server.Model/MappingProfiles.cs

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>();
//List<long> updatePurchaseSchemeIdList = new List<long>();
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();
});
}
}
}
}

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

@ -340,8 +340,8 @@ namespace BBWYB.Server.Business
IUpdate<PurchaseSchemeGroupIndex>? updatePurchaseSchemeGroupIndex = null;
List<HistoryPurchaseScheme> insertHistoryPSList = new List<HistoryPurchaseScheme>();
List<HistoryPurchaseScheme> insertHistoryPSPList = new List<HistoryPurchaseScheme>();
List<HistoryPurchaseScheme> insertHistoryPSSList = new List<HistoryPurchaseScheme>();
List<HistoryPurchaseSchemeProduct> insertHistoryPSPList = new List<HistoryPurchaseSchemeProduct>();
List<HistoryPurchaseSchemeProductSku> insertHistoryPSSList = new List<HistoryPurchaseSchemeProductSku>();
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
@ -400,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)
@ -419,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
}
}
@ -435,6 +456,10 @@ namespace BBWYB.Server.Business
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)
{
@ -452,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
@ -497,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();
});
//删除信息残缺的采购方案

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

@ -57,12 +57,6 @@ namespace BBWYB.Server.Model.Db
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
/// <summary>
/// 采购商Id
/// </summary>
[Column(StringLength = 20)]
public string PurchaserId { get; set; }
/// <summary>
/// 方案分组Id
/// </summary>

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

@ -18,12 +18,6 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 采购商品流水Id
/// </summary>
[Column(DbType = "bigint")]
public long? Id { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }

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

@ -24,11 +24,6 @@ namespace BBWYB.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 采购sku流水Id
/// </summary>
[Column(DbType = "bigint")]
public long? Id { get; set; }
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }

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