diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index bc0e040..1132c3b 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -140,7 +140,15 @@ namespace BBWYB.Server.Business
 
         public void SupplementPurchaseSchemeGroup()
         {
+            fsql.Transaction(() =>
+            {
+                fsql.Delete<PurchaseSchemeGroup>().Where(psg => 1 == 1).ExecuteAffrows();
+                fsql.Delete<PurchaseSchemeGroupIndex>().Where(psgi => 1 == 1).ExecuteAffrows();
+                fsql.Update<PurchaseScheme>().Set(ps => ps.SchemeGroupId == 0).Where(ps => 1 == 1).ExecuteAffrows();
+            });
+
             List<PurchaseSchemeGroup> insertSchemeGroups = new List<PurchaseSchemeGroup>();
+            List<PurchaseSchemeGroupIndex> insertSchemeGroupIndexs = new List<PurchaseSchemeGroupIndex>();
             Queue<IUpdate<PurchaseScheme>> updatePurchaseSchemeQueue = new Queue<IUpdate<PurchaseScheme>>();
 
             var purchaseSchemeList = fsql.Select<PurchaseScheme>().OrderBy(ps => ps.Id).ToList();
@@ -151,9 +159,18 @@ namespace BBWYB.Server.Business
                 var purchaseSchemeSkuGroups = purchaseSchemeSpuGroup.GroupBy(ps => ps.SkuId);
                 var maxPsGroupCount = purchaseSchemeSkuGroups.Max(g => g.Count());  //该spu最大的采购分组数
 
+                var groupIndex = new PurchaseSchemeGroupIndex()
+                {
+                    CreateTime = DateTime.Now,
+                    Index = maxPsGroupCount,
+                    ShopId = purchaseSchemeSpuGroup.First().ShopId,
+                    ProductId = purchaseSchemeSpuGroup.First().ProductId
+                };
+                insertSchemeGroupIndexs.Add(groupIndex);
+
                 for (var i = 0; i < maxPsGroupCount; i++)
                 {
-                    Console.WriteLine($"正在处理第{i}组");
+                    Console.WriteLine($"正在处理第{i + 1}组");
                     IList<PurchaseScheme> currentIndexSchemeList = new List<PurchaseScheme>();
                     //取每个sku的第i个方案
                     foreach (var purchaseSchemeSkuGroup in purchaseSchemeSkuGroups)
@@ -166,22 +183,20 @@ namespace BBWYB.Server.Business
                             currentIndexSchemeList.Add(scheme);
                         }
                     }
-                    var schemeGroupId = currentIndexSchemeList.FirstOrDefault(ps => ps.SchemeGroupId != null)?.SchemeGroupId;
-                    if (schemeGroupId == null || schemeGroupId == 0)
+
+                    var schemeGroupId = idGenerator.NewLong();
+                    var insertSchemeGroup = new PurchaseSchemeGroup()
                     {
-                        schemeGroupId = idGenerator.NewLong();
-                        //同位中没有分组
-                        var insertSchemeGroup = new PurchaseSchemeGroup()
-                        {
-                            Id = schemeGroupId.Value,
-                            //GroupName = schemeGroupId.Value.ToString(),
-                            GroupName = $"{purchaseSchemeSpuGroup.Key}-{schemeGroupId.Value}",
-                            CreateTime = DateTime.Now,
-                            ProductId = currentIndexSchemeList.First().ProductId,
-                            ShopId = currentIndexSchemeList.First().ShopId
-                        };
-                        insertSchemeGroups.Add(insertSchemeGroup);
-                    }
+                        Id = schemeGroupId,
+                        //GroupName = schemeGroupId.Value.ToString(),
+                        GroupName = $"{purchaseSchemeSpuGroup.Key}-{i + 1}",
+                        CreateTime = DateTime.Now,
+                        ProductId = currentIndexSchemeList.First().ProductId,
+                        ShopId = currentIndexSchemeList.First().ShopId
+                    };
+                    insertSchemeGroups.Add(insertSchemeGroup);
+
+
                     foreach (var purchaseScheme in currentIndexSchemeList)
                     {
                         if (purchaseScheme.SchemeGroupId != schemeGroupId)
@@ -197,6 +212,8 @@ namespace BBWYB.Server.Business
             {
                 if (insertSchemeGroups.Count() > 0)
                     fsql.Insert(insertSchemeGroups).ExecuteAffrows();
+                if (insertSchemeGroupIndexs.Count() > 0)
+                    fsql.Insert(insertSchemeGroupIndexs).ExecuteAffrows();
             });
 
             var updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 8600d69..63ac8a3 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -56,7 +56,6 @@ namespace BBWYB.Server.Business
                         });
                     }
                 }
-
             }
         }
 
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchasesSchemeGroupIndex.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchasesSchemeGroupIndex.cs
new file mode 100644
index 0000000..3c5cd4c
--- /dev/null
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchasesSchemeGroupIndex.cs
@@ -0,0 +1,21 @@
+using FreeSql.DataAnnotations;
+using Newtonsoft.Json;
+
+namespace BBWYB.Server.Model.Db
+{
+
+    [Table(Name = "purchaseschemegroupindex", DisableSyncStructure = true)]
+    public partial class PurchaseSchemeGroupIndex
+    {
+        [Column(IsPrimary = true)]
+        public string ProductId { get; set; }
+
+        public DateTime? CreateTime { get; set; }
+
+        public int? Index { get; set; }
+
+        public long? ShopId { get; set; }
+
+    }
+
+}