From 30147a701d88709e9a6468f112e600f460841a94 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 20 Dec 2021 10:30:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/Win.Sfs.SmartSettlementSystem.PG/v16/.suo | Bin 71168 -> 75776 bytes .../appsettings.json | 2 +- .../SettleAccount.Application.xml | 2 +- .../Entities/UnSettle/UnSettleDetailReport.cs | 6 + .../Report/UnSettleDiffDapperRepository.cs | 7 +- .../Report/UnSettledDetailDapperRepository.cs | 7 +- .../InvoiceSettledDetailDiffExportService.cs | 4 +- .../Report/SettleDoorPanelExportService.cs | 8 +- ...UnInvoiceSettledDetailDiffExportService.cs | 14 +- .../Report/UnSettleDiffExportService.cs | 187 +++++++++++++++++- .../Services/Report/UnsettledDetailReport.cs | 11 +- 11 files changed, 219 insertions(+), 29 deletions(-) diff --git a/.vs/Win.Sfs.SmartSettlementSystem.PG/v16/.suo b/.vs/Win.Sfs.SmartSettlementSystem.PG/v16/.suo index 1dbc007b897734a20d4bc8b28b992871362b0d56..e827922103635373b2a924a7b1a13563a339393d 100644 GIT binary patch delta 5854 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 diff --git a/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json b/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json index c3283577..7595b167 100644 --- a/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json +++ b/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json @@ -11,7 +11,7 @@ //"SettleAccountService": "Server=127.0.0.1;Database=SettleAccountService;user id=sa;Password=1;" "Default": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", "SettleAccountService": "Server=192.168.0.140;Database=SettleAccountService;user id=sa;password=Microsoft2008;", - "WmsService": "Server=192.168.0.140;Database=CPAT_WMS_TEST;user id=sa;password=Microsoft2008;" + //"WmsService": "Server=192.168.0.140;Database=CPAT_WMS_TEST;user id=sa;password=Microsoft2008;" }, "Logging": { diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml index e0a7b248..933e8fe8 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml @@ -2763,7 +2763,7 @@ - + 1.大众发票与结算核对汇总表 diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs index 1b767bff..0fdeeaff 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs @@ -50,6 +50,12 @@ namespace Win.Sfs.SettleAccount.Entities.UnSettle [ExporterHeader(DisplayName = "大众R3未结数量")] public decimal UnSettleQty { set; get; } + + [ExporterHeader(DisplayName = "差异金额")] + public decimal DiffAMT { set; get; } + [ExporterHeader(DisplayName = "差异数量")] + public decimal DiffQty { set; get; } + [ExporterHeader(DisplayName = "漏结标识 ")] public string Flag { set; get; } [ExporterHeader(DisplayName = "漏结期间 ")] diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs index cf07fa8b..6778d236 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs @@ -154,7 +154,12 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " isnull( t1.UNSettleQty, 0 ) * isnull( T2.Price, 0 ) AMT,\n" + " T2.Price,\n" + " Qty -(\n" + -" ISNULL( UnSettleQty, 0 )) DiffQty \n" + +" ISNULL( UnSettleQty, 0 )) DiffQty ,\n" + + + +" (Qty - (ISNULL(UnSettleQty, 0))) * isnull(T2.Price, 0) DiffAmt \n"+ + + "FROM\n" + " (\n" + " SELECT\n" + diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettledDetailDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettledDetailDapperRepository.cs index 8849b7b7..798725f2 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettledDetailDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettledDetailDapperRepository.cs @@ -60,7 +60,8 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " SELECT\n" + " temp1.*,\n" + " temp2.Price,\n" + -" ISNULL( temp1.QTY, 0 )* ISNULL( temp2.Price, 0 ) AMT \n" + +" ISNULL( temp1.QTY, 0 )* ISNULL( temp2.Price, 0 ) AMT, \n" + +" ISNULL( temp1.DiffQty, 0 )* ISNULL( temp2.Price, 0 ) DiffAMT \n" + " FROM\n" + " (\n" + " SELECT\n" + @@ -69,7 +70,9 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " B.EstimateTypeDesc MaterialGroup,\n" + " B.MaterialDesc MaterialDesc,\n" + " d.MaterialDesc ParentMaterialDesc,\n" + -" B.MaterialCode SapMaterialCode \n" + +" B.MaterialCode SapMaterialCode, \n" + + +" A.Qty-Isnull(F.Qty, 0) DiffQty \n" + " FROM\n" + " (\n" + " SELECT\n" + 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 c797d0aa..81258e71 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs @@ -118,7 +118,7 @@ namespace SettleAccount.Job.Services if (!string.IsNullOrEmpty(materialGroup)) { - var _groupList= materialGroup.Split(new char[] { ',' }).ToList(); + var _groupList= materialGroup.Split(new char[] { '\n' }).Distinct().ToList(); if(_groupList.Count()>0) { _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); @@ -142,7 +142,7 @@ namespace SettleAccount.Job.Services } if (!string.IsNullOrEmpty(sapCode)) { - var _groupList = sapCode.Split(new char[] { ',' }).ToList(); + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SettleDoorPanelExportService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SettleDoorPanelExportService.cs index 109b5092..d79004a2 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SettleDoorPanelExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SettleDoorPanelExportService.cs @@ -118,7 +118,7 @@ namespace SettleAccount.Job.Services.Report if (!string.IsNullOrEmpty(materialGroup)) { - var _groupList = materialGroup.Split(new char[] { ',' }).ToList(); + var _groupList = materialGroup.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); @@ -126,7 +126,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(kenncode)) { - var _groupList = kenncode.Split(new char[] { ',' }).ToList(); + var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.KENNCode)).ToList(); @@ -134,7 +134,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(chassisNumber)) { - var _groupList = chassisNumber.Split(new char[] { ',' }).ToList(); + var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.ChassisNumber)).ToList(); @@ -142,7 +142,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(sapCode)) { - var _groupList = sapCode.Split(new char[] { ',' }).ToList(); + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); 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 624d4db5..a5d7dc39 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnInvoiceSettledDetailDiffExportService.cs @@ -98,7 +98,7 @@ namespace SettleAccount.Job.Services if (!string.IsNullOrEmpty(materialGroup)) { - var _groupList = materialGroup.Split(new char[] { ',' }).ToList(); + var _groupList = materialGroup.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); @@ -106,7 +106,7 @@ namespace SettleAccount.Job.Services } if (!string.IsNullOrEmpty(kenncode)) { - var _groupList = kenncode.Split(new char[] { ',' }).ToList(); + var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.KENNCode)).ToList(); @@ -114,7 +114,7 @@ namespace SettleAccount.Job.Services } if (!string.IsNullOrEmpty(chassisNumber)) { - var _groupList = chassisNumber.Split(new char[] { ',' }).ToList(); + var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.ChassisNumber)).ToList(); @@ -122,16 +122,13 @@ namespace SettleAccount.Job.Services } if (!string.IsNullOrEmpty(sapCode)) { - var _groupList = sapCode.Split(new char[] { ',' }).ToList(); + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); } } - - - var _lsSum=_ls.GroupBy(p => new { p.MaterialCode, p.SapMaterialCode, p.MaterialGroup,p.InvoicePrice }).Select(p => new UnInvoiceSettledDetailSum { MaterialCode = p.Key.MaterialCode, @@ -158,6 +155,9 @@ namespace SettleAccount.Job.Services + + + var result = _exporter.Append(_ls, "差异明细表") .SeparateBySheet() .Append(_lsSum, "数量差异汇总表") diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs index e9ebd0a6..2e4d23c2 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs @@ -1,28 +1,67 @@ -using System; +using Magicodes.ExporterAndImporter.Core; +using Magicodes.ExporterAndImporter.Excel; +using Shouldly; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TaskJob.EventArgs; using TaskJob.Interfaces; +using Volo.Abp.BlobStoring; using Volo.Abp.DependencyInjection; +using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.Entities.UnSettle; using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; namespace SettleAccount.Job.Services.Report { + public class SumSettleDiffList + { + // 物料组车型 SAP编码 零件号 结算数量 M100数量 差异总数 开票单价 差异金额 + + + + [ExporterHeader(DisplayName = "SAP编码")] + public string SapMaterialCode { set; get; } + [ExporterHeader(DisplayName = "零件号")] + public string MaterialCode { set; get; } + [ExporterHeader(DisplayName = "零件描述")] + public string MaterialDesc { set; get; } + [ExporterHeader(DisplayName = "物料组车型")] + public string MaterialGroup { set; get; } + [ExporterHeader(DisplayName = "大众未结算数量")] + public decimal Qty { set; get; } + [ExporterHeader(DisplayName = "系统未结数量")] + public decimal UnSettleQty { set; get; } + [ExporterHeader(DisplayName = "差异总数")] + public decimal DiffQty { set; get; } + [ExporterHeader(DisplayName = "差异总金额")] + public decimal DiffAmt { set; get; } + } + + + + public class UnSettleDiffExportService : ITransientDependency, IExportJob { private readonly UnSettleDiffDapperRepository _dapper; private readonly OutputService _outputService; private readonly ErpPartDapperRepository _erpdapperRepository; + private readonly UnSettledDetailDapperRepository _dapper1; + private readonly IBlobContainer _fileContainer; public UnSettleDiffExportService(UnSettleDiffDapperRepository dapper, OutputService outputService, - ErpPartDapperRepository erpdapperRepository + UnSettledDetailDapperRepository dapper1, + ErpPartDapperRepository erpdapperRepository, + IBlobContainer fileContainer ) { _erpdapperRepository = erpdapperRepository; _dapper = dapper; _outputService = outputService; + _dapper1 = dapper1; + _fileContainer = fileContainer; } public string ExportFile(Guid id, List exportName, List p_list) @@ -44,12 +83,25 @@ namespace SettleAccount.Job.Services.Report var _list = _ls.Where(p => p.ParentSapMaterialCode != p.SapMaterialCode && !string.IsNullOrEmpty(p.ParentSapMaterialCode)).GroupBy(p => new { p.ParentSapMaterialCode, p.ChassisNumber, p.KENNCode }) .Select(p => p.FirstOrDefault()).ToList(); + var rangeList = _erpdapperRepository.GetSapList(_list, version, false); + + + rangeList.ForEach(p => + { + + p.Qty = 1; + p.DiffAmt = p.Qty * p.Price; + p.DiffQty = -1; + } + ); + + _ls.AddRange(rangeList); if (!string.IsNullOrEmpty(materialGroup)) { - var _groupList = materialGroup.Split(new char[] { ',' }).ToList(); + var _groupList = materialGroup.Split(new char[] { '\n' }).Distinct().Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); @@ -57,7 +109,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(kenncode)) { - var _groupList = kenncode.Split(new char[] { ',' }).ToList(); + var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.KENNCode)).ToList(); @@ -65,7 +117,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(chassisNumber)) { - var _groupList = chassisNumber.Split(new char[] { ',' }).ToList(); + var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.ChassisNumber)).ToList(); @@ -73,7 +125,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(sapCode)) { - var _groupList = sapCode.Split(new char[] { ',' }).ToList(); + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _ls = _ls.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); @@ -84,8 +136,129 @@ namespace SettleAccount.Job.Services.Report List _lsExport = new List(); _ls = _ls.OrderBy(p => p.ChassisNumber).ThenBy(p => p.SapMaterialCode).ToList(); - _outputService.Export(id, _first, _ls); + + + + + var _lsSum= _ls.GroupBy(p => new { p.SapMaterialCode, p.MaterialCode, p.MaterialDesc, p.MaterialGroup }) + .Select(p => + new SumSettleDiffList + { + SapMaterialCode = p.Key.SapMaterialCode, + MaterialCode = p.Key.MaterialCode, + MaterialDesc = p.Key.MaterialDesc, + MaterialGroup = p.Key.MaterialGroup, + Qty = p.Sum(p => p.Qty), + UnSettleQty = p.Sum(p => p.UNSettleQty), + DiffQty = p.Sum(p => p.DiffQty), + DiffAmt=p.Sum(p=>p.DiffAmt) + }) ; + + var _ls1= ExportList(p_list); + + var _lsSum1= _ls1.GroupBy(p => new { p.SapMaterialCode, p.MaterialCode, p.MaterialDesc, p.MaterialGroup }) + .Select(p => + new SumSettleDiffList + { + SapMaterialCode = p.Key.SapMaterialCode, + MaterialCode = p.Key.MaterialCode, + MaterialDesc = p.Key.MaterialDesc, + MaterialGroup = p.Key.MaterialGroup, + Qty = p.Sum(p => p.Qty), + UnSettleQty = p.Sum(p => p.UnSettleQty), + DiffQty = p.Sum(p => p.DiffQty), + DiffAmt = p.Sum(p => p.DiffAMT) + }); + + ExcelExporter _exporter = new ExcelExporter();//导出Excel + var result = _exporter.Append(_ls, "R3大众未结对比系统未结") + .SeparateBySheet() + .Append(_ls1.ToList(),"系统未结对比R3大众未结") + .SeparateBySheet() + .Append(_lsSum.ToList(), "大众R3未结对比结算系统差异汇总") + .SeparateBySheet() + .Append(_lsSum1.ToList(),"结算系统对比大众R3未结差异汇总") + .ExportAppendDataAsByteArray(); + result.ShouldNotBeNull(); + _fileContainer.SaveAsync(string.Format("大众准时化未结差异比对表_{0}.xlsx", Guid.NewGuid().ToString()), result.Result, true); + + + + + + return id.ToString(); } + + public List ExportList( List p_list) + { + + + + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + var materialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; + var begin = p_list.Where(p => p.Name == "BeginTime").FirstOrDefault().Value; + var end = p_list.Where(p => p.Name == "EndTime").FirstOrDefault().Value; + var kenncode = p_list.Where(p => p.Name == "KennCode").FirstOrDefault().Value; + var chassisNumber = p_list.Where(p => p.Name == "ChassisNumber").FirstOrDefault().Value; + var materialGroup = p_list.Where(p => p.Name == "MaterialGroup").FirstOrDefault().Value; + var sapCode = p_list.Where(p => p.Name == "SapCode").FirstOrDefault().Value; + + + //var cp7begin = p_list.Where(p => p.Name == "CP7Begin").FirstOrDefault().Value; + //var cp7end = p_list.Where(p => p.Name == "CP7End").FirstOrDefault().Value; + + + var _list = _dapper1.GetDiffReport(DateTime.Now.Year.ToString(), begin, end, string.Empty, version, materialCode, 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 = _erpdapperRepository.GetSapList(_ls, version, false); + _lst.ForEach(p => + { + p.Qty = 1; + p.DiffAMT = p.Qty * p.Price; + p.DiffQty = 1; + } + ); + _list.AddRange(_lst); + if (!string.IsNullOrEmpty(materialGroup)) + { + var _groupList = materialGroup.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _list = _list.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); + } + } + if (!string.IsNullOrEmpty(kenncode)) + { + var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _list = _list.Where(p => _groupList.Contains(p.KENNCode)).ToList(); + } + } + if (!string.IsNullOrEmpty(chassisNumber)) + { + var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _list = _list.Where(p => _groupList.Contains(p.ChassisNumber)).ToList(); + } + } + if (!string.IsNullOrEmpty(sapCode)) + { + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList(); + } + } + _list = _list.OrderBy(p => p.ChassisNumber).ThenBy(p => p.SapMaterialCode).ThenBy(p => p.Flag).ToList(); + return _list; + + + } + + + } } 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 5a9b63d5..9729019e 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnsettledDetailReport.cs @@ -56,13 +56,16 @@ namespace SettleAccount.Job.Services.Report var _lst= _erpDapper.GetSapList(_ls, version, false); _lst.ForEach(p => { + p.Qty = 1; + p.DiffAMT = p.Qty * p.Price; + p.DiffQty = 1; } ); _list.AddRange(_lst); if (!string.IsNullOrEmpty(materialGroup)) { - var _groupList = materialGroup.Split(new char[] { ',' }).ToList(); + var _groupList = materialGroup.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _list = _list.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); @@ -70,7 +73,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(kenncode)) { - var _groupList = kenncode.Split(new char[] { ',' }).ToList(); + var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _list = _list.Where(p => _groupList.Contains(p.KENNCode)).ToList(); @@ -78,7 +81,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(chassisNumber)) { - var _groupList = chassisNumber.Split(new char[] { ',' }).ToList(); + var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _list = _list.Where(p => _groupList.Contains(p.ChassisNumber)).ToList(); @@ -86,7 +89,7 @@ namespace SettleAccount.Job.Services.Report } if (!string.IsNullOrEmpty(sapCode)) { - var _groupList = sapCode.Split(new char[] { ',' }).ToList(); + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); if (_groupList.Count() > 0) { _list = _list.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList();