From 9c795ec40052866b12c37dd4c3ab66f04d61e890 Mon Sep 17 00:00:00 2001 From: mahao Date: Thu, 13 Jul 2023 09:42:43 +0800 Subject: [PATCH] =?UTF-8?q?BBAC=E3=80=81HBPO=E5=8F=91=E8=BF=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/BQ/Dtos/BBAC_SE_EDI_DTO.cs | 24 +-- .../Entities/BQ/Dtos/HBPO_SE_EDI_DTO.cs | 135 +++++++++++++++ .../Entities/BQ/Dtos/PUB_SE_DETAIL_DTO.cs | 159 ++++++++++++++++++ .../Entities/BQ/BBAC_SE_DETAIL_Service.cs | 4 +- .../Entities/BQ/BBAC_SE_EDI_Service.cs | 4 +- .../Entities/BQ/HBPO_SE_DETAIL_SERVICE.cs | 2 +- .../Entities/BQ/HBPO_SE_EDI_SERVICE.cs | 65 ++++++- .../Entities/BQ/PUB_SE_DETAIL_SERVICE.cs | 77 +++++++++ .../BQ/TB_RePartsRelationship_SERVICE.cs | 2 +- ...ttleAccountApplicationAutoMapperProfile.cs | 14 +- 10 files changed, 460 insertions(+), 26 deletions(-) create mode 100644 code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SE_EDI_DTO.cs create mode 100644 code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SE_DETAIL_DTO.cs create mode 100644 code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SE_DETAIL_SERVICE.cs diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SE_EDI_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SE_EDI_DTO.cs index 596807e6..1e4da74a 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SE_EDI_DTO.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/BBAC_SE_EDI_DTO.cs @@ -13,7 +13,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// LU+生产码 /// [Display(Name = "LU+生产码")] - public string KeyCode { get; set; } = null!; + public string KeyCode { get; set; } /// /// 期间 @@ -25,31 +25,31 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// 零件号 /// [Display(Name = "零件号")] - public string LU { get; set; } = null!; + public string LU { get; set; } /// /// 生产码 /// [Display(Name = "生产码")] - public string PN { get; set; } = null!; + public string PN { get; set; } /// /// 日顺序号 /// [Display(Name = "日顺序号")] - public string SeqNumber { get; set; } = null!; + public string SeqNumber { get; set; } /// /// 小总成号 /// [Display(Name = "小总成号")] - public string AssemblyCode { get; set; } = null!; + public string AssemblyCode { get; set; } /// /// 注塑码 /// [Display(Name = "注塑码")] - public string InjectionCode { get; set; } = null!; + public string InjectionCode { get; set; } /// /// EDI数量 @@ -74,7 +74,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// [Display(Name = "LU+生产码")] [ExporterHeader(DisplayName = "LU+生产码")] - public string KeyCode { get; set; } = null!; + public string KeyCode { get; set; } /// /// 期间 @@ -88,35 +88,35 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos /// [Display(Name = "零件号")] [ExporterHeader(DisplayName = "零件号")] - public string LU { get; set; } = null!; + public string LU { get; set; } /// /// 生产码 /// [Display(Name = "生产码")] [ExporterHeader(DisplayName = "生产码")] - public string PN { get; set; } = null!; + public string PN { get; set; } /// /// 日顺序号 /// [Display(Name = "日顺序号")] [ExporterHeader(DisplayName = "日顺序号")] - public string SeqNumber { get; set; } = null!; + public string SeqNumber { get; set; } /// /// 小总成号 /// [Display(Name = "小总成号")] [ExporterHeader(DisplayName = "小总成号")] - public string AssemblyCode { get; set; } = null!; + public string AssemblyCode { get; set; } /// /// 注塑码 /// [Display(Name = "注塑码")] [ExporterHeader(DisplayName = "注塑码")] - public string InjectionCode { get; set; } = null!; + public string InjectionCode { get; set; } /// /// EDI数量 diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SE_EDI_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SE_EDI_DTO.cs new file mode 100644 index 00000000..054b8c00 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/HBPO_SE_EDI_DTO.cs @@ -0,0 +1,135 @@ +using Magicodes.ExporterAndImporter.Core; +using System; +using System.ComponentModel.DataAnnotations; + +namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos +{ + /// + /// HBPO的EDI数据 + /// + public class HBPO_SE_EDI_DTO + { + /// + /// LU+生产码 + /// + [Display(Name = "LU+生产码")] + public string KeyCode { get; set; } + + /// + /// 期间 + /// + [Display(Name = "期间")] + public int Version { get; set; } + + /// + /// 零件号 + /// + [Display(Name = "零件号")] + public string LU { get; set; } + + /// + /// 生产码 + /// + [Display(Name = "生产码")] + public string PN { get; set; } + + /// + /// 日顺序号 + /// + [Display(Name = "日顺序号")] + public string SeqNumber { get; set; } + + /// + /// 小总成号 + /// + [Display(Name = "小总成号")] + public string AssemblyCode { get; set; } + + /// + /// 注塑码 + /// + [Display(Name = "注塑码")] + public string InjectionCode { get; set; } + + /// + /// EDI数量 + /// + [Display(Name = "EDI数量")] + public decimal Qty { get; set; } + + /// + /// 订货时间 + /// + [Display(Name = "订货时间")] + public DateTime BeginDate { get; set; } + } + + /// + /// 导出 + /// + public class HBPO_SE_EDI_EXPORT_DTO + { + /// + /// LU+生产码 + /// + [Display(Name = "LU+生产码")] + [ExporterHeader(DisplayName = "LU+生产码")] + public string KeyCode { get; set; } + + /// + /// 期间 + /// + [Display(Name = "期间")] + [ExporterHeader(DisplayName = "期间")] + public int Version { get; set; } + + /// + /// 零件号 + /// + [Display(Name = "零件号")] + [ExporterHeader(DisplayName = "零件号")] + public string LU { get; set; } + + /// + /// 生产码 + /// + [Display(Name = "生产码")] + [ExporterHeader(DisplayName = "生产码")] + public string PN { get; set; } + + /// + /// 日顺序号 + /// + [Display(Name = "日顺序号")] + [ExporterHeader(DisplayName = "日顺序号")] + public string SeqNumber { get; set; } + + /// + /// 小总成号 + /// + [Display(Name = "小总成号")] + [ExporterHeader(DisplayName = "小总成号")] + public string AssemblyCode { get; set; } + + /// + /// 注塑码 + /// + [Display(Name = "注塑码")] + [ExporterHeader(DisplayName = "注塑码")] + public string InjectionCode { get; set; } + + /// + /// EDI数量 + /// + [Display(Name = "EDI数量")] + [ExporterHeader(DisplayName = "EDI数量")] + public decimal Qty { get; set; } + + /// + /// 订货时间 + /// + [Display(Name = "订货时间")] + [ExporterHeader(DisplayName = "订货时间")] + public DateTime BeginDate { get; set; } + } +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SE_DETAIL_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SE_DETAIL_DTO.cs new file mode 100644 index 00000000..6c9b4f61 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SE_DETAIL_DTO.cs @@ -0,0 +1,159 @@ +using Magicodes.ExporterAndImporter.Core; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos +{ + /// + /// PUB发运数据 + /// + public class PUB_SE_DETAIL_DTO + { + /// + /// 期间 + /// + [Display(Name = "期间")] + public int Version { set; get; } + + /// + /// 发货时间 + /// + [Display(Name = "发货时间")] + public DateTime ShippingDate { set; get; } + + /// + /// 发运单号 + /// + [Display(Name = "发运单号")] + public string WmsBillNum { set; get; } + + /// + /// 零件号 + /// + [Display(Name = "零件号")] + public string LU { get; set; } + + /// + /// 生产号 + /// + [Display(Name = "生产号")] + public string PN { get; set; } + + /// + /// 组合键值(LU+PN) + /// + [Display(Name = "组合键值(LU+PN)")] + public string KeyCode { get; set; } + + /// + /// 数量 + /// + [Display(Name = "数量")] + public decimal Qty { get; set; } + + /// + /// 日顺序号 + /// + [Display(Name = "日顺序号")] + public string SeqNumber { get; set; } + + /// + /// 小总成号 + /// + [Display(Name = "小总成号")] + public string AssemblyCode { get; set; } + + /// + /// 注塑码 + /// + [Display(Name = "注塑码")] + public string InjectionCode { get; set; } + + /// + /// 订单时间 + /// + [Display(Name = "订单时间")] + public DateTime BeginDate { get; set; } + } + + /// + /// 导出 + /// + public class PUB_SE_DETAIL_EXPORT_DTO + { + /// + /// 期间 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public int Version { set; get; } + + /// + /// 发货时间 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public DateTime ShippingDate { set; get; } + + /// + /// 发运单号 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public string WmsBillNum { set; get; } + + /// + /// 零件号 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public string LU { get; set; } + + /// + /// 生产号 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public string PN { get; set; } + + /// + /// 组合键值(LU+PN) + /// + [ExporterHeader(DisplayName = "日顺序号")] + public string KeyCode { get; set; } + + /// + /// 数量 + /// + [ExporterHeader(DisplayName = "日顺序号")] + public decimal Qty { get; set; } + + /// + /// 日顺序号 + /// + [Display(Name = "日顺序号")] + [ExporterHeader(DisplayName = "日顺序号")] + public string SeqNumber { get; set; } + + /// + /// 小总成号 + /// + [Display(Name = "小总成号")] + [ExporterHeader(DisplayName = "小总成号")] + public string AssemblyCode { get; set; } + + /// + /// 注塑码 + /// + [Display(Name = "注塑码")] + [ExporterHeader(DisplayName = "注塑码")] + public string InjectionCode { get; set; } + + /// + /// 订单时间 + /// + [Display(Name = "订单时间")] + [ExporterHeader(DisplayName = "订单时间")] + public DateTime BeginDate { get; set; } + } + +} diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_DETAIL_Service.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_DETAIL_Service.cs index 2f7f9e68..3637a019 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_DETAIL_Service.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_DETAIL_Service.cs @@ -18,7 +18,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// BBAC发运单 /// [AllowAnonymous] - [Route("api/settleaccount/BBAC_SE_DETAIL_SERVICE")] + [Route("api/settleaccount/[controller]/[action]")] public class BBAC_SE_DETAIL_SERVICE : ApplicationService { /// @@ -45,7 +45,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// 导出 /// [HttpPost] - [Route("Export")] public async Task ExportAsync(RequestDto input) { string fileName = $"BBAC发运单_{Guid.NewGuid()}.xlsx"; @@ -66,7 +65,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// 获取列表 /// [HttpPost] - [Route("list")] public async Task> GetListAsync(RequestDto input) { var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_EDI_Service.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_EDI_Service.cs index a7791e30..908bafc3 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_EDI_Service.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SE_EDI_Service.cs @@ -18,7 +18,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// BBAC的EDI数据 /// [AllowAnonymous] - [Route("api/settleaccount/bbac_se_edi_service")] + [Route("api/settleaccount/[controller]/[action]")] public class BBAC_SE_EDI_SERVICE : ApplicationService { /// @@ -45,7 +45,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// 导出 /// [HttpPost] - [Route("Export")] public async Task ExportAsync(RequestDto input) { string fileName = $"BBAC的EDI数据_{Guid.NewGuid()}.xlsx"; @@ -66,7 +65,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// 获取列表 /// [HttpPost] - [Route("list")] public async Task> GetListAsync(RequestDto input) { var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_DETAIL_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_DETAIL_SERVICE.cs index 33a1db39..1653f432 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_DETAIL_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_DETAIL_SERVICE.cs @@ -18,7 +18,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// HBPO发运单 /// [AllowAnonymous] - [Route("api/settleaccount/hbpo_se_detail/[action]")] + [Route("api/settleaccount/[controller]/[action]")] public class HBPO_SE_DETAIL_SERVICE : ApplicationService { /// diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_EDI_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_EDI_SERVICE.cs index 40fdbf9e..c816622b 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_EDI_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_SE_EDI_SERVICE.cs @@ -1,11 +1,16 @@ using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Mvc; +using SettleAccount.Domain.BQ; +using Shouldly; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.Entities.BQ.Dtos; +using Win.Sfs.SettleAccount.ExcelImporter; +using Win.Sfs.Shared.RepositoryBase; namespace Win.Sfs.SettleAccount.Entities.BQ { @@ -13,8 +18,60 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// HBPO的EDI数据 /// [AllowAnonymous] - [Route("api/settleaccount/hbpo_se_edi_service")] + [Route("api/settleaccount/[controller]/[action]")] public class HBPO_SE_EDI_SERVICE : ApplicationService { + /// + /// HBPO的EDI数据仓储 + /// + private readonly INormalEfCoreRepository _repository; + + /// + /// excel服务 + /// + private readonly IExcelImportAppService _excelImportService; + + /// + /// 构造 + /// + public HBPO_SE_EDI_SERVICE(INormalEfCoreRepository repository, IExcelImportAppService excelImportService) + { + _repository = repository; + _excelImportService = excelImportService; + } + + #region 导出 + /// + /// 导出 + /// + [HttpPost] + public async Task ExportAsync(RequestDto input) + { + string fileName = $"HBPO的EDI数据_{Guid.NewGuid()}.xlsx"; + var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true); + var dtos = ObjectMapper.Map, List>(entities); + + ExportImporter _exportImporter = new ExportImporter(); + var result = await _exportImporter.ExcelExporter(dtos); + result.ShouldNotBeNull(); + + await _excelImportService.SaveBlobAsync(new SaveExcelImportInputDto { Name = fileName, Content = result }); + return fileName; + } + #endregion + + #region 查询 + /// + /// 获取列表 + /// + [HttpPost] + public async Task> GetListAsync(RequestDto input) + { + var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true); + var totalCount = await _repository.GetCountByFilterAsync(input.Filters); + var dtos = ObjectMapper.Map, List>(entities); + return new PagedResultDto(totalCount, dtos); + } + #endregion } } diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SE_DETAIL_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SE_DETAIL_SERVICE.cs new file mode 100644 index 00000000..17344159 --- /dev/null +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SE_DETAIL_SERVICE.cs @@ -0,0 +1,77 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using SettleAccount.Domain.BQ; +using Shouldly; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; +using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.Entities.BQ.Dtos; +using Win.Sfs.SettleAccount.ExcelImporter; +using Win.Sfs.Shared.RepositoryBase; +namespace Win.Sfs.SettleAccount.Entities.BQ +{ + /// + /// PUB发运数据 + /// + [AllowAnonymous] + [Route("api/settleaccount/[controller]/[action]")] + public class PUB_SE_DETAIL_SERVICE : ApplicationService + { + /// + /// PUB发运单仓储 + /// + private readonly INormalEfCoreRepository _repository; + + /// + /// excel服务 + /// + private readonly IExcelImportAppService _excelImportService; + + /// + /// 构造 + /// + public PUB_SE_DETAIL_SERVICE(INormalEfCoreRepository repository, IExcelImportAppService excelImportService) + { + _repository = repository; + _excelImportService = excelImportService; + } + + #region 导出 + /// + /// 导出 + /// + [HttpPost] + public async Task ExportAsync(RequestDto input) + { + string fileName = $"PUB发运单_{Guid.NewGuid()}.xlsx"; + var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true); + var dtos = ObjectMapper.Map, List>(entities); + + ExportImporter _exportImporter = new ExportImporter(); + var result = await _exportImporter.ExcelExporter(dtos); + result.ShouldNotBeNull(); + + await _excelImportService.SaveBlobAsync(new SaveExcelImportInputDto { Name = fileName, Content = result }); + return fileName; + } + #endregion + + #region 查询 + /// + /// 获取列表 + /// + [HttpPost] + public async Task> GetListAsync(RequestDto input) + { + var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true); + var totalCount = await _repository.GetCountByFilterAsync(input.Filters); + var dtos = ObjectMapper.Map, List>(entities); + return new PagedResultDto(totalCount, dtos); + } + #endregion + + } +} \ No newline at end of file diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/TB_RePartsRelationship_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/TB_RePartsRelationship_SERVICE.cs index 030a409b..06590766 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/TB_RePartsRelationship_SERVICE.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/TB_RePartsRelationship_SERVICE.cs @@ -112,7 +112,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ /// /// 获取列表 /// - [HttpGet] + [HttpPost] public async Task> GetListAsync(RequestDto input) { var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true); diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs index 2fd169f7..940643e2 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs @@ -140,6 +140,7 @@ namespace Win.Sfs.SettleAccount CreateMapBBAC_SE_EDI(); CreateMapHBPO_SE_DETAIL(); CreateMapHBPO_SE_EDI(); + CreateMapPUB_SE_DETAIL(); } #region BQ @@ -795,8 +796,17 @@ namespace Win.Sfs.SettleAccount /// private void CreateMapHBPO_SE_EDI() { - //CreateMap(); - //CreateMap(); + CreateMap(); + CreateMap(); + } + + /// + /// PUB发运单 + /// + private void CreateMapPUB_SE_DETAIL() + { + CreateMap(); + CreateMap(); } }