diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformCreateDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformCreateDto.cs new file mode 100644 index 00000000..a02f21f6 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformCreateDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformCreateDto : BT_Car_PlatformDtoBase, IBranch + { + public virtual Guid BranchId { get; set; } + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDto.cs new file mode 100644 index 00000000..dc89ff81 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDto.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared.DtoBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformDto : AuditedEntityDtoBase + { + /// + ///工厂 + /// + public string Factory { get; set; } + /// + ///外部看板编号 + /// + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + public string Year { get; set; } + /// + /// 期间 + /// + public string Period { set; get; } + /// + /// 版本号 + /// + public string Version { set; get; } + /// + /// 看板号 + /// + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + public string Supplier { get; set; } + + /// + /// 存储地点 + /// + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + public string StorageLocationDesc { get; set; } + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDtoBase.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDtoBase.cs new file mode 100644 index 00000000..12180351 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformDtoBase.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared.DtoBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformDtoBase : CreateOrUpdateEntityDtoBase + { + /// + ///工厂 + /// + public string Factory { get; set; } + /// + ///外部看板编号 + /// + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + public string Year { get; set; } + /// + /// 期间 + /// + public string Period { set; get; } + /// + /// 版本号 + /// + public string Version { set; get; } + /// + /// 类型:CP7报废和索赔两种 + /// + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + public string Supplier { get; set; } + + /// + /// 存储地点描述 + /// + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + public string StorageLocationDesc { get; set; } + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformExportDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformExportDto.cs new file mode 100644 index 00000000..9ac1a36b --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformExportDto.cs @@ -0,0 +1,85 @@ +using Magicodes.ExporterAndImporter.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformExportDto + { + /// + ///工厂 + /// + [ExporterHeader(DisplayName = "工厂")] + public string Factory { get; set; } + /// + ///外部看板编号 + /// + [ExporterHeader(DisplayName = "外部看板编号")] + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + [ExporterHeader(DisplayName = "看板编号")] + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + [ExporterHeader(DisplayName = "物料凭证号")] + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + [ExporterHeader(DisplayName = "会计年度")] + public string Year { get; set; } + /// + /// 期间 + /// + [ExporterHeader(DisplayName = "期间")] + public string Period { set; get; } + /// + /// 版本号 + /// + [ExporterHeader(DisplayName = "版本号")] + public string Version { set; get; } + /// + /// 看板号 + /// + [ExporterHeader(DisplayName = "看板号")] + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + [ExporterHeader(DisplayName = "物料号")] + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + [ExporterHeader(DisplayName = "验收单日期")] + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + [ExporterHeader(DisplayName = "供应商")] + public string Supplier { get; set; } + + /// + /// 存储地点 + /// + [ExporterHeader(DisplayName = "存储地点")] + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + [ExporterHeader(DisplayName = "存储地点描述")] + public string StorageLocationDesc { get; set; } + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformImportDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformImportDto.cs new file mode 100644 index 00000000..5b35507c --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformImportDto.cs @@ -0,0 +1,85 @@ +using Magicodes.ExporterAndImporter.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformImportDto + { + /// + ///工厂 + /// + [ImporterHeader(Name = "工厂")] + public string Factory { get; set; } + /// + ///外部看板编号 + /// + [ImporterHeader(Name = "外部看板编号")] + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + [ImporterHeader(Name = "看板编号")] + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + [ImporterHeader(Name = "物料凭证号")] + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + [ImporterHeader(Name = "会计年度")] + public string Year { get; set; } + /// + /// 期间 + /// + [ImporterHeader(Name = "期间")] + public string Period { set; get; } + /// + /// 版本号 + /// + [ImporterHeader(Name = "版本号")] + public string Version { set; get; } + /// + /// 看板号 + /// + [ImporterHeader(Name = "看板号")] + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + [ImporterHeader(Name = "物料号")] + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + [ImporterHeader(Name = "验收单日期")] + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + [ImporterHeader(Name = "供应商")] + public string Supplier { get; set; } + + /// + /// 存储地点 + /// + [ImporterHeader(Name = "存储地点")] + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + [ImporterHeader(Name = "存储地点描述")] + public string StorageLocationDesc { get; set; } + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformRequestDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformRequestDto.cs new file mode 100644 index 00000000..600cced9 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformRequestDto.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared.DtoBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformRequestDto : RequestDtoBase + { + + /// + ///工厂 + /// + public string Factory { get; set; } + /// + ///外部看板编号 + /// + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + public string Year { get; set; } + /// + /// 期间 + /// + public string Period { set; get; } + /// + /// 版本号 + /// + public string Version { set; get; } + /// + /// 看板号 + /// + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + public string Supplier { get; set; } + + /// + /// 存储地点 + /// + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + public string StorageLocationDesc { get; set; } + + public virtual Guid ParentId { get; set; } + public virtual Guid BranchId { get; set; } + + public virtual Guid UserId { get; set; } + + public virtual int FileType { get; set; } + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformVersionDtoBase.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformVersionDtoBase.cs new file mode 100644 index 00000000..f4a05213 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/BT_Car_PlatformVersionDtoBase.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared; +using Win.Sfs.Shared.DtoBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + /// + /// SettleAccountVersion + /// + public class BT_Car_PlatformVersionDtoBase : CreateOrUpdateEntityDtoBase + { + + public string Year { get; private set; } + /// + /// 期间 + /// + public string Period { get; private set; } + /// + /// 版本号 + /// + public string Version { get; private set; } + + /// + /// 客户号 + /// + public string CustomerCode { private set; get; } + + + } + + + + public class BT_Car_PlatformVersionDto : AuditedEntityDtoBase, IBranch + { + public string Year { get; set; } + /// + /// 期间 + /// + public string Period { get; set; } + /// + /// 版本号 + /// + public string Version { get; set; } + + /// + /// 客户号 + /// + public string CustomerCode { set; get; } + public Guid BranchId { get; set; } + } + + public class BT_Car_PlatformVersionCreateDto : BT_Car_PlatformVersionDtoBase + { } + public class BT_Car_PlatformVersionUpdateDto : BT_Car_PlatformVersionDtoBase + { } + public class BT_Car_PlatformVersionRequestDto : RequestDtoBase, IBranch + { + + public string Year { get; private set; } + /// + /// 期间 + /// + public string Period { get; private set; } + /// + /// 版本号 + /// + public string Version { get; private set; } + + /// + /// 客户号 + /// + public string CustomerCode { private set; get; } + public Guid BranchId { get; set; } + } + + public class BT_Car_PlatformVersionImportDto + { + + public string Year { get; private set; } + /// + /// 期间 + /// + public string Period { get; private set; } + /// + /// 版本号 + /// + public string Version { get; private set; } + + /// + /// 客户号 + /// + public string CustomerCode { private set; get; } + + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/IBT_Car_PlatformAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/IBT_Car_PlatformAppService.cs new file mode 100644 index 00000000..0cfe583e --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BT_Car/IBT_Car_PlatformAppService.cs @@ -0,0 +1,91 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public interface IBT_Car_PlatformAppService + { + /// + /// 导入功能 + /// + /// 上传的文件(前端已经限制只能上传一个附件) + /// + + Task BT_Car_PlatformUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, + string year, string period, string version, string customerCode); + + /// + /// 按ID获取唯一实体 + /// + /// + /// 返回实体全部属性 + /// + /// ID + /// 实体DTO + + Task GetAsync(Guid id); + + /// + /// 根据筛选条件获取实体列表 + /// + /// + /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码 + /// + /// 请求条件 + /// 实体DTO列表 + + Task> GetListAsync(BT_Car_PlatformRequestDto input); + + + + + /// + /// 根据筛选条件获取实体列表 + /// + /// + /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码 + /// + /// 请求条件 + /// 实体DTO列表 + + Task> GetVersionListAsync(BT_Car_PlatformVersionRequestDto input); + + + Task ExportAsync(BT_Car_PlatformRequestDto input); + + /// + /// 获取实体总数 + /// + /// 实体总数 + + Task GetTotalCountAsync(Guid branchId); + + + + + + ///// + ///// 删除实体 + ///// + ///// ID + ///// + + Task DeleteAsync(Guid id); + + + /// + /// 按IDs删除实体列表 + /// + /// IDs + /// 是否执行成功 + + Task DeleteListAsync(List ids); + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissionDefinitionProvider.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissionDefinitionProvider.cs index 33d5c923..956ec8d7 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissionDefinitionProvider.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissionDefinitionProvider.cs @@ -12,6 +12,12 @@ namespace Win.Sfs.SettleAccount #region 派格 + //一汽轿车平台导入 + var bt_car = myGroup.AddPermission(SettleAccountPermissions.BT_Carlatform.Default, L("BT_Carlatform")); + bt_car.AddChild(SettleAccountPermissions.BT_Carlatform.Create, L("Create")); + bt_car.AddChild(SettleAccountPermissions.BT_Carlatform.Update, L("Update")); + bt_car.AddChild(SettleAccountPermissions.BT_Carlatform.Delete, L("Delete")); + //红旗M平台导入 var hq_m = myGroup.AddPermission(SettleAccountPermissions.HQ_MPlatform.Default, L("HQ_MPlatform")); hq_m.AddChild(SettleAccountPermissions.HQ_MPlatform.Create, L("Create")); diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissions.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissions.cs index 22a5a79b..6973346d 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissions.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Permissions/SettleAccountPermissions.cs @@ -14,6 +14,16 @@ namespace Win.Sfs.SettleAccount #region 派格 + /// + /// 一汽轿车-权限 + /// + public static class BT_Carlatform + { + public const string Default = GroupName + "." + nameof(BT_Carlatform); + public const string Create = Default + "." + CreateStr; + public const string Update = Default + "." + UpdateStr; + public const string Delete = Default + "." + DeleteStr; + } /// /// 红旗M平台导入-权限 diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BT_Car/BT_Car_PlatformAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BT_Car/BT_Car_PlatformAppService.cs new file mode 100644 index 00000000..0b5cd97f --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BT_Car/BT_Car_PlatformAppService.cs @@ -0,0 +1,316 @@ +using EFCore.BulkExtensions; +using Magicodes.ExporterAndImporter.Core; +using Magicodes.ExporterAndImporter.Csv; +using Magicodes.ExporterAndImporter.Excel; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +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.Caching; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Guids; +using Win.Abp.Snowflakes; +using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.CommonManagers; +using Win.Sfs.SettleAccount.Constant; +using Win.Sfs.SettleAccount.ExcelImporter; +using Win.Sfs.SettleAccount.ExportReports; +using Win.Sfs.Shared.Filter; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + /// + /// 一汽轿车平台导入 + /// + //[Authorize(SettleAccountPermissions.HQ_MPlatform.Default)] + //[AllowAnonymous] + [Route("api/settleaccount/BT_Carlatform")] + public class BT_Car_PlatformAppService : SettleAccountApplicationBase, IBT_Car_PlatformAppService + { + private readonly IGuidGenerator _guidGenerator; + + private readonly IExcelImportAppService _excelImportService; + + private readonly ISettleAccountBranchEfCoreRepository _versionRepository; + + private readonly ISettleAccountBranchEfCoreRepository _repository; + /// + /// 构建方法 + /// + /// 构建UID + /// 仓储接口 + /// 缓存 + public BT_Car_PlatformAppService(IGuidGenerator guidGenerator, + ISettleAccountBranchEfCoreRepository versionRepository, + ISettleAccountBranchEfCoreRepository repository, + IDistributedCache cache, + IExcelImportAppService excelImportService, + ISnowflakeIdGenerator snowflakeIdGenerator, + ICommonManager commonManager + ) : base(cache, excelImportService, snowflakeIdGenerator, commonManager) + { + _versionRepository = versionRepository; + _guidGenerator = guidGenerator; + _excelImportService = excelImportService; + _repository = repository; + } + + + /// + /// 导入功能 + /// + /// 上传的文件(前端已经限制只能上传一个附件) + /// + [HttpPost] + [Route("ExcelImport")] + [DisableRequestSizeLimit] + //[Authorize(SettleAccountPermissions.SettleAccounts.Default)] + public async Task BT_Car_PlatformUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, string year, string period, string version, string customerCode) + { + ExportImporter _exportImporter = new ExportImporter(); + var result = await _exportImporter.UploadExcelImport(files, _excelImportService); + var entityList = ObjectMapper.Map, List>(result); + //删除版本 + var _versionQuery = _versionRepository.Where(p => p.Version == version); + await _versionQuery.BatchDeleteAsync(); + //删除明细 + var _query = _repository.Where(p => p.Version == version); + await _query.BatchDeleteAsync(); + //插入数据前检验 + var checkList = new List(); + var _group = entityList.GroupBy(x => new { x.KanbanNumber, x.MaterialCode, x.Version }).Select(p => new { Count = p.Count(), KanbanNumber = p.Key.KanbanNumber, MaterialCode = p.Key.MaterialCode }); + foreach (var itm in _group) + { + if (string.IsNullOrEmpty(itm.KanbanNumber)) + { + checkList.Add(new ErrorExportDto(version, customerCode, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("导入的零件号{0},其看板号{1}有空,请检查!", itm.MaterialCode, itm.KanbanNumber), string.Empty)); + } + } + var _id = GuidGenerator.Create(); + var _bomList = new List(); + _bomList.Add(new BT_Car_PlatformVersion(_id, branchId, year, period, version, customerCode)); + foreach (var itm in entityList) + { + //赋值上主键ID + itm.SetValue(GuidGenerator.Create(), branchId, year, period, version); + } + if (checkList.Count > 0) + { + return await ExportErrorReportAsync(checkList); + } + await _repository.GetDbContext().BulkInsertAsync(entityList); + await _versionRepository.GetDbContext().BulkInsertAsync(_bomList); + return ApplicationConsts.SuccessStr; + } + + /// + /// 按ID获取唯一实体 + /// + /// + /// 返回实体全部属性 + /// + /// ID + /// 实体DTO + [HttpGet] + [Route("{id}")] + //[Authorize(SettleAccountPermissions.SettleAccounts.Default)] + virtual public async Task GetAsync(Guid id) + { + var result = await GetFromCacheAsync(id); + var dto = ObjectMapper.Map(result); + return dto; + } + + + private async Task GetFromCacheAsync(Guid id) + { + var result = await _repository.GetAsync(id); + return result; + } + + + private async Task GetCountAsync(BT_Car_PlatformRequestDto input) + { + return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters); + } + + private async Task GetCountAsync(BT_Car_PlatformVersionRequestDto input) + { + return await _versionRepository.GetCountByFilterAsync(input.BranchId, input.Filters); + } + + + /// + /// 导出文件 + /// + /// + /// + [HttpPost] + [Route("Export")] + //[Authorize(SettleAccountPermissions.SettleAccounts.Default)] + virtual public async Task ExportAsync(BT_Car_PlatformRequestDto input) + { + + IExporter _csv = new CsvExporter(); + IExporter _excel = new ExcelExporter(); + if (!string.IsNullOrEmpty(input.Version)) + { + input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version }); + } + var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue, + 0, true); + + var dtoDetails = ObjectMapper.Map, List>(entities); + + string _fileName = string.Empty; + //声明导出容器 + + byte[] result = null; + switch (input.FileType) + { + case 0: + _fileName = string.Format("一轿奔腾验收结算明细_{0}.csv", input.UserId.ToString()); + result = await _csv.ExportAsByteArray(dtoDetails); + break; + case 1: + _fileName = string.Format("一轿奔腾验收结算明细_{0}.xlsx", input.UserId.ToString()); + result = await _excel.ExportAsByteArray(dtoDetails); + break; + } + result.ShouldNotBeNull(); + + //保存导出文件到服务器存成二进制 + await _excelImportService.SaveBlobAsync( + new SaveExcelImportInputDto + { + Name = _fileName, + Content = result + } + ); + return _fileName; + } + + + /// + /// 根据筛选条件获取实体列表 + /// + /// + /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码 + /// + /// 请求条件 + /// 实体DTO列表 + [HttpPost] + [Route("list")] + //[Authorize(SettleAccountPermissions.SettleAccounts.Default)] + virtual public async Task> GetListAsync(BT_Car_PlatformRequestDto input) + { + if (!string.IsNullOrEmpty(input.Version)) + { + input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version }); + } + else + { + return new PagedResultDto(0, new List()); + } + var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, input.MaxResultCount, + input.SkipCount, true); + + var totalCount = await GetCountAsync(input); + var dtos = ObjectMapper.Map, List>(entities); + + return new PagedResultDto(totalCount, dtos); + } + + + /// + /// 获取实体总数 + /// + /// 实体总数 + [HttpGet] + [Route("count")] + [Authorize(SettleAccountPermissions.SettleAccounts.Default)] + virtual public async Task GetTotalCountAsync(Guid branchId) + { + return await _repository.GetCountAsync(branchId); + } + + /// + /// 获取全部实体列表 + /// + /// 实体DTO列表 + [HttpGet] + [Route("all")] + //[Authorize(SettleAccountPermissions.SettleAccounts.Default)] + virtual public async Task> GetAllAsync(Guid branchId) + { + var entities = await _repository.GetAllAsync(branchId, true); + + + var dtos = ObjectMapper.Map, List>(entities); + + + return new ListResultDto(dtos); + } + + + + /// + /// 删除实体 + /// + /// ID + /// + [HttpDelete] + [Route("{id}")] + /// [Authorize(SettleAccountPermissions.SettleAccounts.Delete)] + virtual public async Task DeleteAsync(Guid id) + { + await _repository.DeleteAsync(id); + } + + /// + /// 按IDs删除实体列表 + /// + /// IDs + /// 是否执行成功 + [HttpPost] + [Route("delete")] + // [Authorize(SettleAccountPermissions.SettleAccounts.Delete)] + virtual public async Task DeleteListAsync(List ids) + { + foreach (var id in ids) + { + var entity = await GetFromCacheAsync(id); + //await Cache.DeleteAsync(id.ToString()); + } + + return await _repository.DeleteListAsync(ids); + } + + + + /// + /// 版本列表查询 + /// + /// + /// + [HttpPost] + [Route("listversion")] + public async Task> GetVersionListAsync(BT_Car_PlatformVersionRequestDto input) + { + var entities = await _versionRepository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue, + input.SkipCount, true); + + var totalCount = await GetCountAsync(input); + var dtos = ObjectMapper.Map, List>(entities); + + return new PagedResultDto(totalCount, dtos); + } + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml index 3a662ce4..3948952c 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml @@ -310,6 +310,86 @@ 请求条件 实体DTO列表 + + + 一汽轿车平台导入 + + + + + 构建方法 + + 构建UID + 仓储接口 + 缓存 + + + + 导入功能 + + 上传的文件(前端已经限制只能上传一个附件) + + + + + 按ID获取唯一实体 + + + 返回实体全部属性 + + ID + 实体DTO + + + + 导出文件 + + + + + + + 根据筛选条件获取实体列表 + + + 请求条件包括:筛选条件列表,排序条件,数据数量,页码 + + 请求条件 + 实体DTO列表 + + + + 获取实体总数 + + 实体总数 + + + + 获取全部实体列表 + + 实体DTO列表 + + + + 删除实体 + + ID + + + + + 按IDs删除实体列表 + + IDs + 是否执行成功 + + + + 版本列表查询 + + + + 区域相关应用服务 diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_Platform.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_Platform.cs new file mode 100644 index 00000000..3002ffa2 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_Platform.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared.DomainBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_Platform : FullAuditedAggregateRootBase, ISettleAccountEntityBase + { + public BT_Car_Platform() + { } + + public void SetValue(Guid guid, Guid branchId, string year, string peroid, string version) + { + Period = peroid; + Year = year; + Id = guid; + Version = version; + BranchId = branchId; + } + public BT_Car_Platform(Guid Id, string materialVoucherNo, string externalKanbanNumber, + string kanbanNumber, string year, string factory, DateTime acceptanceDate, + string period, string version, string kanBan, string supplier, string storageLocation, string storageLocationDesc, + string materialCode) : base(Id) + { + MaterialVoucherNo = materialVoucherNo; + KanbanNumber = kanbanNumber; + ExternalKanbanNumber = externalKanbanNumber; + Year = year; + Factory = factory; + AcceptanceDate = acceptanceDate; + Period = period; + Version = version; + MaterialCode = materialCode; + BTCarKanBan = kanBan; + Supplier = supplier; + StorageLocation = storageLocation; + StorageLocationDesc = storageLocationDesc; + } + + //验收单号 外部单号 物料凭证号 物料凭证日期 物料凭证记账日期 看板编号 外部看板编号 物料号 物料描述 数量 单价 金额 + //工厂 备注 创建者 创建时间 修改人 修改时间 公司 验收单号 外部单号 发票号 会计年度 金额 计划员 存储地点 + //存储地点描述 状态 验收单日期 供应商 录入人 录入人描述 看板号 + + + + /// + ///工厂 + /// + [Display(Name = "工厂")] + public string Factory { get; set; } + /// + ///外部看板编号 + /// + [Display(Name = "外部看板编号")] + public string ExternalKanbanNumber { get; set; } + /// + ///看板编号 + /// + [Display(Name = "看板编号")] + public string KanbanNumber { get; set; } + /// + ///物料凭证号 + /// + [Display(Name = "物料凭证号")] + public string MaterialVoucherNo { get; set; } + + /// + ///会计年度 + /// + [Display(Name = "会计年度")] + public string Year { get; set; } + /// + /// 期间 + /// + [Display(Name = "期间")] + public string Period { set; get; } + /// + /// 版本号 + /// + [Display(Name = "版本号")] + public string Version { set; get; } + /// + /// 看板号 + /// + [Display(Name = "看板号")] + public string BTCarKanBan { set; get; } + + + /// + /// 物料号 + /// + [Display(Name = "物料号")] + public string MaterialCode { get; set; } + + /// + /// 验收单日期 + /// + [Display(Name = "验收单日期")] + public DateTime AcceptanceDate { get; set; } + + /// + /// 供应商 + /// + [Display(Name = "供应商")] + public string Supplier { get; set; } + + /// + /// 存储地点 + /// + [Display(Name = "存储地点")] + public string StorageLocation { get; set; } + + /// + /// 存储地点描述 + /// + [Display(Name = "存储地点描述")] + public string StorageLocationDesc { get; set; } + + /// + /// 备注 + /// + [Display(Name = "备注")] + public string Extend { set; get; } + + + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_PlatformVersion.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_PlatformVersion.cs new file mode 100644 index 00000000..2b5a0fe6 --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BT_Car/BT_Car_PlatformVersion.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Win.Sfs.Shared.DomainBase; + +namespace Win.Sfs.SettleAccount.Entities.BT_Car +{ + public class BT_Car_PlatformVersion : FullAuditedAggregateRootBase, ISettleAccountEntityBase + { + + public BT_Car_PlatformVersion() + { } + + public string Year { get; private set; } + /// + /// 期间 + /// + public string Period { get; private set; } + /// + /// 版本号 + /// + public string Version { get; set; } + + /// + /// 客户号 + /// + public string CustomerCode { private set; get; } + + + public BT_Car_PlatformVersion( + Guid id, + Guid branchId, + string year, string period, string version, string customerCode) : base(id) + { + BranchId = branchId; + Year = year; + Period = period; + Version = version; + CustomerCode = customerCode; + + } + + + } +} diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs index f49fd088..0eb71186 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs @@ -69,6 +69,7 @@ using Win.Sfs.SettleAccount.Entities.WMS_KanBan; using Win.Sfs.SettleAccount.Entities.WMS_SparePart; using Win.Sfs.SettleAccount.Entities.HQ_H; using Win.Sfs.SettleAccount.Entities.HQ_M; +using Win.Sfs.SettleAccount.Entities.BT_Car; namespace Win.Sfs.SettleAccount { @@ -311,6 +312,9 @@ namespace Win.Sfs.SettleAccount builder.ConfigureHQM(options); builder.ConfigureHQMVersion(options); + //一汽轿车 + builder.ConfigureBTCar(options); + builder.ConfigureBTCarVersion(options); #endregion @@ -318,6 +322,53 @@ namespace Win.Sfs.SettleAccount #region PG-派格 + /// + /// 一汽轿车-导入 + /// + /// + /// + private static void ConfigureBTCar(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) + { + + builder.Entity(b => + { + + b.ToTable($"{options.TablePrefix}_BT_Car_Platform", options.Schema); + + b.ConfigureByConvention(); + b.Property(x => x.BTCarKanBan).IsRequired().HasMaxLength(150);//必填项 + b.Property(x => x.MaterialVoucherNo).HasMaxLength(150); + b.Property(x => x.Factory).HasMaxLength(50); + b.Property(x => x.MaterialCode).IsRequired().HasMaxLength(150); + b.Property(x => x.ExternalKanbanNumber).HasMaxLength(50); + b.Property(x => x.KanbanNumber).HasMaxLength(150); + b.Property(x => x.Period).HasMaxLength(50); + b.Property(x => x.Year).HasMaxLength(50); + b.Property(x => x.Version).HasMaxLength(50); + b.Property(x => x.Supplier).HasMaxLength(50); + b.Property(x => x.StorageLocation).HasMaxLength(50); + b.Property(x => x.StorageLocationDesc).HasMaxLength(150); + //创建组合索引 + b.HasIndex(x => new { x.Version, x.KanbanNumber, x.MaterialCode }).IsUnique().HasFilter(IsDeletedFilter); + + }); + } + + private static void ConfigureBTCarVersion(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) + { + + builder.Entity(b => + { + b.ToTable($"{options.TablePrefix}_BT_Car_PlatformVersion", options.Schema); + b.ConfigureByConvention(); + b.Property(x => x.Year).IsRequired().HasMaxLength(CommonConsts.MaxCodeLength); + b.Property(x => x.Period).IsRequired().HasMaxLength(CommonConsts.MaxCodeLength); + b.Property(x => x.Version).IsRequired().HasMaxLength(CommonConsts.MaxCodeLength); + b.Property(x => x.CustomerCode).HasMaxLength(CommonConsts.MaxCodeLength); + b.HasIndex(x => new { x.Version }).IsUnique().HasFilter(IsDeletedFilter); + }); + + } /// /// 红旗工厂M平台验收结算明细-导入 @@ -354,7 +405,7 @@ namespace Win.Sfs.SettleAccount private static void ConfigureHQMVersion(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) { - builder.Entity(b => + builder.Entity(b => { b.ToTable($"{options.TablePrefix}_HQ_M_PlatformVersion", options.Schema); b.ConfigureByConvention(); @@ -402,7 +453,7 @@ namespace Win.Sfs.SettleAccount private static void ConfigureHQHVersion(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options) { - builder.Entity(b => + builder.Entity(b => { b.ToTable($"{options.TablePrefix}_HQ_H_PlatformVersion", options.Schema); b.ConfigureByConvention();