diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Materials/MaterialDtoBase.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Materials/MaterialDtoBase.cs index 5cce368d..07f0059d 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Materials/MaterialDtoBase.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Materials/MaterialDtoBase.cs @@ -54,18 +54,21 @@ namespace Win.Sfs.SettleAccount.Entities.Errors public class ErrorBillExportDto { /// - ///错误单据号 + ///底盘或看板号 /// + [ExporterHeader(DisplayName = "底盘|看板号|订单号", IsBold = true)] public string BillNum { get; protected set; } /// /// 物料号 /// + [ExporterHeader(DisplayName = "物料号", IsBold = true)] public string MaterialCode { set; get; } /// /// 发货单号 /// + [ExporterHeader(DisplayName = "交货单号", IsBold = true)] public string WmsBillNum { set; get; } } diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/ErrorListBill/ErrorBillAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/ErrorListBill/ErrorBillAppService.cs index 3b5e31a0..f6195929 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/ErrorListBill/ErrorBillAppService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/ErrorListBill/ErrorBillAppService.cs @@ -35,8 +35,7 @@ using Win.Sfs.SettleAccount.Errors; using Win.Sfs.SettleAccount.EstimatedInventories; using Win.Sfs.SettleAccount.ExcelImporter; using Win.Sfs.SettleAccount.ExportReports; - - +using Win.Sfs.SettleAccount.Reports; using Win.Sfs.Shared.CacheBase; using Win.Utils; namespace Win.Sfs.SettleAccount.Entities.ErrorBills @@ -102,22 +101,32 @@ namespace Win.Sfs.SettleAccount.Entities.ErrorBills /// /// 上传的文件(前端已经限制只能上传一个附件) /// - [HttpPost] - [Route("ExcelImport")] - [DisableRequestSizeLimit] + //[HttpPost] + //[Route("ExcelImport")] + //[DisableRequestSizeLimit] - public async Task ErrorBillUploadExcelImportMap([FromForm] IFormFileCollection files,string version) - { - ExportImporter _exportImporter = new ExportImporter(); - var result = await _exportImporter.ExtendExcelImport(files, _excelImportService); - return ApplicationConsts.SuccessStr; - } + //public async Task ErrorBillUploadExcelImportMap([FromForm] IFormFileCollection files,string version) + //{ + // ExportImporter _exportImporter = new ExportImporter(); + // var result = await _exportImporter.ExtendExcelImport(files, _excelImportService); + // return ApplicationConsts.SuccessStr; + //} + public List RemoveError(List p_list) where T : ReportDetailBase, new () + { + + + return p_list; + + + } + + /// @@ -137,45 +146,18 @@ namespace Win.Sfs.SettleAccount.Entities.ErrorBills var checkList = new List(); foreach (var itm in _ls) { - - - - //var _first = await _repository.FirstOrDefaultAsync(p => p.ErrorBillCode == itm.ErrorBillCode); - //if (_first == null) - //{ - //var entity = new ErrorBill( - // GuidGenerator.Create(), - // GuidGenerator.Create(), - // itm.Factory, - // itm.ErrorBillCode, - // itm.ErrorBillDesc, - // itm.Unit, - // itm.EstimateType, - // itm.EstimateTypeDesc - // ); - // await _repository.InsertAsync(entity); - //} - //else - //{ - //_first.Update(itm.ErrorBillDesc, itm.Unit, itm.EstimateType, itm.EstimateTypeDesc, itm.Factory - // ); - //await _repository.UpdateAsync(_first); - //} - //var _f = await _relationshipRepository.FirstOrDefaultAsync(p => p.ErpErrorBillCode == itm.ErrorBillCode); - //if (_f != null) - //{ - // _f.Update(itm.ErrorBillDesc, _f.ErrorBillProperty, _f.SettleErrorBillCode, _f.ShipMaterailCode); - // await _relationshipRepository.UpdateAsync(_f); - //} - //else - //{ - // var _r = new ErrorBillRelationship(GuidGenerator.Create(), GuidGenerator.Create(), itm.ErrorBillCode, itm.ErrorBillDesc, string.Empty, string.Empty, string.Empty, itm.EstimateType); - // await _relationshipRepository.InsertAsync(_r); - //} - - - - + var _first = await _repository.FirstOrDefaultAsync(p => p.BillNum == itm.BillNum && p.MaterialCode==itm.MaterialCode && p.WmsBillNum==itm.WmsBillNum); + if (_first == null) + { + var entity = new ErrorBill( + GuidGenerator.Create(), + GuidGenerator.Create(), + itm.BillNum, + itm.MaterialCode, + itm.WmsBillNum + ); + await _repository.InsertAsync(entity); + } } return ApplicationConsts.SuccessStr; } diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs index c8da3886..9b1ecd67 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs @@ -482,7 +482,7 @@ namespace Win.Sfs.SettleAccount.Reports.ReportServices [HttpPost] [Route("InvoiceSettledDetailDiff-Make")] [DisableRequestSizeLimit] - + [UnitOfWork(false)] public async Task InvoiceSettledDetailDiffMake( BaseRequestDto request ) @@ -515,7 +515,7 @@ namespace Win.Sfs.SettleAccount.Reports.ReportServices [HttpPost] [Route("UnInvoiceSettledDetailDiff-Make")] [DisableRequestSizeLimit] - + [UnitOfWork(false)] public async Task UnInvoiceSettledDetailDiffMake( BaseRequestDto request ) @@ -549,6 +549,7 @@ namespace Win.Sfs.SettleAccount.Reports.ReportServices [HttpPost] [Route("UnsettledDetailReportService-Make")] [DisableRequestSizeLimit] + [UnitOfWork(false)] public async Task UnsettledDetailReportServiceMake( BaseRequestDto input diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/ErrorBillNum/ErrorBillNum.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/ErrorBillNum/ErrorBillNum.cs index 9cc5b4bb..005ac1d8 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/ErrorBillNum/ErrorBillNum.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/ErrorBillNum/ErrorBillNum.cs @@ -11,6 +11,17 @@ namespace Win.Sfs.SettleAccount.Errors /// public class ErrorBill : FullAuditedAggregateRootBase { + public ErrorBill( + Guid id, + Guid branchId, + string billNum, string materialCode, string wmsBillNum):base(id) + { + BranchId = branchId; + BillNum = billNum; + MaterialCode = materialCode; + WmsBillNum = wmsBillNum; + } + /// ///错误单据号 /// diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs index 95c25bde..4e909b76 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs @@ -6,6 +6,8 @@ using System.Threading.Tasks; using TaskJob.EventArgs; using TaskJob.Interfaces; using Volo.Abp.DependencyInjection; +using Win.Sfs.SettleAccount; +using Win.Sfs.SettleAccount.Errors; using Win.Sfs.SettleAccount.Reports.InvoiceSettledDiffs; using Win.Sfs.SettleAccount.Repository.SettleAccount; using Win.Sfs.SettleAccount.Repository.SettleAccountJob; @@ -21,12 +23,12 @@ namespace SettleAccount.Job.Services private readonly InvoiceSettledDetailDiffDapperRepository _dapperRepository; private readonly ErpPartDapperRepository _erpdapperRepository; - + private readonly ISettleAccountBranchEfCoreRepository _errorListRepository; private readonly OutputService _outputService; private readonly InputService _inputService; public InvoiceSettledDetailDiffExportService( - + ISettleAccountBranchEfCoreRepository errorListRepository, ErpPartDapperRepository erpdapperRepository, InvoiceSettledDetailDiffDapperRepository dapperRepository, OutputService outputService, @@ -39,6 +41,7 @@ namespace SettleAccount.Job.Services //_repository = repository; //_versionRepository = versionRepository; _dapperRepository =dapperRepository; + _errorListRepository=errorListRepository; } public string ExportFile(Guid id, List exportName, List p_list) @@ -187,7 +190,18 @@ namespace SettleAccount.Job.Services _ls = _ls.OrderBy(p => p.ChassisNumber).ThenBy(p => p.KENNCode).ThenBy(p => p.SapMaterialCode).ToList(); } - _outputService.Export(id, _filename, _ls); + + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _ls + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode,WmsBillNum=itm.WmsBillNum } +equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + + + _outputService.Export(id, _filename, query.ToList()); return id.ToString(); } diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs index a4791e7b..306f26e4 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs @@ -11,6 +11,8 @@ using TaskJob.Interfaces; using Volo.Abp.BlobStoring; using Volo.Abp.DependencyInjection; using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount; +using Win.Sfs.SettleAccount.Errors; using Win.Sfs.SettleAccount.Reports.InvoiceSettledDiffs; using Win.Sfs.SettleAccount.Repository.SettleAccount; using Win.Sfs.SettleAccount.Repository.SettleAccountJob; @@ -52,7 +54,7 @@ namespace SettleAccount.Job.Services private readonly ErpPartDapperRepository _erpdapperRepository; private readonly IBlobContainer _fileContainer; - + private readonly ISettleAccountBranchEfCoreRepository _errorListRepository; private readonly OutputService _outputService; private readonly InputService _inputService; @@ -63,7 +65,9 @@ namespace SettleAccount.Job.Services InvoiceSettledDetailDiffDapperRepository dapperRepository1, OutputService outputService, InputService inputService, - UnSettledDetailDapperRepository dapperRepository2 + UnSettledDetailDapperRepository dapperRepository2, + + ISettleAccountBranchEfCoreRepository errorListRepository ) { _fileContainer = fileContainer; @@ -75,6 +79,7 @@ namespace SettleAccount.Job.Services _dapperRepository =dapperRepository; _dapperRepository1 = dapperRepository1; _dapperRepository2 = dapperRepository2; + _errorListRepository = errorListRepository; } public string ExportFile(Guid id, List exportName, List p_list) @@ -147,6 +152,20 @@ namespace SettleAccount.Job.Services } + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _ls + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum } +equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + + + _ls=query.ToList(); + + + var _lsSum=_ls.GroupBy(p => new { p.MaterialCode, p.SapMaterialCode, p.MaterialGroup,p.InvoicePrice }).Select(p => new UnInvoiceSettledDetailSum { MaterialCode = p.Key.MaterialCode, @@ -328,11 +347,26 @@ namespace SettleAccount.Job.Services } + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _ls + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum } + equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + + + _ls = query.ToList(); + + + //.Select(p => p.FirstOrDefault()); _ls = _ls.OrderBy(p => p.ChassisNumber).ThenBy(p => p.KENNCode).ThenBy(p => p.SapMaterialCode).ToList(); } + return _ls; } public List LSettleSum(Guid id, List exportName, List p_list) @@ -360,16 +394,7 @@ namespace SettleAccount.Job.Services var _list = _dapperRepository2.GetDiffReport(DateTime.Now.Year.ToString(), begin, end, "", version,"", materialGroup, sapCode); var _ls = _list.Where(p => p.Flag == "L").Where(p => p.ParentSapMaterialCode != p.SapMaterialCode).GroupBy(p => new { p.KENNCode, p.ChassisNumber, p.ParentSapMaterialCode }).Select(p => p.FirstOrDefault()).ToList(); - //var _lst = _erpDapper.GetSapList(_ls, version, false); - //_lst.ForEach(p => - //{ - - // p.Qty = 1; - // p.DiffAMT = Math.Round(p.Qty * p.Price, 2); - // p.DiffQty = 1; - //} - //); - //_list.AddRange(_lst); + if (!string.IsNullOrEmpty(materialGroup)) { var _groupList = materialGroup.Split(new char[] { ',' }).Distinct().ToList(); @@ -402,14 +427,23 @@ namespace SettleAccount.Job.Services _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); } } - //if (!string.IsNullOrEmpty(materailCode)) - //{ - // var _groupList = materailCode.Split(new char[] { '\n' }).Distinct().ToList(); - // if (_groupList.Count() > 0) - // { - // _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); - // } - //} + + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _list + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum } +equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + + + _list = query.ToList(); + + + + + _list = _list.OrderBy(p => p.ChassisNumber).ThenBy(p => p.SapMaterialCode).ThenBy(p => p.Flag).ToList(); var report2List = _ls.Where(p=>p.UnSettleVersion==version).Select(p => new { p.MaterialGroup, DiffAmt = p.Price * p.Qty }).GroupBy(p => new { p.MaterialGroup }).Select(p => new SettleDoorPanelSumExport { MaterialGroup = p.Key.MaterialGroup, InvoiceDiffPrice = p.Sum(itm => itm.DiffAmt), Version = version }); diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs index 2675f8db..61634764 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs @@ -12,6 +12,8 @@ using Volo.Abp.BlobStoring; using Volo.Abp.DependencyInjection; using Volo.Abp.Uow; using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount; +using Win.Sfs.SettleAccount.Errors; using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; namespace SettleAccount.Job.Services.Report @@ -56,6 +58,7 @@ namespace SettleAccount.Job.Services.Report private readonly OutputService _outputService; private readonly ErpPartDapperRepository _erpDapper; private readonly SettleSparePartDapperReportRepository _sparepartdapper; + private readonly ISettleAccountBranchEfCoreRepository _errorListRepository; private readonly IBlobContainer _fileContainer; public UnSettledSumService( HQHSettledDetailDapperRepository hqkanbanDapper, @@ -65,7 +68,8 @@ namespace SettleAccount.Job.Services.Report ErpPartDapperRepository erpDapper, WmsDapperRepository wmsDapper, SettleSparePartDapperReportRepository sparepartdapper, - IBlobContainer fileContainer + IBlobContainer fileContainer, + ISettleAccountBranchEfCoreRepository errorListRepository ) { _wmsDapper = wmsDapper; @@ -76,6 +80,7 @@ namespace SettleAccount.Job.Services.Report _erpDapper = erpDapper; _sparepartdapper = sparepartdapper; _fileContainer = fileContainer; + _errorListRepository = errorListRepository; } [UnitOfWork(false)] public string ExportFile(Guid id, List exportName, List p_list) @@ -186,6 +191,21 @@ namespace SettleAccount.Job.Services.Report _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); } } + + + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _list + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum } +equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + _list = query.ToList(); + + + + var _fislist =_list.GroupBy(p => new { p.SapMaterialCode, p.MaterialDesc, p.MaterialGroup, p.MaterialCode }) .Select(p => new UnSettledSum { diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs index 9d40148e..76d39a84 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs @@ -6,7 +6,9 @@ using System.Threading.Tasks; using TaskJob.EventArgs; using TaskJob.Interfaces; using Volo.Abp.DependencyInjection; +using Win.Sfs.SettleAccount; using Win.Sfs.SettleAccount.Entities.UnSettle; +using Win.Sfs.SettleAccount.Errors; using Win.Sfs.SettleAccount.FISes; using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report.ExportDto; @@ -18,15 +20,19 @@ namespace SettleAccount.Job.Services.Report private readonly UnSettledDetailDapperRepository _dapper; private readonly OutputService _outputService; private readonly ErpPartDapperRepository _erpDapper; + + private readonly ISettleAccountBranchEfCoreRepository _errorListRepository; public UnsettledDetailReportService( UnSettledDetailDapperRepository dapper, OutputService outputService, - ErpPartDapperRepository erpDapper + ErpPartDapperRepository erpDapper, + ISettleAccountBranchEfCoreRepository errorListRepository ) { _dapper = dapper; _outputService = outputService; _erpDapper = erpDapper; + _errorListRepository = errorListRepository; } @@ -101,16 +107,31 @@ namespace SettleAccount.Job.Services.Report _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); } } - var removeList= _dapper.GetRemoveDetail(); - var _query= from itm in _list - join itm1 in removeList on new { itm.ChassisNumber, itm.SapMaterialCode } -equals new { itm1.ChassisNumber, itm1.SapMaterialCode } into temp1 - from tm1 in temp1.DefaultIfEmpty() - where tm1 == null - select itm; - _list=_query.ToList(); + + var _checkList = _errorListRepository.ToList(); + + var query = from itm in _ls + join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum } +equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1 + from tm1 in temp1.DefaultIfEmpty() + where tm1 == null + select itm; + + _list = query.ToList(); + + + // var removeList= _dapper.GetRemoveDetail(); + + // var _query= from itm in _list + // join itm1 in removeList on new { itm.ChassisNumber, itm.SapMaterialCode } + //equals new { itm1.ChassisNumber, itm1.SapMaterialCode } into temp1 + // from tm1 in temp1.DefaultIfEmpty() + // where tm1 == null + // select itm; + + _list = _list.OrderBy(p => p.SapMaterialCode).ThenBy(p => p.ChassisNumber).ThenBy(p => p.Flag).ToList(); _outputService.Export(id, _first, _list);