Browse Source

同位补齐方案分组

yijia
shanji 2 years ago
parent
commit
234786094e
  1. 12
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 75
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  3. 2
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  4. 21
      BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
  5. 45
      BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs

12
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();
}
/// <summary>
/// 补采购方案分组
/// </summary>
[HttpPost]
public void SupplementPurchaserInfo()
public void SupplementPurchaseSchemeGroup()
{
dataRepairBusiness.SupplementPurchaserInfo();
dataRepairBusiness.SupplementPurchaseSchemeGroup();
}
}
}

75
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<string>()
{
};
foreach (var pid in list)
purchaseOrderBusiness.OnSomeOnePurchaseOrderChanged(pid, false);
}
public void SupplementOrderSkuCost()
{
@ -148,5 +137,69 @@ namespace BBWYB.Server.Business
});
}
}
public void SupplementPurchaseSchemeGroup()
{
List<PurchaseSchemeGroup> insertSchemeGroups = new List<PurchaseSchemeGroup>();
IList<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
var purchaseSchemeList = fsql.Select<PurchaseScheme>().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<PurchaseScheme> currentIndexSchemeList = new List<PurchaseScheme>();
//取每个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>(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();
}
});
}
}
}

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

@ -219,7 +219,7 @@ namespace BBWYB.Server.Business
}
}
var sql = select.ToSql();
var purchaseSchemeList = select.ToList<PurchaseSchemeResponse>();
var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList<PurchaseSchemeResponse>();
if (purchaseSchemeList.Count > 0)

21
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
/// </summary>
public DateTime? LastPurchaseTime { get; set; }
//[Column(MapType = typeof(int), DbType = "int(1)")]
//public Enums.Platform PurchasePlatform { 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", IsNullable = true)]
public long? SchemeGroupId { get; set; }
[Column(IsIgnore = true)]
public List<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }

45
BBWYB.Server.Model/Db/PurchaseScheme/PurchaseSchemeGroup.cs

@ -0,0 +1,45 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
/// <summary>
/// 采购方案分组表
/// </summary>
[Table(Name = "purchaseschemegroup", DisableSyncStructure = true)]
public partial class PurchaseSchemeGroup
{
/// <summary>
/// 分组Id
/// </summary>
[Column(DbType = "bigint", IsPrimary = true)]
public long Id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 组名
/// </summary>
[Column(StringLength = 100)]
public string GroupName { get; set; }
/// <summary>
/// 店铺spu,店铺商品Id
/// </summary>
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
[Column(DbType = "bigint")]
public long? ShopId { get; set; }
}
}
Loading…
Cancel
Save