From a4b7440f1fd05cb225a8f8548e196591be4e152d Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 17 Jun 2022 14:22:23 +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 --- .../Entities/WMS/WMSJitAppService.cs | 35 +- .../Entities/WMS/TaskList.cs | 3 + .../SettleAccount.Domain/Settings/Helper.cs | 21 + .../Report/ErpPartDapperRepository.cs | 79 ++- .../Services/Report/SyncFisService.cs | 450 ++++++++++++++++++ 5 files changed, 574 insertions(+), 14 deletions(-) create mode 100644 src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SyncFisService.cs diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WMSJitAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WMSJitAppService.cs index e8c553a9..46c81cf9 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WMSJitAppService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WMSJitAppService.cs @@ -47,6 +47,7 @@ using Win.Sfs.SettleAccount.Entities.WMS; using Win.Sfs.SettleAccount.Entities.Wms; using Win.Sfs.SettleAccount.Repository; using WY.NewJit.Extends.PaiGe.WMS; +using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; namespace Win.Sfs.SettleAccount.Entities.SettleAccounts { @@ -67,6 +68,10 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts private readonly ISettleAccountBranchEfCoreRepository _job; private readonly IExcelImportAppService _excelImportService; private readonly TaskJobService _service; + private readonly ErpPartDapperRepository _repository; + + + /// /// /// @@ -84,7 +89,10 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts WMSEfCoreRepository wmstbRespository, IDistributedCache cache, ISnowflakeIdGenerator snowflakeIdGenerator, - ICommonManager commonManager + ICommonManager commonManager, + + ErpPartDapperRepository repository + ) : base(cache, excelImportService, snowflakeIdGenerator, commonManager) { _job = job; @@ -93,6 +101,7 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts _wmsVersionRepository = wmsVersionRepository; _wmsefRespository = wmsefRespository; _excelImportService = excelImportService; + _repository = repository; } @@ -225,6 +234,21 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts var totalCount = await GetCountAsync(input); + + var _ls = _repository.GetDic("WmsJitOutPut"); + + + foreach (var itm in entities) + { + var _first = _ls.FirstOrDefault(p => p.BillNum == itm.BillNum); + if (_first != null) + { + itm.Extend = _first.OutputInfo; + + } + } + + return new PagedResultDto(totalCount, entities); } @@ -492,7 +516,6 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts //if (DateTime.Now.ToString("yyyyMM") != input.AccountDate.ToString("yyyyMM")) //{ // throw new BusinessException("8989", "填写过账日期应该为当月!"); - //} var sql = "DECLARE @return_value int\n" + @@ -541,14 +564,6 @@ namespace Win.Sfs.SettleAccount.Entities.SettleAccounts return true; } - - - - - - - - /// ///出库界面功能, 撤销核准出库 /// diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WMS/TaskList.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WMS/TaskList.cs index a36225c0..68898e25 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WMS/TaskList.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/WMS/TaskList.cs @@ -337,6 +337,9 @@ namespace Win.Sfs.SettleAccount.Entities.WMS public string Creator { set; get; } + public string Extend { set; get; } + + } diff --git a/src/Modules/SettleAccount/src/SettleAccount.Domain/Settings/Helper.cs b/src/Modules/SettleAccount/src/SettleAccount.Domain/Settings/Helper.cs index 3ef41a9a..b7f82070 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Domain/Settings/Helper.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Settings/Helper.cs @@ -17,6 +17,27 @@ using Win.Sfs.SettleAccount.Entities.ImportMap; namespace Win.Sfs.SettleAccount { + + + + + public class RepeatSubmit + { + public string ClassName { set; get; } + + public string ModthName { set; get; } + + + public DateTime SubmitDateTime{ set; get; } + } + + + //public static class SettleAccountHelper + //{ + // List<> + //} + + public class ExcelHelper { private IWorkbook _workbook; diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs index 734e49a4..1b7f7136 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs @@ -29,6 +29,15 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report } + public class OutputSumInfo + { + public string BillNum { set; get; } + public string OutputInfo { set; get; } + + + } + + /// /// 主数据Dapper表 @@ -55,11 +64,11 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report { List _materialList = new List(); List _priceList = new List(); - + _materialList = DbConnection.Query("select max(Id) ID,'' Factory,MaterialCode,MaterialDesc,EstimateTypeDesc,EstimateType from Set_material group by MaterialCode,MaterialDesc,EstimateTypeDesc,EstimateType ").ToList(); _priceList = DbConnection.Query("select Price SapPrice, MaterialCode SapErpPartCode from Set_PriceList where type='10' and version=(select max(version) from Set_PriceListVersion)").ToList(); - + List tmpList = new List(); if (isNotHistoryPart == true) { @@ -67,7 +76,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report var str = "select * from Set_ExistErpMaterialCodeDiff"; var _list = DbConnection.Query - (string.Format(str, version),null,null,true,1200).ToList(); + (string.Format(str, version), null, null, true, 1200).ToList(); @@ -165,7 +174,69 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report return _list.ToList(); } - + + public virtual List GetDic(string tableName) + { + /****** SSMS 的 SelectTopNRows 命令的脚本 ******/ + + var str = "select t1.BillNum,\n" + + "case when ISNULL(t1.[0],0)>0 then\n" + + "'未处理金额:'+cast(ISNULL(t1.[0],0) as varchar(50)) +'/行数:'+cast(ISNULL(t2.[0],0) as varchar(50))\n" + + "else '' end\n" + + "+\n" + + "' '\n" + + "+\n" + + "case when ISNULL(t1.[1],0)>0 then\n" + + "'申请金额:'+cast(ISNULL(t1.[1],0) as varchar(50)) +'/行数:'+cast(ISNULL(t2.[1],0) as varchar(50))\n" + + "else '' end\n" + + "+\n" + + "' '\n" + + "+\n" + + "case when ISNULL(t1.[2],0)>0 then\n" + + "'已出库金额:'+cast(ISNULL(t1.[2],0) as varchar(50)) +'/行数:'+cast(ISNULL(t2.[2],0) as varchar(50))\n" + + "else '' end\n" + + "+\n" + + "' '\n" + + "+\n" + + "case when ISNULL(t1.[3],0)>0 then\n" + + "'不能出库金额:'+cast(ISNULL(t1.[3],0) as varchar(50)) +'/行数:'+cast(ISNULL(t2.[3],0) as varchar(50))\n" + + "else '' end\n" + + "+\n" + + "' '\n" + + "+\n" + + "case when ISNULL(t1.[4],0)>0 then\n" + + "'取消出库金额:'+cast(ISNULL(t1.[4],0) as varchar(50)) +'/行数:'+cast(ISNULL(t2.[4],0) as varchar(50))\n" + + "else '' end\n" + + " OutPut \n" + + "from\n" + + "(select * from\n" + + "(SELECT\n" + + "BillNum,Amt,State\n" + + "FROM {0} ) a\n" + + "pivot\n" + + "(sum(amt) for state in ([0], [1], [2], [3], [4])) b ) t1\n" + + "inner join\n" + + "(\n" + + "select\n" + + "*\n" + + "from\n" + + "(\n" + + "SELECT\n" + + "BillNum,\n" + + "1 LineNumber,\n" + + "State\n" + + "FROM\n" + + "{0} ) a\n" + + "pivot\n" + + "(count(LineNumber) for state in ([0], [1], [2], [3], [4])) b\n" + + ") t2 on\n" + + "t1.BillNum = t2.BillNum\n"; + + var _list = DbConnection.Query(string.Format(str, tableName)); + return _list.ToList(); + + } + } diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SyncFisService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SyncFisService.cs new file mode 100644 index 00000000..45591e2b --- /dev/null +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/SyncFisService.cs @@ -0,0 +1,450 @@ +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 Volo.Abp.Uow; +using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report; + +namespace SettleAccount.Job.Services.Report +{ + + + public class SyncFisService : ITransientDependency, IExportJob + { + private readonly HQHSettledDetailDapperRepository _hqkanbanDapper; + private readonly KanbanUnSettledDapperRepository _kanbanDapper; + private readonly UnSettledDetailDapperRepository _dapper; + private readonly WmsDapperRepository _wmsDapper; + private readonly OutputService _outputService; + private readonly ErpPartDapperRepository _erpDapper; + private readonly SettleSparePartDapperReportRepository _sparepartdapper; + private readonly IBlobContainer _fileContainer; + public SyncFisService( + HQHSettledDetailDapperRepository hqkanbanDapper, + KanbanUnSettledDapperRepository kanbanDapper, + UnSettledDetailDapperRepository dapper, + OutputService outputService, + ErpPartDapperRepository erpDapper, + WmsDapperRepository wmsDapper, + SettleSparePartDapperReportRepository sparepartdapper, + IBlobContainer fileContainer + ) + { + _wmsDapper = wmsDapper; + _hqkanbanDapper = hqkanbanDapper; + _kanbanDapper = kanbanDapper; + _dapper = dapper; + _outputService = outputService; + _erpDapper = erpDapper; + _sparepartdapper = sparepartdapper; + _fileContainer = fileContainer; + } + [UnitOfWork(false)] + public string ExportFile(Guid id, List exportName, List p_list) + { + + var _lsExport= GetReport(id,exportName,p_list); + var _lsleft = GetLeftReport(id, exportName, p_list); + + + + + //ExcelExporter _exporter = new ExcelExporter();//导出Excel + //var result = _exporter.Append(_lsExport, "汇总核对表1") + ////.SeparateBySheet() + ////.Append(_lsleft, "汇总核对表2") + //.ExportAppendDataAsByteArray(); + + //result.ShouldNotBeNull(); + //_fileContainer.SaveAsync(String.Format("结算未结寄售核对表{0}.xlsx",Guid.NewGuid().ToString("N")), result.Result, true); + + + + var _first = exportName.FirstOrDefault(); + _outputService.Export(id, _first, _lsExport); + return id.ToString(); + + + } + + + + + + [UnitOfWork(false)] + public List GetFisSum(Guid id, List exportName, List p_list) + { + var _first = exportName.FirstOrDefault(); + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + + var materailCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; + var materialGroup = p_list.Where(p => p.Name == "MaterialGroup").FirstOrDefault().Value; + //var sapcode = p_list.Where(p => p.Name == "SapMaterialCode").FirstOrDefault().Value; + var begin = p_list.Where(p => p.Name == "Begin").FirstOrDefault().Value; + var end = p_list.Where(p => p.Name == "End").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 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 datestr = version.Substring(0, 4) + "-" + version.Substring(4, 2) + "-01"; + var date = DateTime.Parse(datestr).AddMonths(1).AddDays(-1); + var datetime = date.ToShortDateString() + " 23:59:59 "; + + var _list = _dapper.GetDiffReport(DateTime.Now.Year.ToString(), begin, datetime, "", version, materailCode, materialGroup, ""); + 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); + _list = _list.Where(p => p.SapMaterialCode == p.ParentSapMaterialCode).ToList(); + + + + if (!string.IsNullOrEmpty(materialGroup)) + { + var _groupList = materialGroup.Split(new char[] { ',' }).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(); + // } + //} + 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 _fislist =_list.GroupBy(p => new { p.SapMaterialCode, p.MaterialDesc, p.MaterialGroup, p.MaterialCode }) + .Select(p => new UnSettledSum + { + 库位 = "PLJS", + 版本 = version, + 物料号 = p.Key.SapMaterialCode, + //客户物料 = p.Key.MaterialCode, + 物料描述 = p.Key.MaterialDesc, + 物料组车型 = p.Key.MaterialGroup, + SAS未结明细汇总 = p.Sum(p => p.Qty).ToString() + + }).ToList(); + return _fislist; + } + + /// + /// 大众看板未结数据 + /// + /// + /// + /// + /// + public List GetKanbanSum(Guid id, List exportName, List p_list) + { + var _filename = exportName.FirstOrDefault(); + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + var begin = p_list.Where(p => p.Name == "Begin").FirstOrDefault().Value; + var end = p_list.Where(p => p.Name == "End").FirstOrDefault().Value; + var materailCode = p_list.Where(p => p.Name == "MaterialCode").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 iscontionversion = p_list.Where(p => p.Name == "IsContainVersion").FirstOrDefault().Value; + var iscontionversion = "1";//不分版本,全查 + + + + + //var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + //var customerCode = p_list.Where(p => p.Name == "CustomerCode").FirstOrDefault().Value; + //var materailCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; + //var materialGroup = p_list.Where(p => p.Name == "MaterialGroup").FirstOrDefault().Value; + //var sapcode = p_list.Where(p => p.Name == "SapMaterialCode").FirstOrDefault().Value; + //var begin = p_list.Where(p => p.Name == "Begin").FirstOrDefault().Value; + //var end = p_list.Where(p => p.Name == "End").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 sapCode = p_list.Where(p => p.Name == "SapCode").FirstOrDefault().Value; + var datestr = version.Substring(0, 4) + "-" + version.Substring(4, 2) + "-01"; + var date = DateTime.Parse(datestr).AddMonths(1).AddDays(-1); + var datetime = date.ToShortDateString() + " 23:59:59 "; + + var _ls = _kanbanDapper.GetKanbanReportList(version, begin, datetime, iscontionversion); + + + //if (!string.IsNullOrEmpty(sapCode)) + //{ + // var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); + // if (_groupList.Count() > 0) + // { + // _ls = _ls.Where(p => _groupList.Contains(p.SapCode)).ToList(); + // } + //} + + if (!string.IsNullOrEmpty(materailCode)) + { + var _groupList = materailCode.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _ls = _ls.Where(p => _groupList.Contains(p.CustomerPartCode)).ToList(); + } + } + if (!string.IsNullOrEmpty(materialGroup)) + { + var _groupList = materialGroup.Split(new char[] { ',' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList(); + } + } + + + //DiffQty 为实际发货数量=发货数量-结算数量-退货数量 财务要求 + var kanbanList = _ls.GroupBy(p => new { p.SapCode, p.MaterialDesc, p.MaterialGroup, p.CustomerPartCode }) + .Select(p => new UnSettledSum + { + 库位 = "PLJS", + 版本 = version, + 物料号 = p.Key.SapCode, + //客户物料 = p.Key.CustomerPartCode, + 物料描述 = p.Key.MaterialDesc, + 物料组车型 = p.Key.MaterialGroup, + SAS未结明细汇总 = p.Sum(p => p.DiffQty).ToString() + + }).ToList(); + + + + return kanbanList; + } + + + /// + /// 红旗看板未结明细 + /// + /// + /// + /// + /// + public List GetHQKanbanSum(Guid id, List exportName, List p_list) + { + var _filename = exportName.FirstOrDefault(); + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + var materialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; + //var kanban = p_list.Where(p => p.Name == "Kanban").FirstOrDefault().Value; + var begin = p_list.Where(p => p.Name == "Begin").FirstOrDefault().Value; + var end = p_list.Where(p => p.Name == "End").FirstOrDefault().Value; + var materialGroup = p_list.Where(p => p.Name == "MaterialGroup").FirstOrDefault().Value; + //var acceptNo = p_list.Where(p => p.Name == "AcceptNo").FirstOrDefault().Value; + var sapCode = p_list.Where(p => p.Name == "SapCode").FirstOrDefault().Value; + //var warehouseDesc = p_list.Where(p => p.Name == "WarehouseDesc").FirstOrDefault().Value; + //var iscontionversion = p_list.Where(p => p.Name == "IsContainVersion").FirstOrDefault().Value; + var iscontionversion = "1";//不分区间,全查 + //有发货无结算,单独拿出去,财务要求 + + var datestr = version.Substring(0, 4) + "-" + version.Substring(4, 2) + "-01"; + var date = DateTime.Parse(datestr).AddMonths(1).AddDays(-1); + var datetime = date.ToShortDateString() + " 23:59:59 "; + + var _ls = _hqkanbanDapper.GetReverseSettledDetailDiffReportList(version, materialCode, begin, datetime, materialGroup, iscontionversion); + if (!string.IsNullOrEmpty(sapCode)) + { + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _ls = _ls.Where(p => _groupList.Contains(p.Sap编码)).ToList(); + } + } + + var kanbanList = _ls.GroupBy(p => new { p.Sap编码, p.零件中文名称, p.物料组, p.客户物料号 }) + .Select(p => new UnSettledSum + { + 库位="PLJS", + 版本=version, + 物料号 = p.Key.Sap编码, + //客户物料 = p.Key.客户物料号, + 物料描述 = p.Key.零件中文名称, + 物料组车型 = p.Key.物料组, + SAS未结明细汇总 = p.Sum(p => p.未结数量).ToString() + + }).ToList(); + + return kanbanList; + } + + /// + /// 大众备件未对 + /// + /// + /// + /// + /// + public List GetSparePartSum(Guid id, List exportName, List p_list) + { + var fileName = exportName.FirstOrDefault(); + //var purchaseOrderNo = p_list.Where(p => p.Name == "PurchaseOrderNo").FirstOrDefault().Value; + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + var sapCode = p_list.Where(p => p.Name == "SapCode").FirstOrDefault().Value; + var matialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; + var beginTime = p_list.Where(p => p.Name == "Begin").FirstOrDefault().Value; + var endTime = p_list.Where(p => p.Name == "End").FirstOrDefault().Value; + + var datestr = version.Substring(0, 4) + "-" + version.Substring(4, 2) + "-01"; + var date = DateTime.Parse(datestr).AddMonths(1).AddDays(-1); + var datetime = date.ToShortDateString() + " 23:59:59 "; + + //var _ls = _sparepartdapper.GetReverseWithCodeSettleSparePartReportList(purchaseOrderNo, version, sapCode, matialCode, beginTime, endTime); + var _ls = _sparepartdapper.GetReverseWithCodeSettleSparePartReportList("", version, sapCode, matialCode, beginTime, datetime); + if (!string.IsNullOrEmpty(sapCode)) + { + var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList(); + if (_groupList.Count() > 0) + { + _ls = _ls.Where(p => _groupList.Contains(p.SAP编码)).ToList(); + } + } + //说明 为实际发货数量=发货数量-结算数量-退货数量 财务要求 + var kanbanList = _ls.GroupBy(p => new { p.SAP编码, p.物料描述, p.物料代码 }) + .Select(p => new UnSettledSum + { + 库位 = "BJJS", + 版本 = version, + 物料号 = p.Key.SAP编码, + //客户物料 = p.Key.物料代码, + 物料描述 = p.Key.物料描述, + 物料组车型 = string.Empty, + SAS未结明细汇总 = p.Sum(p =>Convert.ToDecimal(p.实际发货数量)).ToString() + + }).ToList(); + + return kanbanList; + } + + + + + + public List GetReport(Guid id, List exportName, List p_list) + { + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + List _ls = new List(); + _ls.AddRange(GetFisSum(id, exportName, p_list)); + _ls.AddRange(GetHQKanbanSum(id, exportName, p_list)); + _ls.AddRange(GetKanbanSum(id, exportName, p_list)); + _ls.AddRange(GetSparePartSum(id, exportName, p_list));//大众备件未结 + + + + var _lst = _wmsDapper.GetSalesStockSum(version); + var query = from itm in _lst + join itm1 in _ls + on new { Version = itm.Version, PartCode = itm.PartCode.Trim(), LocCode= itm.LocCode.ToUpper()} equals new { Version = itm1.版本, PartCode = itm1.物料号.Trim(), LocCode = itm1.库位} +into temp + from tm in temp.DefaultIfEmpty() + select new UnSettledSum + { + + 版本 = itm.Version, + 物料号 = itm.PartCode, + 物料描述 = itm.PartDesc, + 物料组编码= itm.PartGroup, + 物料组车型 = itm.PartGroupDesc, + SAS未结明细汇总 = tm == null ? "0" : tm.SAS未结明细汇总, + WMS期初库存 = itm.StartQty.ToString(), + WMS期末库存 = itm.EndQty.ToString(), + 库位 = itm.LocCode, + 本月减少 = itm.OutQty.ToString(), + 本月增加 = itm.InQty.ToString(), + 差异= (itm.EndQty- decimal.Parse( tm == null ? "0" : tm.SAS未结明细汇总)).ToString() + + + }; + return query.ToList(); + } + + + public List GetLeftReport(Guid id, List exportName, List p_list) + { + var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; + List _ls = new List(); + _ls.AddRange(GetFisSum(id, exportName, p_list)); + _ls.AddRange(GetHQKanbanSum(id, exportName, p_list)); + _ls.AddRange(GetKanbanSum(id, exportName, p_list)); + _ls.AddRange(GetSparePartSum(id, exportName, p_list));//大众备件未结 + + + + var _lst = _wmsDapper.GetSalesStockSum(version); + var query = from itm in _ls + join itm1 in _lst + on new { Version = itm.版本, PartCode = itm.物料号.Trim(), LocCode = itm.库位 } equals + new { Version = itm1.Version, PartCode = itm1.PartCode.Trim(), LocCode = itm1.LocCode.ToUpper() } +into temp + from tm in temp.DefaultIfEmpty() + select new UnSettledSum + { + + 版本 = itm.版本, + 物料号 = itm.物料号, + 物料描述 = itm.物料号, + 物料组编码 = itm.物料组编码, + 物料组车型 = itm.物料组车型, + SAS未结明细汇总 = tm == null ? "0" : tm.EndQty.ToString(), + WMS期初库存 = tm == null ? "0" : tm.StartQty.ToString(), + WMS期末库存 = tm == null ? "0" : tm.EndQty.ToString(), + 库位 = itm.库位, + 本月减少 = tm == null ? "0" : tm.OutQty.ToString(), + 本月增加 = tm == null ? "0" : tm.InQty.ToString(), + 差异 = ((tm == null ? 0 : tm.EndQty) - decimal.Parse(tm == null ? "0" : itm.SAS未结明细汇总)).ToString() + + + }; + return query.ToList(); + } + + + + + + + } +}