30 changed files with 1719 additions and 1 deletions
-
19src/Shentun.Peis.Application.Contracts/GetReportInFilterDto.cs
-
43src/Shentun.Peis.Application.Contracts/ReportFormatTemplates/CreateReportFormatTemplateDto.cs
-
59src/Shentun.Peis.Application.Contracts/ReportFormatTemplates/ReportFormatTemplateDto.cs
-
24src/Shentun.Peis.Application.Contracts/ReportFormatTemplates/UpdateReportFormatTemplateDto.cs
-
26src/Shentun.Peis.Application.Contracts/ReportFormats/CreateReportFormatDto.cs
-
37src/Shentun.Peis.Application.Contracts/ReportFormats/ReportFormatDto.cs
-
24src/Shentun.Peis.Application.Contracts/ReportFormats/UpdateReportFormatDto.cs
-
26src/Shentun.Peis.Application.Contracts/ReportPrinters/CreateReportPrinterDto.cs
-
35src/Shentun.Peis.Application.Contracts/ReportPrinters/ReportPrinterDto.cs
-
23src/Shentun.Peis.Application.Contracts/ReportPrinters/UpdateReportPrinterDto.cs
-
15src/Shentun.Peis.Application.Contracts/Reports/CreateReportDto.cs
-
11src/Shentun.Peis.Application.Contracts/Reports/PrintParameterDto.cs
-
35src/Shentun.Peis.Application.Contracts/Reports/ReportDto.cs
-
13src/Shentun.Peis.Application.Contracts/Reports/ReportFileDto.cs
-
13src/Shentun.Peis.Application.Contracts/Reports/ReportParameterDto.cs
-
13src/Shentun.Peis.Application.Contracts/Reports/UpdateReportDto.cs
-
2src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
-
197src/Shentun.Peis.Application/ReportFormatTemplates/ReportFormatTemplateAppService.cs
-
182src/Shentun.Peis.Application/ReportFormats/ReportFormatAppService.cs
-
162src/Shentun.Peis.Application/ReportPrinters/ReportPrinterAppService.cs
-
208src/Shentun.Peis.Application/Reports/ReportAppService.cs
-
37src/Shentun.Peis.Domain/EntityHelper.cs
-
44src/Shentun.Peis.Domain/Models/Report.cs
-
52src/Shentun.Peis.Domain/Models/ReportFormat.cs
-
69src/Shentun.Peis.Domain/Models/ReportFormatTemplate.cs
-
43src/Shentun.Peis.Domain/Models/ReportPrinter.cs
-
104src/Shentun.Peis.Domain/ReportFormatTemplates/ReportFormatTemplateManager.cs
-
82src/Shentun.Peis.Domain/ReportFormats/ReportFormatManager.cs
-
67src/Shentun.Peis.Domain/ReportPrinters/ReportPrinterManager.cs
-
55src/Shentun.Peis.Domain/Reports/ReportManager.cs
@ -0,0 +1,19 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.Text; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace Shentun.Peis |
|||
{ |
|||
public class GetReportInFilterDto : PagedAndSortedResultRequestDto |
|||
{ |
|||
[Required] |
|||
public string ReportId { get; set; } |
|||
|
|||
[Required] |
|||
public string DataSetJson { get; set; } |
|||
|
|||
public string ParameterJson { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportFormatTemplates |
|||
{ |
|||
public class CreateReportFormatTemplateDto |
|||
{ |
|||
public string Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表格式ID
|
|||
/// </summary>
|
|||
public string ReportFormatId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 格式名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 模板文件类型 0:fastereport 1:Grid++Report
|
|||
/// </summary>
|
|||
public char TemplateFileType { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 模板文件
|
|||
/// </summary>
|
|||
public string TemplateFile { get; set; } |
|||
|
|||
public string DataSetJson { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否系统自定义(Y:是,N:否)
|
|||
/// </summary>
|
|||
public char IsSystem { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否默认(Y:是,N:否)
|
|||
/// </summary>
|
|||
public char IsDefault { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,59 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace Shentun.Peis.ReportFormatTemplates |
|||
{ |
|||
public class ReportFormatTemplateDto : AuditedEntityDto<string> |
|||
{ |
|||
/// <summary>
|
|||
/// 报表格式ID
|
|||
/// </summary>
|
|||
public string ReportFormatId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 格式名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 模板文件类型 0:fastereport 1:Grid++Report
|
|||
/// </summary>
|
|||
public char TemplateFileType { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 模板文件
|
|||
/// </summary>
|
|||
public string TemplateFile { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 数据集Json
|
|||
/// </summary>
|
|||
public string DataSetJson { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否系统自定义(Y:是,N:否)
|
|||
/// </summary>
|
|||
public char IsSystem { get; set; } |
|||
|
|||
public bool IsSystemed { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 是否默认(Y:是,N:否)
|
|||
/// </summary>
|
|||
public char IsDefault { get; set; } |
|||
|
|||
public bool IsDefaulted { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建者
|
|||
/// </summary>
|
|||
public string CreatorName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最后修改者
|
|||
/// </summary>
|
|||
public string LastModifierName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportFormatTemplates |
|||
{ |
|||
public class UpdateReportFormatTemplateDto |
|||
{ |
|||
|
|||
public string ReportFormatId { get; set; } |
|||
|
|||
public string DisplayName { get; set; } |
|||
|
|||
public char TemplateFileType { get; set; } |
|||
|
|||
public string TemplateFile { get; set; } |
|||
|
|||
public string DataSetJson { get; set; } |
|||
|
|||
public char IsSystem { get; set; } |
|||
|
|||
public char IsDefault { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportFormats |
|||
{ |
|||
public class CreateReportFormatDto |
|||
{ |
|||
public string Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public char IsDefault { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace Shentun.Peis.ReportFormats |
|||
{ |
|||
public class ReportFormatDto : AuditedEntityDto<string> |
|||
{ |
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public char IsDefault { get; set; } |
|||
|
|||
public bool IsDefaulted { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建者
|
|||
/// </summary>
|
|||
public string CreatorName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最后修改者
|
|||
/// </summary>
|
|||
public string LastModifierName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportFormats |
|||
{ |
|||
public class UpdateReportFormatDto |
|||
{ |
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public char IsDefault { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportPrinters |
|||
{ |
|||
public class CreateReportPrinterDto |
|||
{ |
|||
public string Id { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 计算机名称
|
|||
/// </summary>
|
|||
public string ComputerName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 打印机名称
|
|||
/// </summary>
|
|||
public string PrinterName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace Shentun.Peis.ReportPrinters |
|||
{ |
|||
public class ReportPrinterDto:AuditedEntityDto<string> |
|||
{ |
|||
/// <summary>
|
|||
/// 计算机名称
|
|||
/// </summary>
|
|||
public string ComputerName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 打印机名称
|
|||
/// </summary>
|
|||
public string PrinterName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建者
|
|||
/// </summary>
|
|||
public string CreatorName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最后修改者
|
|||
/// </summary>
|
|||
public string LastModifierName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.ReportPrinters |
|||
{ |
|||
public class UpdateReportPrinterDto |
|||
{ |
|||
/// <summary>
|
|||
/// 报表ID
|
|||
/// </summary>
|
|||
public string ReportId { get; set; } |
|||
/// <summary>
|
|||
/// 计算机名称
|
|||
/// </summary>
|
|||
public string ComputerName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 打印机名称
|
|||
/// </summary>
|
|||
public string PrinterName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class CreateReportDto |
|||
{ |
|||
public string Id { get; set; } |
|||
|
|||
public string DisplayName { get; set; } |
|||
|
|||
public char IsActive { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class PrintParameterDto |
|||
{ |
|||
public List<ReportParameterDto> Parameters { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,35 @@ |
|||
using JetBrains.Annotations; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.Text; |
|||
using Volo.Abp.Application.Dtos; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class ReportDto:AuditedEntityDto<string> |
|||
{ |
|||
/// <summary>
|
|||
/// 报表名称
|
|||
/// </summary>
|
|||
public string DisplayName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 启用
|
|||
/// </summary>
|
|||
public char IsActive { get; set; } |
|||
|
|||
|
|||
public bool IsActived { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 创建者
|
|||
/// </summary>
|
|||
public string CreatorName { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// 最后修改者
|
|||
/// </summary>
|
|||
public string LastModifierName { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.IO; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class ReportFileDto |
|||
{ |
|||
public string FilePath { get; set; } |
|||
public byte[] Bytes { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class ReportParameterDto |
|||
{ |
|||
public string Name { get; set; } |
|||
|
|||
public string Value { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class UpdateReportDto |
|||
{ |
|||
public string DisplayName { get; set; } |
|||
|
|||
public char IsActive { get; set; } |
|||
} |
|||
} |
|||
@ -0,0 +1,197 @@ |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Shentun.Peis.Models; |
|||
using Shentun.Peis.ReportFormats; |
|||
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 Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.ObjectMapping; |
|||
using static Org.BouncyCastle.Bcpg.Attr.ImageAttrib; |
|||
|
|||
namespace Shentun.Peis.ReportFormatTemplates |
|||
{ |
|||
public class ReportFormatTemplateAppService : CrudAppService< |
|||
ReportFormatTemplate, //The Book entity
|
|||
ReportFormatTemplateDto, //Used to show books
|
|||
string, //Primary key of the book entity
|
|||
PagedAndSortedResultRequestDto, //Used for paging/sorting
|
|||
CreateReportFormatTemplateDto, |
|||
UpdateReportFormatTemplateDto> |
|||
{ |
|||
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|||
private readonly ReportFormatTemplateManager _manager; |
|||
public ReportFormatTemplateAppService( |
|||
IRepository<ReportFormatTemplate, string> repository, |
|||
IRepository<IdentityUser, Guid> userRepository, |
|||
ReportFormatTemplateManager manager) |
|||
: base(repository) |
|||
{ |
|||
_userRepository = userRepository; |
|||
_manager = manager; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取通过主键
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatTemplateDto> GetAsync(string id) |
|||
{ |
|||
var entity= await base.GetAsync(id); |
|||
entity.IsDefaulted = entity.IsDefault.Equals('Y'); |
|||
entity.IsSystemed = entity.IsSystem.Equals('Y'); |
|||
entity.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
entity.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return entity; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplateDto> GetMaxByIdAsync() |
|||
{ |
|||
var ent = (await Repository.GetListAsync()).Max(x => x.Id); |
|||
var entdto = new ReportFormatTemplateDto |
|||
{ |
|||
Id = !string.IsNullOrEmpty(ent)?ent:"0001" |
|||
}; |
|||
return entdto; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplateDto> GetDefaultAsync(string formatId) |
|||
{ |
|||
var ent = await _manager.GetDefaultAsync(formatId); |
|||
|
|||
if (ent != null) |
|||
{ |
|||
var entdto = new ReportFormatTemplateDto |
|||
{ |
|||
CreationTime = ent.CreationTime, |
|||
CreatorId = ent.CreatorId, |
|||
DisplayName = ent.DisplayName, |
|||
Id = ent.Id, |
|||
ReportFormatId = ent.ReportFormatId, |
|||
LastModificationTime = ent.LastModificationTime, |
|||
LastModifierId = ent.LastModifierId, |
|||
IsDefault = ent.IsDefault, |
|||
IsSystem = ent.IsSystem, |
|||
IsDefaulted = ent.IsDefault.Equals('Y'), |
|||
IsSystemed = ent.IsSystem.Equals('Y'), |
|||
TemplateFile=ent.TemplateFile, |
|||
DataSetJson = ent.DataSetJson, |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, ent.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, ent.LastModifierId) |
|||
}; |
|||
|
|||
return entdto; |
|||
} |
|||
else |
|||
{ |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<PagedResultDto<ReportFormatTemplateDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return await base.GetListAsync(input); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目 可以带格式ID搜索
|
|||
/// </summary>
|
|||
/// <param name="reportFormatId"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<PagedResultDto<ReportFormatTemplateDto>> GetListInReportFormatAsync(string reportFormatId) |
|||
{ |
|||
int totalCount = 0; |
|||
var entlist = (await Repository.GetListAsync()).Where(m => m.ReportFormatId == reportFormatId); |
|||
|
|||
totalCount = entlist.Count(); |
|||
|
|||
var entdto = entlist.Select(s => new ReportFormatTemplateDto |
|||
{ |
|||
CreationTime = s.CreationTime, |
|||
CreatorId = s.CreatorId, |
|||
DisplayName = s.DisplayName, |
|||
Id = s.Id, |
|||
ReportFormatId = s.ReportFormatId, |
|||
LastModificationTime = s.LastModificationTime, |
|||
LastModifierId = s.LastModifierId, |
|||
IsDefault = s.IsDefault, |
|||
IsSystem=s.IsSystem, |
|||
IsDefaulted=s.IsDefault.Equals('Y'), |
|||
IsSystemed=s.IsSystem.Equals('Y'), |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, s.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, s.LastModifierId) |
|||
}).ToList(); |
|||
|
|||
return new PagedResultDto<ReportFormatTemplateDto>(totalCount, entdto); |
|||
|
|||
|
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 创建
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatTemplateDto> CreateAsync(CreateReportFormatTemplateDto input) |
|||
{ |
|||
var createEntity = ObjectMapper.Map<CreateReportFormatTemplateDto, ReportFormatTemplate>(input); |
|||
var entity = await _manager.CreateAsync(createEntity); |
|||
entity = await Repository.InsertAsync(entity); |
|||
var dto = ObjectMapper.Map<ReportFormatTemplate, ReportFormatTemplateDto>(entity); |
|||
return dto; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplateDto> CopyCreateAsync(string id,string newId) |
|||
{ |
|||
var entity = await _manager.CopyCreateAsync(id,newId); |
|||
entity = await Repository.InsertAsync(entity); |
|||
var dto = ObjectMapper.Map<ReportFormatTemplate, ReportFormatTemplateDto>(entity); |
|||
return dto; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatTemplateDto> UpdateAsync(string id, UpdateReportFormatTemplateDto input) |
|||
{ |
|||
var entity = await Repository.GetAsync(id); |
|||
var sourceEntity = ObjectMapper.Map<UpdateReportFormatTemplateDto, ReportFormatTemplate>(input); |
|||
await _manager.UpdateAsync(sourceEntity, entity); |
|||
entity = await Repository.UpdateAsync(entity); |
|||
var dto= ObjectMapper.Map<ReportFormatTemplate, ReportFormatTemplateDto>(entity); |
|||
dto.IsDefaulted = entity.IsDefault.Equals('Y'); |
|||
dto.IsSystemed= entity.IsSystem.Equals('Y'); |
|||
dto.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
dto.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return dto; |
|||
} |
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override Task DeleteAsync(string id) |
|||
{ |
|||
return base.DeleteAsync(id); |
|||
} |
|||
|
|||
[HttpPut("api/app/reportfomattemplate/updatedefault")] |
|||
public async Task UpdateDefaultAsync(string id) |
|||
{ |
|||
await _manager.UpdateDefaultAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,182 @@ |
|||
using Microsoft.AspNetCore.Mvc; |
|||
using Shentun.Peis.Models; |
|||
using Shentun.Peis.ReportPrinters; |
|||
using Shentun.Peis.Reports; |
|||
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 Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.ObjectMapping; |
|||
|
|||
namespace Shentun.Peis.ReportFormats |
|||
{ |
|||
public class ReportFormatAppService : CrudAppService< |
|||
ReportFormat, //The Book entity
|
|||
ReportFormatDto, //Used to show books
|
|||
string, //Primary key of the book entity
|
|||
PagedAndSortedResultRequestDto, //Used for paging/sorting
|
|||
CreateReportFormatDto, |
|||
UpdateReportFormatDto> |
|||
{ |
|||
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|||
private readonly ReportFormatManager _manager; |
|||
public ReportFormatAppService( |
|||
IRepository<ReportFormat, string> repository, |
|||
IRepository<IdentityUser, Guid> userRepository, |
|||
ReportFormatManager manager) |
|||
: base(repository) |
|||
{ |
|||
_userRepository = userRepository; |
|||
_manager = manager; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取通过主键
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatDto> GetAsync(string id) |
|||
{ |
|||
var entity = await base.GetAsync(id); |
|||
entity.IsDefaulted = entity.IsDefault.Equals('Y'); |
|||
entity.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
entity.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return entity; |
|||
} |
|||
|
|||
public async Task<ReportFormatDto> GetMaxByIdAsync() |
|||
{ |
|||
var ent = (await Repository.GetListAsync()).Max(x => x.Id); |
|||
var entdto = new ReportFormatDto |
|||
{ |
|||
Id = !string.IsNullOrEmpty(ent) ? ent : "0001" |
|||
}; |
|||
return entdto; |
|||
} |
|||
|
|||
public async Task<ReportFormatDto> GetDefaultAsync(string reportId) |
|||
{ |
|||
var ent = await _manager.GetDefaultAsync(reportId); |
|||
|
|||
if (ent!=null) |
|||
{ |
|||
var entdto = new ReportFormatDto |
|||
{ |
|||
CreationTime = ent.CreationTime, |
|||
CreatorId = ent.CreatorId, |
|||
DisplayName = ent.DisplayName, |
|||
Id = ent.Id, |
|||
ReportId = ent.ReportId, |
|||
LastModificationTime = ent.LastModificationTime, |
|||
LastModifierId = ent.LastModifierId, |
|||
IsDefault = ent.IsDefault, |
|||
IsDefaulted = ent.IsDefault.Equals('Y'), |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, ent.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, ent.LastModifierId) |
|||
}; |
|||
|
|||
return entdto; |
|||
} |
|||
else |
|||
{ |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<PagedResultDto<ReportFormatDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return await base.GetListAsync(input); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目 可以带报表ID搜索
|
|||
/// </summary>
|
|||
/// <param name="reportId"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<PagedResultDto<ReportFormatDto>> GetListInReportAsync(string reportId) |
|||
{ |
|||
int totalCount = 0; |
|||
|
|||
var entlist = (await Repository.GetListAsync()).Where(m => m.ReportId == reportId); |
|||
|
|||
totalCount = entlist.Count(); |
|||
|
|||
var entdto = entlist.Select(s => new ReportFormatDto |
|||
{ |
|||
CreationTime = s.CreationTime, |
|||
CreatorId = s.CreatorId, |
|||
DisplayName = s.DisplayName, |
|||
Id = s.Id, |
|||
ReportId=s.ReportId, |
|||
LastModificationTime = s.LastModificationTime, |
|||
LastModifierId = s.LastModifierId, |
|||
IsDefault = s.IsDefault, |
|||
IsDefaulted=s.IsDefault.Equals('Y'), |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, s.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, s.LastModifierId) |
|||
}).ToList(); |
|||
|
|||
return new PagedResultDto<ReportFormatDto>(totalCount, entdto); |
|||
|
|||
|
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 创建
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatDto> CreateAsync(CreateReportFormatDto input) |
|||
{ |
|||
var createEntity = ObjectMapper.Map<CreateReportFormatDto, ReportFormat>(input); |
|||
var entity = await _manager.CreateAsync(createEntity); |
|||
entity = await Repository.InsertAsync(entity); |
|||
var dto = ObjectMapper.Map<ReportFormat, ReportFormatDto>(entity); |
|||
return dto; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportFormatDto> UpdateAsync(string id, UpdateReportFormatDto input) |
|||
{ |
|||
var entity = await Repository.GetAsync(id); |
|||
var sourceEntity = ObjectMapper.Map<UpdateReportFormatDto, ReportFormat>(input); |
|||
await _manager.UpdateAsync(sourceEntity, entity); |
|||
entity = await Repository.UpdateAsync(entity); |
|||
var dto= ObjectMapper.Map<ReportFormat, ReportFormatDto>(entity); |
|||
dto.IsDefaulted= entity.IsDefault.Equals('Y'); |
|||
dto.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
dto.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return dto; |
|||
} |
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override Task DeleteAsync(string id) |
|||
{ |
|||
return base.DeleteAsync(id); |
|||
} |
|||
|
|||
[HttpPut("api/app/reportfomat/updatedefault")] |
|||
public async Task UpdateDefaultAsync(string id) |
|||
{ |
|||
await _manager.UpdateDefaultAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,162 @@ |
|||
using Shentun.Peis.Models; |
|||
using Shentun.Peis.ReportFormats; |
|||
using Shentun.Peis.ReportFormatTemplates; |
|||
using Shentun.Peis.Reports; |
|||
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 Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Identity; |
|||
using Volo.Abp.ObjectMapping; |
|||
|
|||
namespace Shentun.Peis.ReportPrinters |
|||
{ |
|||
public class ReportPrinterAppService : CrudAppService< |
|||
ReportPrinter, //The Book entity
|
|||
ReportPrinterDto, //Used to show books
|
|||
string, //Primary key of the book entity
|
|||
PagedAndSortedResultRequestDto, //Used for paging/sorting
|
|||
CreateReportPrinterDto, |
|||
UpdateReportPrinterDto> |
|||
{ |
|||
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|||
private readonly ReportPrinterManager _manager; |
|||
public ReportPrinterAppService( |
|||
IRepository<ReportPrinter, string> repository, |
|||
IRepository<IdentityUser, Guid> userRepository, |
|||
ReportPrinterManager manager) |
|||
: base(repository) |
|||
{ |
|||
_userRepository = userRepository; |
|||
_manager = manager; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取通过主键
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportPrinterDto> GetAsync(string id) |
|||
{ |
|||
return await base.GetAsync(id); |
|||
} |
|||
|
|||
public async Task<ReportPrinterDto> GetMaxByIdAsync() |
|||
{ |
|||
var ent = (await Repository.GetListAsync()).Max(x => x.Id); |
|||
var entdto = new ReportPrinterDto |
|||
{ |
|||
Id = !string.IsNullOrEmpty(ent) ? ent : "0001" |
|||
}; |
|||
return entdto; |
|||
} |
|||
|
|||
public async Task<ReportPrinterDto> GetLocalPrinter(string reportId,string computerName) |
|||
{ |
|||
var ent = (await Repository.GetListAsync()).Where(m => m.ReportId == reportId && m.ComputerName.Equals(computerName)).FirstOrDefault(); |
|||
if (ent != null) |
|||
{ |
|||
var dto = new ReportPrinterDto |
|||
{ |
|||
CreationTime = ent.CreationTime, |
|||
CreatorId = ent.CreatorId, |
|||
ComputerName = ent.ComputerName, |
|||
Id = ent.Id, |
|||
ReportId = ent.ReportId, |
|||
LastModificationTime = ent.LastModificationTime, |
|||
LastModifierId = ent.LastModifierId, |
|||
PrinterName = ent.PrinterName, |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, ent.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, ent.LastModifierId) |
|||
}; |
|||
return dto; |
|||
} |
|||
else |
|||
{ |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<PagedResultDto<ReportPrinterDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return await base.GetListAsync(input); |
|||
} |
|||
|
|||
public async Task<PagedResultDto<ReportPrinterDto>> GetListInReportAsync(string reportId) |
|||
{ |
|||
int totalCount = 0; |
|||
|
|||
var entlist = (await Repository.GetListAsync()).Where(m => m.ReportId == reportId); |
|||
|
|||
totalCount = entlist.Count(); |
|||
|
|||
var entdto = entlist.Select(s => new ReportPrinterDto |
|||
{ |
|||
CreationTime = s.CreationTime, |
|||
CreatorId = s.CreatorId, |
|||
ComputerName = s.ComputerName, |
|||
Id = s.Id, |
|||
ReportId = s.ReportId, |
|||
LastModificationTime = s.LastModificationTime, |
|||
LastModifierId = s.LastModifierId, |
|||
PrinterName = s.PrinterName, |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, s.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, s.LastModifierId) |
|||
}).ToList(); |
|||
|
|||
return new PagedResultDto<ReportPrinterDto>(totalCount, entdto); |
|||
|
|||
|
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 创建
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportPrinterDto> CreateAsync(CreateReportPrinterDto input) |
|||
{ |
|||
var createEntity = ObjectMapper.Map<CreateReportPrinterDto, ReportPrinter>(input); |
|||
var entity = await _manager.CreateAsync(createEntity); |
|||
entity = await Repository.InsertAsync(entity); |
|||
var dto = ObjectMapper.Map<ReportPrinter, ReportPrinterDto>(entity); |
|||
return dto; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportPrinterDto> UpdateAsync(string id, UpdateReportPrinterDto input) |
|||
{ |
|||
var entity = await Repository.GetAsync(id); |
|||
var sourceEntity = ObjectMapper.Map< UpdateReportPrinterDto, ReportPrinter>(input); |
|||
await _manager.UpdateAsync(sourceEntity, entity); |
|||
entity = await Repository.UpdateAsync(entity); |
|||
var dto= ObjectMapper.Map<ReportPrinter, ReportPrinterDto>(entity); |
|||
dto.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
dto.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return dto; |
|||
} |
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override Task DeleteAsync(string id) |
|||
{ |
|||
return base.DeleteAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,208 @@ |
|||
using Shentun.Peis.Items; |
|||
using Shentun.Peis.Models; |
|||
using Shentun.Peis.ReportFormatTemplates; |
|||
using Shentun.Peis.SampleTypes; |
|||
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 Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Identity; |
|||
//using FastReport.Web;
|
|||
using Newtonsoft.Json; |
|||
using System.Data; |
|||
using TencentCloud.Mrs.V20200910.Models; |
|||
//using FastReport.Export;
|
|||
//using FastReport.Export.PdfSimple;
|
|||
using System.IO; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class ReportAppService : CrudAppService< |
|||
Report, //The Book entity
|
|||
ReportDto, //Used to show books
|
|||
string, //Primary key of the book entity
|
|||
PagedAndSortedResultRequestDto, //Used for paging/sorting
|
|||
CreateReportDto, |
|||
UpdateReportDto> |
|||
{ |
|||
private readonly IRepository<IdentityUser, Guid> _userRepository; |
|||
private readonly IRepository<ReportFormat, string> _reportFormatRepository; |
|||
private readonly IRepository<ReportFormatTemplate,string> _reportFormatTemplateRepository; |
|||
private readonly ReportManager _manager; |
|||
public ReportAppService( |
|||
IRepository<Report,string> repository, |
|||
IRepository<IdentityUser, Guid> userRepository, |
|||
ReportManager manager, |
|||
IRepository<ReportFormat, string> reportFormatRepository, |
|||
IRepository<ReportFormatTemplate, string> reportFormatTemplateRepository) |
|||
: base(repository) |
|||
{ |
|||
_userRepository = userRepository; |
|||
_manager = manager; |
|||
_reportFormatRepository = reportFormatRepository; |
|||
_reportFormatTemplateRepository = reportFormatTemplateRepository; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取通过主键
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportDto> GetAsync(string id) |
|||
{ |
|||
//return await base.GetAsync(id);
|
|||
var entity= await base.GetAsync(id); |
|||
entity.IsActived = entity.IsActive.Equals('Y'); |
|||
entity.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
|
|||
entity.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return entity; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 获取列表 项目
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<PagedResultDto<ReportDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return await base.GetListAsync(input); |
|||
} |
|||
|
|||
public async Task<ReportDto> GetMaxByIdAsync() |
|||
{ |
|||
var ent = (await Repository.GetListAsync()).Max(x => x.Id); |
|||
var entdto = new ReportDto |
|||
{ |
|||
Id = !string.IsNullOrEmpty(ent) ? ent : "0001" |
|||
}; |
|||
return entdto; |
|||
} |
|||
/* |
|||
public async Task<ReportFileDto> GetPrintReport(GetReportInFilterDto input) |
|||
{ |
|||
var entity = await base.GetAsync(input.ReportId); |
|||
if (entity == null) return null; |
|||
if (!entity.IsActive.Equals('Y')) |
|||
throw new Volo.Abp.UserFriendlyException($"报表:'{entity.DisplayName}'未启用,请启用后再操作"); |
|||
|
|||
var dtoformat = await _reportFormatRepository.GetAsync(p => p.ReportId.Equals(entity.Id) && p.IsDefault.Equals('Y')); |
|||
if (dtoformat == null) |
|||
throw new Volo.Abp.UserFriendlyException($"报表:'{entity.DisplayName}'的格式中未找到默认格式,请设置默认后再操作"); |
|||
|
|||
var dtotmp = await _reportFormatTemplateRepository.GetAsync(p => p.ReportFormatId.Equals(dtoformat.Id) && p.IsDefault.Equals('Y')); |
|||
if (dtotmp == null) |
|||
throw new Volo.Abp.UserFriendlyException($"报表:'{entity.DisplayName}'的模板中未找到默认模板,请设置默认后再操作"); |
|||
|
|||
if (string.IsNullOrEmpty(dtotmp.TemplateFile)) |
|||
throw new Volo.Abp.UserFriendlyException($"模板:'{dtotmp.DisplayName}'的报表模板未设置,请设置后再操作"); |
|||
|
|||
if (string.IsNullOrEmpty(dtotmp.DataSetJson)) |
|||
throw new Volo.Abp.UserFriendlyException($"模板:'{dtotmp.DisplayName}'的数据集未设置,请设置后再操作"); |
|||
|
|||
FastReport.Report report = new FastReport.Report(); |
|||
report.LoadFromString(dtotmp.TemplateFile); |
|||
|
|||
DataSet ds = JsonConvert.DeserializeObject<DataSet>(input.DataSetJson); |
|||
report.RegisterData(ds); |
|||
|
|||
PrintParameterDto para = JsonConvert.DeserializeObject<PrintParameterDto>(input.ParameterJson); |
|||
Dictionary<string, string> dict = new Dictionary<string, string>(); |
|||
foreach (var item in para.Parameters) |
|||
{ |
|||
report.SetParameterValue(item.Name, item.Value); |
|||
} |
|||
|
|||
report.Prepare(); |
|||
|
|||
MemoryStream ms = new MemoryStream(); |
|||
PDFSimpleExport pdfExport = new PDFSimpleExport(); |
|||
pdfExport.Export(report, ms); |
|||
ms.Flush(); |
|||
|
|||
return null; |
|||
} |
|||
*/ |
|||
/// <summary>
|
|||
/// 获取列表 项目 可以带名称搜索
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public async Task<PagedResultDto<ReportDto>> GetListInFilterNotOrderAsync(GetListInFilterDto input) |
|||
{ |
|||
int totalCount = 0; |
|||
|
|||
if (!string.IsNullOrEmpty(input.Filter)) |
|||
totalCount = (await Repository.GetListAsync()).Where(m => m.DisplayName.Contains(input.Filter)).Count(); |
|||
else |
|||
totalCount = await Repository.CountAsync(); |
|||
|
|||
|
|||
var entlist = await PageHelper.GetPageListInFitlerNotOrder(Repository, _userRepository, input); |
|||
|
|||
var entdto = entlist.Select(s => new ReportDto |
|||
{ |
|||
CreationTime = s.CreationTime, |
|||
CreatorId = s.CreatorId, |
|||
DisplayName = s.DisplayName, |
|||
Id = s.Id, |
|||
LastModificationTime = s.LastModificationTime, |
|||
LastModifierId = s.LastModifierId, |
|||
IsActive = s.IsActive, |
|||
IsActived=s.IsActive.Equals('Y'), |
|||
CreatorName = EntityHelper.GetUserName(_userRepository, s.CreatorId), |
|||
LastModifierName = EntityHelper.GetUserName(_userRepository, s.LastModifierId) |
|||
}).ToList(); |
|||
|
|||
return new PagedResultDto<ReportDto>(totalCount, entdto); |
|||
|
|||
|
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 创建
|
|||
/// </summary>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportDto> CreateAsync(CreateReportDto input) |
|||
{ |
|||
var createEntity = ObjectMapper.Map<CreateReportDto, Report>(input); |
|||
var entity = await _manager.CreateAsync(createEntity); |
|||
entity = await Repository.InsertAsync(entity); |
|||
var dto = ObjectMapper.Map<Report, ReportDto>(entity); |
|||
return dto; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// 更新
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <param name="input"></param>
|
|||
/// <returns></returns>
|
|||
public override async Task<ReportDto> UpdateAsync(string id, UpdateReportDto input) |
|||
{ |
|||
var entity = await Repository.GetAsync(id); |
|||
var sourceEntity = ObjectMapper.Map<UpdateReportDto, Report>(input); |
|||
await _manager.UpdateAsync(sourceEntity, entity); |
|||
entity = await Repository.UpdateAsync(entity); |
|||
var dto = ObjectMapper.Map<Report, ReportDto>(entity); |
|||
dto.IsActived = entity.IsActive.Equals('Y'); |
|||
dto.CreatorName = EntityHelper.GetUserName(_userRepository, entity.CreatorId); |
|||
dto.LastModifierName = EntityHelper.GetUserName(_userRepository, entity.LastModifierId); |
|||
return dto; |
|||
} |
|||
/// <summary>
|
|||
/// 删除
|
|||
/// </summary>
|
|||
/// <param name="id"></param>
|
|||
/// <returns></returns>
|
|||
public override Task DeleteAsync(string id) |
|||
{ |
|||
return base.DeleteAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using NPOI.SS.Formula.Functions; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.ComponentModel.DataAnnotations.Schema; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Domain.Entities.Auditing; |
|||
|
|||
namespace Shentun.Peis.Models |
|||
{ |
|||
[Table("report")] |
|||
public class Report:AuditedEntity<string>, IDisplayName |
|||
{ |
|||
public Report() { |
|||
|
|||
} |
|||
|
|||
[Column("Id")] |
|||
[Comment("主键Id")] |
|||
[StringLength(16)] |
|||
public override string Id { get => base.Id; protected set => base.Id = value; } |
|||
|
|||
[Column("display_name")] |
|||
[Comment("报表名称")] |
|||
[StringLength(64)] |
|||
public string DisplayName { get; set; } = null!; |
|||
|
|||
[Column("isActive")] |
|||
[Comment("启用标志(N:禁用,Y:启用)")] |
|||
[Required] |
|||
[MaxLength(1)] |
|||
[DefaultValue('N')] |
|||
public char IsActive { get; set; } |
|||
|
|||
public void SetId(string id) |
|||
{ |
|||
Id = id; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.ComponentModel.DataAnnotations.Schema; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Domain.Entities.Auditing; |
|||
|
|||
namespace Shentun.Peis.Models |
|||
{ |
|||
[Table("report_format")] |
|||
public class ReportFormat:AuditedEntity<string>, IDisplayName |
|||
{ |
|||
|
|||
public ReportFormat() { |
|||
|
|||
} |
|||
|
|||
[Column("Id")] |
|||
[Comment("主键Id")] |
|||
[StringLength(16)] |
|||
public override string Id { get => base.Id; protected set => base.Id = value; } |
|||
|
|||
[Column("display_name")] |
|||
[Comment("格式名称")] |
|||
[StringLength(64)] |
|||
public string DisplayName { get; set; } = null!; |
|||
|
|||
[Column("isDefault")] |
|||
[Comment("默认标志(N:不默认,Y:默认)")] |
|||
[Required] |
|||
[MaxLength(1)] |
|||
[DefaultValue('N')] |
|||
public char IsDefault { get; set; } |
|||
|
|||
[ForeignKey("ReportId")] |
|||
public Report Report { get; set; } |
|||
|
|||
[Column("report_id")] |
|||
[Comment("报表ID")] |
|||
public string ReportId { get; set; } |
|||
|
|||
|
|||
public void SetId(string id) |
|||
{ |
|||
Id = id; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,69 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.ComponentModel.DataAnnotations.Schema; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Domain.Entities.Auditing; |
|||
|
|||
namespace Shentun.Peis.Models |
|||
{ |
|||
[Table("report_format_template")] |
|||
public class ReportFormatTemplate:AuditedEntity<string>, IDisplayName |
|||
{ |
|||
|
|||
[Column("Id")] |
|||
[Comment("主键Id")] |
|||
[StringLength(16)] |
|||
public override string Id { get => base.Id; protected set => base.Id = value; } |
|||
|
|||
[ForeignKey("ReportFormatId")] |
|||
public ReportFormat ReportFormat { get; set; } |
|||
|
|||
[Column("report_format_id")] |
|||
[Comment("报表格式ID")] |
|||
public string ReportFormatId { get; set; } |
|||
|
|||
[Column("display_name")] |
|||
[Comment("模板名称")] |
|||
[MaxLength(128)] |
|||
public string DisplayName { get; set; } |
|||
|
|||
[Column("template_file_type")] |
|||
[Comment("模板文件类型(0:FastReport,1:Grid++Report)")] |
|||
[Required] |
|||
[MaxLength(1)] |
|||
[DefaultValue('0')] |
|||
public char TemplateFileType { get; set; } |
|||
|
|||
[Column("template_file")] |
|||
[Comment("模板文件")] |
|||
public string TemplateFile { get; set; } |
|||
|
|||
[Column("data_set_json")] |
|||
[Comment("模板文件")] |
|||
public string DataSetJson { get; set; } |
|||
|
|||
[Column("isSystem")] |
|||
[Comment("是否系统自定义(N:停用,Y:启用)")] |
|||
[Required] |
|||
[MaxLength(1)] |
|||
[DefaultValue('N')] |
|||
public char IsSystem { get; set; } |
|||
|
|||
[Column("isDefault")] |
|||
[Comment("是否默认(N:不默认,Y:默认)")] |
|||
[Required] |
|||
[MaxLength(1)] |
|||
[DefaultValue('N')] |
|||
public char IsDefault { get; set; } |
|||
|
|||
public void SetId(string id) |
|||
{ |
|||
Id = id; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel.DataAnnotations.Schema; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Domain.Entities.Auditing; |
|||
|
|||
namespace Shentun.Peis.Models |
|||
{ |
|||
[Table("report_printer")] |
|||
public class ReportPrinter:AuditedEntity<string> |
|||
{ |
|||
[Column("Id")] |
|||
[Comment("主键Id")] |
|||
[StringLength(16)] |
|||
public override string Id { get => base.Id; protected set => base.Id = value; } |
|||
|
|||
[Column("pc_name")] |
|||
[Comment("计算机名称")] |
|||
[StringLength(64)] |
|||
public string ComputerName { get; set; } = null!; |
|||
|
|||
[Column("printer_name")] |
|||
[Comment("打印机名称")] |
|||
[StringLength(64)] |
|||
public string PrinterName { get; set; } = null!; |
|||
|
|||
[ForeignKey("ReportId")] |
|||
public Report Report { get; set; } |
|||
|
|||
[Column("report_id")] |
|||
[Comment("报表ID")] |
|||
public string ReportId { get; set; } |
|||
|
|||
public void SetId(string id) |
|||
{ |
|||
Id= id; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,104 @@ |
|||
using Shentun.Peis.Models; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Domain.Services; |
|||
|
|||
namespace Shentun.Peis.ReportFormatTemplates |
|||
{ |
|||
public class ReportFormatTemplateManager : DomainService |
|||
{ |
|||
private readonly IRepository<ReportFormatTemplate, string> _repository; |
|||
public ReportFormatTemplateManager(IRepository<ReportFormatTemplate, string> repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplate> GetDefaultAsync(string formatId) |
|||
{ |
|||
var ent = (await _repository.GetListAsync()).Where(m => m.ReportFormatId == formatId && m.IsDefault.Equals('Y')).FirstOrDefault(); |
|||
|
|||
return ent; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplate> CreateAsync( |
|||
ReportFormatTemplate entity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(entity.DisplayName, nameof(entity.DisplayName)); |
|||
await EntityHelper.CheckEqualsId<ReportFormatTemplate, string>(_repository, entity.Id); |
|||
await EntityHelper.CheckEqualsName<ReportFormatTemplate, string>(_repository, entity.DisplayName); |
|||
var var = new ReportFormatTemplate() |
|||
{ |
|||
DisplayName = entity.DisplayName, |
|||
IsDefault = entity.IsDefault, |
|||
ReportFormatId = entity.ReportFormatId, |
|||
TemplateFileType = entity.TemplateFileType, |
|||
TemplateFile=entity.TemplateFile, |
|||
IsSystem=entity.IsSystem, |
|||
DataSetJson=entity.DataSetJson, |
|||
}; |
|||
var.SetId(entity.Id); |
|||
return var; |
|||
} |
|||
|
|||
public async Task<ReportFormatTemplate> CopyCreateAsync(string id,string newId) |
|||
{ |
|||
var ent = (await _repository.GetListAsync()).Where(m => m.Id == id).First(); |
|||
|
|||
var var = new ReportFormatTemplate() |
|||
{ |
|||
DisplayName = ent.DisplayName+"复制", |
|||
IsDefault = 'N', |
|||
ReportFormatId = ent.ReportFormatId, |
|||
TemplateFileType = ent.TemplateFileType, |
|||
TemplateFile = ent.TemplateFile, |
|||
IsSystem = 'N', |
|||
DataSetJson = ent.DataSetJson, |
|||
}; |
|||
var.SetId(newId); |
|||
return var; |
|||
} |
|||
|
|||
public async Task UpdateAsync( |
|||
ReportFormatTemplate sourceEntity, |
|||
ReportFormatTemplate targetEntity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(sourceEntity.DisplayName, nameof(sourceEntity.DisplayName)); |
|||
if (sourceEntity.DisplayName != targetEntity.DisplayName) |
|||
{ |
|||
await EntityHelper.CheckEqualsName<ReportFormatTemplate, string>(_repository, sourceEntity.DisplayName, targetEntity); |
|||
targetEntity.DisplayName = sourceEntity.DisplayName; |
|||
} |
|||
targetEntity.TemplateFileType = sourceEntity.TemplateFileType; |
|||
targetEntity.TemplateFile = sourceEntity.TemplateFile; |
|||
targetEntity.DataSetJson=sourceEntity.DataSetJson; |
|||
} |
|||
|
|||
public async Task UpdateDefaultAsync(string id) |
|||
{ |
|||
var entity = await _repository.GetAsync(id); |
|||
if (entity != null) |
|||
{ |
|||
entity.IsDefault = 'Y'; |
|||
|
|||
List<ReportFormatTemplate> UptList = new List<ReportFormatTemplate>(); |
|||
UptList = await _repository.GetListAsync(o => o.ReportFormatId == entity.ReportFormatId && o.Id != id && o.IsDefault == 'Y'); |
|||
foreach (var upt in UptList) |
|||
{ |
|||
upt.IsDefault = 'N'; |
|||
} |
|||
|
|||
UptList.Add(entity); |
|||
|
|||
|
|||
await _repository.UpdateManyAsync(UptList); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
using Shentun.Peis.Models; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Domain.Services; |
|||
|
|||
namespace Shentun.Peis.ReportFormats |
|||
{ |
|||
public class ReportFormatManager : DomainService |
|||
{ |
|||
private readonly IRepository<ReportFormat, string> _repository; |
|||
public ReportFormatManager(IRepository<ReportFormat, string> repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
|
|||
public async Task<ReportFormat> GetDefaultAsync(string reportId) |
|||
{ |
|||
var ent = (await _repository.GetListAsync()).Where(m => m.ReportId == reportId && m.IsDefault.Equals('Y')).FirstOrDefault(); |
|||
|
|||
return ent; |
|||
} |
|||
|
|||
public async Task<ReportFormat> CreateAsync( |
|||
ReportFormat entity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(entity.DisplayName, nameof(entity.DisplayName)); |
|||
await EntityHelper.CheckEqualsId<ReportFormat, string>(_repository, entity.Id); |
|||
await EntityHelper.CheckEqualsName<ReportFormat, string>(_repository, entity.DisplayName); |
|||
var var = new ReportFormat() |
|||
{ |
|||
DisplayName = entity.DisplayName, |
|||
IsDefault= entity.IsDefault, |
|||
ReportId= entity.ReportId |
|||
}; |
|||
var.SetId(entity.Id); |
|||
return var; |
|||
} |
|||
|
|||
public async Task UpdateAsync( |
|||
ReportFormat sourceEntity, |
|||
ReportFormat targetEntity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(sourceEntity.DisplayName, nameof(sourceEntity.DisplayName)); |
|||
if (sourceEntity.DisplayName != targetEntity.DisplayName) |
|||
{ |
|||
await EntityHelper.CheckEqualsName<ReportFormat, string>(_repository, sourceEntity.DisplayName, targetEntity); |
|||
targetEntity.DisplayName = sourceEntity.DisplayName; |
|||
} |
|||
} |
|||
|
|||
public async Task UpdateDefaultAsync(string id) |
|||
{ |
|||
var entity = await _repository.GetAsync(id); |
|||
if (entity != null) |
|||
{ |
|||
entity.IsDefault = 'Y'; |
|||
|
|||
List<ReportFormat> UptList = new List<ReportFormat>(); |
|||
UptList = await _repository.GetListAsync(o => o.ReportId == entity.ReportId && o.Id != id && o.IsDefault == 'Y'); |
|||
foreach (var upt in UptList) |
|||
{ |
|||
upt.IsDefault = 'N'; |
|||
} |
|||
|
|||
UptList.Add(entity); |
|||
|
|||
|
|||
await _repository.UpdateManyAsync(UptList); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,67 @@ |
|||
using Shentun.Peis.Models; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Domain.Services; |
|||
|
|||
namespace Shentun.Peis.ReportPrinters |
|||
{ |
|||
public class ReportPrinterManager : DomainService |
|||
{ |
|||
private readonly IRepository<ReportPrinter, string> _repository; |
|||
public ReportPrinterManager(IRepository<ReportPrinter, string> repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
|
|||
|
|||
private async Task ExistsAsync(ReportPrinter entity) |
|||
{ |
|||
var cnt = await _repository.CountAsync(p => p.ReportId == entity.ReportId && p.ComputerName.Equals(entity.ComputerName) && p.PrinterName.Equals(entity.PrinterName)); |
|||
if (cnt > 0) |
|||
throw new UserFriendlyException($"打印机名称:'{entity.PrinterName}'在计算机:'{entity.ComputerName}'中已存在"); |
|||
|
|||
cnt = await _repository.CountAsync(p => p.ReportId == entity.ReportId && p.ComputerName.Equals(entity.ComputerName)); |
|||
if (cnt > 0) |
|||
throw new UserFriendlyException($"本地打印机限制一台打印机对应一张报表"); |
|||
} |
|||
|
|||
public async Task<ReportPrinter> CreateAsync(ReportPrinter entity) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(entity.ComputerName, nameof(entity.ComputerName)); |
|||
Check.NotNullOrWhiteSpace(entity.PrinterName, nameof(entity.PrinterName)); |
|||
await EntityHelper.CheckEqualsId<ReportPrinter, string>(_repository, entity.Id); |
|||
|
|||
await ExistsAsync(entity); |
|||
|
|||
var var = new ReportPrinter() |
|||
{ |
|||
ComputerName = entity.ComputerName, |
|||
PrinterName = entity.PrinterName, |
|||
ReportId= entity.ReportId |
|||
}; |
|||
var.SetId(entity.Id); |
|||
return var; |
|||
} |
|||
|
|||
public async Task UpdateAsync( |
|||
ReportPrinter sourceEntity, |
|||
ReportPrinter targetEntity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(sourceEntity.ComputerName, nameof(sourceEntity.ComputerName)); |
|||
Check.NotNullOrWhiteSpace(sourceEntity.PrinterName, nameof(sourceEntity.PrinterName)); |
|||
|
|||
if (sourceEntity.PrinterName != targetEntity.PrinterName) |
|||
{ |
|||
await ExistsAsync(sourceEntity); |
|||
targetEntity.PrinterName = sourceEntity.PrinterName; |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
using Shentun.Peis.Models; |
|||
using Shentun.Utilities; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Linq.Expressions; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using TencentCloud.Sts.V20180813.Models; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Domain.Services; |
|||
|
|||
namespace Shentun.Peis.Reports |
|||
{ |
|||
public class ReportManager:DomainService |
|||
{ |
|||
private readonly IRepository<Report, string> _repository; |
|||
public ReportManager(IRepository<Report, string> repository) |
|||
{ |
|||
_repository = repository; |
|||
} |
|||
|
|||
public async Task<Report> CreateAsync( |
|||
Report entity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(entity.DisplayName, nameof(entity.DisplayName)); |
|||
await EntityHelper.CheckEqualsId<Report, string>(_repository, entity.Id); |
|||
|
|||
await EntityHelper.CheckEqualsName<Report,string>(_repository, entity.DisplayName); |
|||
var report = new Report() |
|||
{ |
|||
DisplayName = entity.DisplayName, |
|||
IsActive = entity.IsActive |
|||
}; |
|||
report.SetId(entity.Id); |
|||
return report; |
|||
} |
|||
|
|||
public async Task UpdateAsync( |
|||
Report sourceEntity, |
|||
Report targetEntity |
|||
) |
|||
{ |
|||
Check.NotNullOrWhiteSpace(sourceEntity.DisplayName, nameof(sourceEntity.DisplayName)); |
|||
if (sourceEntity.DisplayName != targetEntity.DisplayName) |
|||
{ |
|||
await EntityHelper.CheckEqualsName<Report, string>(_repository, sourceEntity.DisplayName, targetEntity); |
|||
targetEntity.DisplayName = sourceEntity.DisplayName; |
|||
} |
|||
targetEntity.IsActive = sourceEntity.IsActive; |
|||
} |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue