Browse Source

更新版本

FoShanPG
Administrator 3 years ago
parent
commit
e26f067afd
  1. 188
      src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsDetailUnInterface.cs
  2. 37
      src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsUnInterface.cs
  3. 72
      src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WmsDetailReport.cs

188
src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsDetailUnInterface.cs

@ -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;
}
}
}

37
src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsUnInterface.cs

@ -14,6 +14,7 @@ using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
using Win.Abp.Snowflakes; using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.CommonManagers; using Win.Sfs.SettleAccount.CommonManagers;
@ -61,6 +62,7 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
[HttpGet] [HttpGet]
[Route("Make")] [Route("Make")]
[UnitOfWork(false)]
public async Task<string> ReportMake(string version,DateTime accountDate) public async Task<string> ReportMake(string version,DateTime accountDate)
{ {
var _ls= _dapper.GetWmsSumExtendList(version);//报表 var _ls= _dapper.GetWmsSumExtendList(version);//报表
@ -104,16 +106,12 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
0, 0,
version, version,
accountDate accountDate
)); ));
} }
} }
await _wmsRepository.GetDbContext().BulkInsertAsync(_lst); await _wmsRepository.GetDbContext().BulkInsertAsync(_lst);
return ApplicationConsts.SuccessStr; return ApplicationConsts.SuccessStr;
} }
/// <summary> /// <summary>
/// Wms汇总合计明细 /// Wms汇总合计明细
/// </summary> /// </summary>
@ -131,8 +129,23 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
} }
/// <summary>
/// Wms汇总合计明细
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("version")]
virtual public async Task<List<string>> GetVersionListAsync()
{
var entities = _wmsRepository.Select(p => p.Version).Distinct().ToList();
return entities;
}
@ -143,8 +156,6 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
} }
[HttpPost] [HttpPost]
[Route("Output")] [Route("Output")]
@ -152,9 +163,7 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
{ {
var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue, var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue,
0, true); 0, true);
List<WmsDetailReport> _ls = new List<WmsDetailReport>(); List<WmsDetailReport> _ls = new List<WmsDetailReport>();
if (entities.Count() > 0) if (entities.Count() > 0)
{ {
var _entity = entities.FirstOrDefault(); var _entity = entities.FirstOrDefault();
@ -164,21 +173,11 @@ namespace Win.Sfs.SettleAccount.Entities.WMS
var _accountDate = _entity.AccountDate; var _accountDate = _entity.AccountDate;
_erpDapper.InsertWmsSum(_ls, _version, _accountDate); _erpDapper.InsertWmsSum(_ls, _version, _accountDate);
} }
} }
return true; return true;
} }
[HttpPost] [HttpPost]
[Route("Export")] [Route("Export")]
virtual public async Task<string> ExportAsync(WmsRequestDetailReportDto input) virtual public async Task<string> ExportAsync(WmsRequestDetailReportDto input)
{ {
var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue, var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue,

72
src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WmsDetailReport.cs

@ -92,4 +92,76 @@ namespace Win.Sfs.SettleAccount.Entities
public DateTime AccountDate { set; get; } public DateTime AccountDate { set; get; }
} }
public class WmsDetailDiffReport : FullAuditedAggregateRootBase<Guid>
{
public WmsDetailDiffReport()
{
}
public WmsDetailDiffReport(Guid id,string client, string type,string version, string billNum, string switchCode, string materialCode, decimal qty, decimal outputQty, decimal diffQty, string materialGroupCode, string materialGroup, string materialDesc, string remark1,int state):base(id)
{
Version = version;
Type = type;
Client = client;
BillNum = billNum;
SwitchCode = switchCode;
MaterialCode = materialCode;
Qty = qty;
OutputQty = outputQty;
DiffQty = diffQty;
MaterialGroupCode = materialGroupCode;
MaterialGroup = materialGroup;
MaterialDesc = materialDesc;
Remark1 = remark1;
State = state;
}
[Display(Name = "版本号")]
public string Version { set; get; }
[Display(Name = "客户")]
public string Client { set; get; }
[Display(Name = "出库类型")]
public string Type { set; get; }
//[Display(Name = "结算编码")]
//public string SettleCode { set; get; }
//[Display(Name = "销售渠道")]
//public string SaleCode { set; get; }
//[Display(Name = "客户代码")]
//public string ClientCode { set; get; }
[Display(Name = "结算单")]
public string BillNum { set; get; }
[Display(Name = "交货编码")]
public string SwitchCode { set; get; }
[Display(Name = "物料号")]
public string MaterialCode { set; get; }
//[Display(Name = "寄售类别")]
//public string SaleType { set; get; }
[Display(Name = "结算数量")]
public decimal Qty { set; get; }
[Display(Name = "实际出库数量")]
public decimal OutputQty { set; get; }
[Display(Name = "差异数量")]
public decimal DiffQty { set; get; }
//[Display(Name = "开票单价")]
//public decimal Price { set; get; }
//[Display(Name = "结算金额")]
//public decimal Amt { set; get; }
//[Display(Name = "已出库金额")]
//public decimal OutPutAmt { set; get; }
//[Display(Name = "WMS待出库金额")]
//public decimal DiffAmt { set; get; }
[Display(Name = "物料组编码")]
public string MaterialGroupCode { set; get; }
[Display(Name = "物料组(车型)")]
public string MaterialGroup { set; get; }
[Display(Name = "物料组描述")]
public string MaterialDesc { set; get; }
[Display(Name = "备注")]
public string Remark1 { set; get; }
public int State { set; get; }
}
} }

Loading…
Cancel
Save