Administrator
3 years ago
3 changed files with 278 additions and 19 deletions
@ -0,0 +1,188 @@ |
|||||
|
|
||||
|
using EFCore.BulkExtensions; |
||||
|
using Magicodes.ExporterAndImporter.Core; |
||||
|
using Magicodes.ExporterAndImporter.Excel; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Shouldly; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
using Volo.Abp.Caching; |
||||
|
using Volo.Abp.Domain.Repositories; |
||||
|
using Volo.Abp.Uow; |
||||
|
using Win.Abp.Snowflakes; |
||||
|
using Win.Sfs.BaseData.ImportExcelCommon; |
||||
|
using Win.Sfs.SettleAccount.CommonManagers; |
||||
|
using Win.Sfs.SettleAccount.Constant; |
||||
|
using Win.Sfs.SettleAccount.Entities.Wms; |
||||
|
using Win.Sfs.SettleAccount.Entities.Wms.WmsSumOutput; |
||||
|
using Win.Sfs.SettleAccount.Reports; |
||||
|
using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; |
||||
|
using Win.Sfs.Shared.DomainBase; |
||||
|
using Win.Sfs.Shared.Filter; |
||||
|
|
||||
|
namespace Win.Sfs.SettleAccount.Entities.WMS |
||||
|
{ |
||||
|
[Route("api/settleaccount/WMSOutputDetailDiffReport")] |
||||
|
public class WMSOutputDetailDiffReportAppService : |
||||
|
SettleAccountApplicationBase<WmsDetailDiffReport> |
||||
|
{ |
||||
|
private readonly ISettleAccountBranchEfCoreRepository<WmsDetailDiffReport, Guid> _wmsRepository; |
||||
|
private readonly WmsOutputSumDapperRepository _dapper; |
||||
|
private readonly IExcelImportAppService _excelImportService; |
||||
|
|
||||
|
private readonly ErpSumOutputDapperRepository _erpDapper; |
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
/// <param name="wmsRepository"></param>
|
||||
|
/// <param name="job"></param>
|
||||
|
|
||||
|
public WMSOutputDetailDiffReportAppService( |
||||
|
WmsOutputSumDapperRepository dapper, |
||||
|
ISettleAccountBranchEfCoreRepository<WmsDetailDiffReport, Guid> wmsRepository, |
||||
|
ISettleAccountBranchEfCoreRepository<TaskJob, Guid> job, |
||||
|
IExcelImportAppService excelImportService, |
||||
|
IDistributedCache<WmsDetailDiffReport> cache, |
||||
|
ISnowflakeIdGenerator snowflakeIdGenerator, |
||||
|
ICommonManager commonManager, |
||||
|
ErpSumOutputDapperRepository erpDapper |
||||
|
) : base(cache, excelImportService, snowflakeIdGenerator, commonManager) |
||||
|
{ |
||||
|
_erpDapper = erpDapper; |
||||
|
_wmsRepository = wmsRepository; |
||||
|
_dapper = dapper; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
[HttpGet] |
||||
|
[Route("Make")] |
||||
|
[UnitOfWork(false)] |
||||
|
public async Task<string> ReportMake(string version,DateTime accountDate) |
||||
|
{ |
||||
|
var _ls= _dapper.GetWmsSumReportList(version,"0");//报表
|
||||
|
|
||||
|
var _count= _wmsRepository.Count(p => p.Version == version && p.State>0); |
||||
|
if (_count > 0) |
||||
|
{ |
||||
|
throw new BusinessException("8899", "不能重新生成此版本!"); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
var query = _wmsRepository.Where(p => p.Version == version); |
||||
|
await query.BatchDeleteAsync(); |
||||
|
} |
||||
|
List<WmsDetailDiffReport> _lst = new List<WmsDetailDiffReport>(); |
||||
|
if (_ls != null && _ls.Count() > 0) |
||||
|
{ |
||||
|
foreach (var itm in _ls) |
||||
|
{ |
||||
|
_lst.Add(new WmsDetailDiffReport( |
||||
|
Guid.NewGuid(), |
||||
|
itm.客户, |
||||
|
itm.出库类型, |
||||
|
version, |
||||
|
itm.结算单, |
||||
|
itm.通用代码号, |
||||
|
itm.物料号, |
||||
|
itm.结算数量, |
||||
|
itm.实际出库数量, |
||||
|
itm.差异数量, |
||||
|
itm.物料组编码, |
||||
|
itm.物料组车型, |
||||
|
itm.物料描述, |
||||
|
itm.备注, |
||||
|
0)); |
||||
|
} |
||||
|
} |
||||
|
await _wmsRepository.GetDbContext().BulkInsertAsync(_lst); |
||||
|
return ApplicationConsts.SuccessStr; |
||||
|
} |
||||
|
/// <summary>
|
||||
|
/// Wms汇总合计明细
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost] |
||||
|
[Route("WmsDetailReport")] |
||||
|
|
||||
|
virtual public async Task<PagedResultDto<WmsDetailDiffReport>> GetListAsync(WmsRequestDetailReportDto input) |
||||
|
{ |
||||
|
var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, input.MaxResultCount, |
||||
|
input.SkipCount, true); |
||||
|
var totalCount = await GetCountAsync(input); |
||||
|
return new PagedResultDto<WmsDetailDiffReport>(totalCount, entities); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
private async Task<long> GetCountAsync(WmsRequestDetailReportDto input) |
||||
|
{ |
||||
|
// input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "BillNum", Logic = EnumFilterLogic.And, Value = input.BillNum });
|
||||
|
return await _wmsRepository.GetCountByFilterAsync(GuidGenerator.Create(), input.Filters); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
//[HttpPost]
|
||||
|
//[Route("Output")]
|
||||
|
|
||||
|
//virtual public async Task<bool> OutputAsync(WmsRequestDetailReportDto input)
|
||||
|
//{
|
||||
|
// var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue,
|
||||
|
// 0, true);
|
||||
|
// List<WmsDetailDiffReport> _ls = new List<WmsDetailDiffReport>();
|
||||
|
// if (entities.Count() > 0)
|
||||
|
// {
|
||||
|
// var _entity = entities.FirstOrDefault();
|
||||
|
// if (_entity != null)
|
||||
|
// {
|
||||
|
// var _version = _entity.Version;
|
||||
|
// var _accountDate = _entity.AccountDate;
|
||||
|
// _erpDapper.InsertWmsSum(_ls, _version, _accountDate);
|
||||
|
// }
|
||||
|
// }
|
||||
|
// return true;
|
||||
|
//}
|
||||
|
[HttpPost] |
||||
|
[Route("Export")] |
||||
|
virtual public async Task<string> ExportAsync(WmsRequestDetailReportDto input) |
||||
|
{ |
||||
|
var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue, |
||||
|
0, true); |
||||
|
IExporter _excel = new ExcelExporter(); |
||||
|
byte[] result = null; |
||||
|
var _fileName = string.Format("汇总合计报表_{0}.xlsx", Guid.NewGuid().ToString()); |
||||
|
result = await _excel.ExportAsByteArray(entities); |
||||
|
result.ShouldNotBeNull(); |
||||
|
//保存导出文件到服务器存成二进制
|
||||
|
await _excelImportService.SaveBlobAsync( |
||||
|
new SaveExcelImportInputDto |
||||
|
{ |
||||
|
Name = _fileName, |
||||
|
Content = result |
||||
|
} |
||||
|
); |
||||
|
return _fileName; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
Loading…
Reference in new issue