diff --git a/BBWYB.Common/Log/NLogManager.cs b/BBWYB.Common/Log/NLogManager.cs index 54c00a6..698aede 100644 --- a/BBWYB.Common/Log/NLogManager.cs +++ b/BBWYB.Common/Log/NLogManager.cs @@ -29,8 +29,6 @@ namespace BBWYB.Common.Log loggerDictionary.TryAdd(loggerName, logger); } return logger; - - } } } diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index df6b0a4..b1b3720 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/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();} } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index 49b735d..14d12b6 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/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 insertHistoryPSList = new List(); + List insertHistoryPSPList = new List(); + List insertHistoryPSSList = new List(); + + + 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(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.Version = newVersion; + insertHistoryPSSList.Add(historyPss); + #endregion + } + #region 处理历史版本 + var historyPsp = psp.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.Version = newVersion; + insertHistoryPSPList.Add(historyPsp); + #endregion + } + + #region 处理历史版本 + var historyPs = ps.Map(); + 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(updatePurchaseSchemeIdList).Set(ps => ps.Version + 1).ExecuteAffrows(); + }); + } + } } } diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index a423504..ebe5db3 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/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) })); diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 7a53413..b9b324b 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -206,6 +206,7 @@ namespace BBWYB.Server.Business List dbSchemeGroupList = null; List dbPurchaseSchemeList = null; List deleteSchemeIdList = new List(); + #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? insertPurchaseSchemeGroupIndex = null; IUpdate? updatePurchaseSchemeGroupIndex = null; + List insertHistoryPSList = new List(); + List insertHistoryPSPList = new List(); + List insertHistoryPSSList = new List(); + 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(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.Version = 1; + insertHistoryPSSList.Add(historyPss); + #endregion } + + #region 处理历史版本 + var historyPsp = psp.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.Version = 1; + insertHistoryPSPList.Add(historyPsp); + #endregion } + + #region 处理历史版本 + var historyPs = ps.Map(); + 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 dbPurchaseSchemes = fsql.Select().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(); + historyPss.HistoryId = idGenerator.NewLong(); + historyPss.CreateTime = DateTime.Now; + historyPss.SkuPurchaseSchemeId = schemeId; + historyPss.Version = newVersion; + insertHistoryPSSList.Add(historyPss); + #endregion } + + #region 处理历史版本 + var historyPsp = pspReq.Map(); + historyPsp.HistoryId = idGenerator.NewLong(); + historyPsp.CreateTime = DateTime.Now; + historyPsp.SkuPurchaseSchemeId = schemeId; + historyPsp.Version = newVersion; + insertHistoryPSPList.Add(historyPsp); + #endregion } var psupdate = fsql.Update(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(); + 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(); }); //删除信息残缺的采购方案 diff --git a/BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs b/BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs index 66af1a8..2712ae5 100644 --- a/BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs +++ b/BBWYB.Server.Model/Db/Order/OrderPurchaseRelationinfo.cs @@ -64,6 +64,11 @@ namespace BBWYB.Server.Model.Db /// public long? SchemeId { get; set; } + /// + /// 采购方案版本 + /// + public int SchemeVersion { get; set; } = 1; + /// /// 来源SkuId (JD) /// diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/OrderPurchaseRelationInfo.cs b/BBWYB.Server.Model/Db/PurchaseScheme/OrderPurchaseRelationInfo.cs deleted file mode 100644 index 629c939..0000000 --- a/BBWYB.Server.Model/Db/PurchaseScheme/OrderPurchaseRelationInfo.cs +++ /dev/null @@ -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; } - - /// - /// 采购单Id - /// - public string PurchaseOrderId { get; set; } - /// - /// 订单Id - /// - public string OrderId { get; set; } - - /// - /// 采购方案Id - /// - public string SchemeId { get; set; } - /// - /// 采购spu - /// - public string PurchaseProductId { get; set; } - /// - /// 采购sku - /// - public string PurchaseSkuId { get; set; } - } -} diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs index 4b9e582..2880073 100644 --- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs +++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs @@ -70,6 +70,12 @@ namespace BBWYB.Server.Model [Column(DbType = "bigint")] public long SchemeGroupId { get; set; } = 0; + /// + /// 方案版本 + /// + [Column(DbType = "int")] + public int Version { get; set; } = 1; + [Column(IsIgnore = true)] public List PurchaseSchemeProductList { get; set; } } diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs new file mode 100644 index 0000000..fa4f370 --- /dev/null +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseScheme.cs @@ -0,0 +1,83 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + /// + /// 历史采购方案表 + /// + [Table(Name = "historypurchasescheme", DisableSyncStructure = true)] + public partial class HistoryPurchaseScheme + { + /// + /// 历史流水Id + /// + [Column(DbType = "bigint", IsPrimary = true)] + public long HistoryId { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 采购默认成本 + /// + + public decimal? DefaultCost { get; set; } + + /// + /// 慧眼标的Id + /// + [Column(StringLength = 50)] + public string HYBDId { get; set; } + + /// + /// 慧眼采购方案Id + /// + [Column(StringLength = 50)] + public string HYSchemeId { get; set; } + + /// + /// 采购方案Id + /// + [Column(DbType = "bigint")] + public long? Id { get; set; } + + /// + /// 上次采购成本 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? LastPurchasePriceCost { get; set; } + + /// + /// 上次采购时间 + /// + [Column(DbType = "datetime")] + public DateTime? LastPurchaseTime { get; set; } + + [Column(StringLength = 50, IsNullable = false)] + public string ProductId { get; set; } + + /// + /// 方案分组Id + /// + [Column(DbType = "bigint")] + public long? SchemeGroupId { get; set; } + + /// + /// 店铺Id + /// + [Column(DbType = "bigint")] + public long ShopId { get; set; } + + [Column(StringLength = 50, IsNullable = false)] + public string SkuId { get; set; } + + /// + /// 采购方案版本 + /// + [Column(DbType = "int")] + public int? Version { get; set; } = 1; + + } + +} diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs new file mode 100644 index 0000000..86cab85 --- /dev/null +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProduct.cs @@ -0,0 +1,59 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + /// + /// 采购方案商品表 + /// + [ Table(Name = "historypurchaseschemeproduct", DisableSyncStructure = true)] + public partial class HistoryPurchaseSchemeProduct { + + /// + /// 历史流水Id + /// + [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; } + + /// + /// 采购商品Id + /// + [Column(StringLength = 50)] + public string PurchaseProductId { get; set; } + + /// + /// 商家Id + /// + [Column(StringLength = 50)] + public string PurchaserId { get; set; } + + /// + /// 采购商品链接 + /// + [Column(StringLength = 500)] + public string PurchaseUrl { get; set; } + + [Column(StringLength = 50)] + public string SkuId { get; set; } + + /// + /// Sku采购方案Id + /// + [Column(DbType = "bigint")] + public long? SkuPurchaseSchemeId { get; set; } + + /// + /// 采购方案版本 + /// + [Column(DbType = "int")] + public int? Version { get; set; } = 1; + + } + +} diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs new file mode 100644 index 0000000..78c6cb2 --- /dev/null +++ b/BBWYB.Server.Model/Db/PurchaseScheme/history/HistoryPurchaseSchemeProductsku.cs @@ -0,0 +1,72 @@ +using FreeSql.DataAnnotations; + +namespace BBWYB.Server.Model.Db +{ + + /// + /// 采购方案sku表 + /// + [Table(Name = "historypurchaseschemeproductsku", DisableSyncStructure = true)] + public partial class HistoryPurchaseSchemeProductSku { + + /// + /// 历史流水Id + /// + [Column(DbType = "bigint", IsPrimary = true)] + public long HistoryId { get; set; } + + /// + /// 实际单价(人工设置) + /// + [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; } + + /// + /// 采购商品Id + /// + [Column(StringLength = 50, IsNullable = false)] + public string PurchaseProductId { get; set; } + + /// + /// 采购比例 + /// + [Column(DbType = "int")] + public int? PurchaseRatio { get; set; } = 1; + + /// + /// 采购商品的SkuId + /// + [Column(StringLength = 50)] + public string PurchaseSkuId { get; set; } + + /// + /// 采购商品Sku的SpecId + /// + [Column(StringLength = 50)] + public string PurchaseSkuSpecId { get; set; } + + [Column(StringLength = 50, IsNullable = false)] + public string SkuId { get; set; } + + /// + /// Sku采购方案Id + /// + [Column(DbType = "bigint")] + public long SkuPurchaseSchemeId { get; set; } + + /// + /// 采购方案版本 + /// + [Column(DbType = "int")] + public int? Version { get; set; } = 1; + + } + +} diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs index 22bbb7b..2286220 100644 --- a/BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/PurchaseOrder/CargoParamRequest.cs @@ -31,6 +31,11 @@ /// public long SchemeId { get; set; } + /// + /// 采购方案版本 + /// + public int? SchemeVersion { get; set; } = 1; + /// /// 配件的采购比例 不传值默认1 /// diff --git a/BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs b/BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs index 8bde0fe..08ce525 100644 --- a/BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/QiKu/QiKuPackTaskSkuPurchaseSchemeIdRequest.cs @@ -5,5 +5,10 @@ public string SkuId { get; set; } public string SkuPurchaseSchemeId { get; set; } + + /// + /// 采购方案版本 + /// + public long? SchemeVersion { get; set; } = 1; } } diff --git a/BBWYB.Server.Model/MappingProfiles.cs b/BBWYB.Server.Model/MappingProfiles.cs index 65112b1..d3b3542 100644 --- a/BBWYB.Server.Model/MappingProfiles.cs +++ b/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(); - //CreateMap(); - + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); + CreateMap(); } } }