From 87c34c4efea43d45218424c852829bd6c336f21e Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 27 Apr 2022 19:10:52 +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/UnSettle/UnSettleDetailReport.cs | 65 +++++ .../Report/UnSettleDiffDapperRepository.cs | 260 ++++++++---------- .../Report/UnSettledDetailDapperRepository.cs | 236 ++++++++++++++-- .../Report/UnSettleDiffExportService.cs | 68 ++--- .../Services/Report/UnSettledSumService.cs | 29 +- 5 files changed, 451 insertions(+), 207 deletions(-) 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 6fdcfb0c..f8a5e51a 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/UnSettle/UnSettleDetailReport.cs @@ -66,4 +66,69 @@ namespace Win.Sfs.SettleAccount.Entities.UnSettle } + + [ExcelExporter(MaxRowNumberOnASheet = 900000)] + public class UnSettleDetailReport1 : ReportDetailBase + { + + + [ExporterHeader(DisplayName = "交货单号 ")] + public override string WmsBillNum { set; get; } + [ExporterHeader(DisplayName = "实际发货日期 ")] + public new string CP5Time { set; get; } + [ExporterHeader(DisplayName = "KENN号")] + public override string KENNCode { set; get; } + [ExporterHeader(DisplayName = "底盘号")] + public override string ChassisNumber { set; get; } + [ExporterHeader(DisplayName = "交货状态", IsIgnore = true)] + public override string WmsState { set; get; } + [ExporterHeader(DisplayName = "物料号")] + public override string SapMaterialCode { set; get; } + [ExporterHeader(DisplayName = "物料描述 ")] + public override string MaterialDesc { set; get; } + [ExporterHeader(DisplayName = "客户物料 ")] + public override string MaterialCode { set; get; } + [ExporterHeader(DisplayName = "组件组物料 ")] + public override string ParentSapMaterialCode { set; get; } + [ExporterHeader(DisplayName = "组件组物料描述 ")] + public override string ParentMaterialDesc { set; get; } + [ExporterHeader(DisplayName = "物料组(车型) ")] + public override string MaterialGroup { set; get; } + [ExporterHeader(DisplayName = "定价 ")] + public override decimal Price { set; get; } + [ExporterHeader(DisplayName = "金额 ")] + public override decimal Amt { set; get; } + [ExporterHeader(DisplayName = "结算日期", IsIgnore = true)] + public override DateTime CP7Time { set; get; } + [ExporterHeader(DisplayName = "开票单价", IsIgnore = true)] + public override decimal InvoicePrice { set; get; } + [ExporterHeader(DisplayName = "结算平台未结数量 ")] + public decimal Qty { set; get; } + [ExporterHeader(DisplayName = "大众R3未结数量")] + public decimal UnSettleQty { set; get; } + [ExporterHeader(DisplayName = "差异金额")] + public decimal DiffAMT { set; get; } + + [ExporterHeader(DisplayName = "退货数量")] + public decimal ReturnQty { set; get; } + + [ExporterHeader(DisplayName = "差异数量")] + public decimal DiffQty { set; get; } + + [ExporterHeader(DisplayName = "漏结标识 ")] + public string Flag { set; get; } + [ExporterHeader(DisplayName = "漏结期间 ")] + public string UnSettleVersion { set; get; } + [ExporterHeader(DisplayName = "说明 ")] + public string Remark { set; get; } + + + } + + + + + + + } 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 028c68ce..ebd00a89 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 @@ -222,147 +222,6 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report -//" SELECT\n" + -//" t1.*,\n" + -//" isnull( t1.UNSettleQty, 0 ) * isnull( T2.Price, 0 ) AMT,\n" + -//" T2.Price,\n" + -//" Qty -(\n" + -//" ISNULL( UnSettleQty, 0 )) DiffQty \n" + -//"FROM\n" + -//" (\n" + -//" SELECT\n" + -//" a.MaterialCode,\n" + -//" a.KENNCode,\n" + -//" a.ChassisNumber,\n" + -//" a.qty UNSettleQty,\n" + -//" isnull( b.qty, 0 ) qty,\n" + -//" a.CP5A CP5Time,\n" + -//" c.MaterialCode SapMaterialCode,\n" + -//" c.MaterialDesc MaterialDesc,\n" + -//" c.EstimateTypeDesc MaterialGroup,\n" + -//" a.model Factory \n" + -//" FROM\n" + -//" Set_unsettle a\n" + -//" LEFT JOIN (\n" + -//" SELECT\n" + -//" ItemCode,\n" + -//" KENNCode,\n" + -//" ChassisNumber2,\n" + -//" sum( qty ) qty \n" + -//" FROM\n" + -//" Set_fis \n" + -//" WHERE\n" + -//" state = 0 \n" + -//" OR state = 4 \n" + -//" GROUP BY\n" + -//" ItemCode,\n" + -//" KENNCode,\n" + -//" ChassisNumber2,\n" + -//" Model \n" + -//" ) b ON a.ChassisNumber = b.ChassisNumber2 \n" + -//" AND a.MaterialCode = b.ItemCode \n" + -//" AND a.KENNCode = b.KENNCode\n" + -//" LEFT JOIN Set_material c ON a.MaterialCode = c.CustomerPartCode {0}\n" + -//" ) t1\n" + -//" LEFT JOIN (\n" + -//" SELECT\n" + -//" MaterialCode,\n" + -//" Price \n" + -//" FROM\n" + -//" Set_PriceList \n" + -//" WHERE\n" + -//" version = ( SELECT max( version ) FROM Set_PriceListVersion )) t2 ON t1.SapMaterialCode = t2.MaterialCode \n" + -//"WHERE\n" + -//" 1 = 1"; - - - - // string sql2 = - //" SELECT\n " + - //" t1.*,\n" + - //" t1.Qty * T2.Price AMT,\n" + - //" T2.Price,\n" + - //" Qty -(\n" + - //" ISNULL( UnSettleQty, 0 )) DiffQty,\n" + - //" Qty -(\n" + - //" ISNULL( UnSettleQty, 0 ))* isnull( t2.Price, 0 ) DiffPrice \n" + - //"FROM\n" + - //" (\n" + - //" SELECT\n" + - //" temp1.WMSState,\n" + - //" temp1.WMSBillNum,\n" + - //" temp1.MaterialCode,\n" + - //" temp1.KENNCode,\n" + - //" temp1.ChassisNumber2,\n" + - //" temp1.Qty,\n" + - //" temp1.ChassisNumber,\n" + - //" temp1.CP5Time,\n" + - //" temp1.UnSettleQty,\n" + - //" temp1.SapMaterialCode,\n" + - //" temp1.MaterialDesc,\n" + - //" temp1.MaterialGroup,\n" + - //" temp2.MaterialCode AS ParentSapMaterialCode,\n" + - //" temp2.MaterialDesc AS ParentMaterialDesc \n" + - //" FROM\n" + - //" (\n" + - //" SELECT\n" + - //" a.WMSState,\n" + - //" a.WMSBillNum,\n" + - //" a.MaterialCode,\n" + - //" a.KENNCode,\n" + - //" a.ChassisNumber2,\n" + - //" a.Qty,\n" + - //" a.ParentCode,\n" + - //" a.ChassisNumber,\n" + - //" a.CP5Time,\n" + - //" b.Qty AS UnSettleQty,\n" + - //" C.MaterialCode AS SapMaterialCode,\n" + - //" C.MaterialDesc,\n" + - //" C.EstimateTypeDesc AS MaterialGroup \n" + - //" FROM\n" + - //" (\n" + - //" SELECT\n" + - //" WMSState,\n" + - //" WMSBillNum,\n" + - //" ItemCode AS MaterialCode,\n" + - //" KENNCode,\n" + - //" ChassisNumber2,\n" + - //" SUM( Qty ) AS Qty,\n" + - //" ErpMaterialCode AS ParentCode,\n" + - //" ChassisNumber,\n" + - //" CP5Time \n" + - //" FROM\n" + - //" Set_fis \n" + - //" WHERE\n" + - //" ( State = 0 ) \n" + - //" GROUP BY\n" + - //" ItemCode,\n" + - //" KENNCode,\n" + - //" ChassisNumber2,\n" + - //" WMSState,\n" + - //" WMSBillNum,\n" + - //" ErpMaterialCode,\n" + - //" ChassisNumber,\n" + - //" CP5Time \n" + - //" ) AS a\n" + - //" LEFT OUTER JOIN Set_Unsettle AS b ON a.ChassisNumber2 = b.ChassisNumber \n" + - //" AND b.MaterialCode = a.MaterialCode \n" + - //" AND a.KENNCode = b.KENNCode\n" + - //" LEFT OUTER JOIN Set_material AS C ON a.MaterialCode = C.CustomerPartCode {0}\n" + - //" ) AS temp1\n" + - //" LEFT OUTER JOIN Set_material AS temp2 ON temp1.ParentCode = temp2.MaterialCode \n" + - //" ) t1\n" + - //" LEFT JOIN (\n" + - //" SELECT\n" + - //" MaterialCode,\n" + - //" Price \n" + - //" FROM\n" + - //" Set_PriceList \n" + - //" WHERE\n" + - //" version = ( SELECT max( version ) FROM Set_PriceListVersion )) t2 ON t1.SapMaterialCode = t2.MaterialCode"; - - - var _sql = string.Format(sql1, condition,version); @@ -371,5 +230,124 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report return _query.ToList(); } + + + + public virtual List GetDiffReport1(int type, string begin, string end, string materialCode, string kennCode, string chassisNumber, string version) + { + + string condition = " "; + + + //if (!string.IsNullOrEmpty(materialCode)) + //{ + // condition += string.Format(" and d.MaterialCode='{0}' ", materialCode); + //} + if (!string.IsNullOrEmpty(begin)) + { + condition += string.Format(" and BeginTime>='{0}' ", begin); + } + if (!string.IsNullOrEmpty(end)) + { + condition += string.Format(" and BeginTime<='{0}' ", end); + } + + //if (!string.IsNullOrEmpty(kennCode)) + //{ + // condition += string.Format(" and a.kenncode='{0}' ", kennCode); + //} + //if (!string.IsNullOrEmpty(chassisNumber)) + //{ + // condition += string.Format(" and a.chassisNumber='{0}' ", chassisNumber); + //} + string sql1 = + "SELECT\n" + +" t1.*,\n" + +" Round(isnull( t1.UNSettleQty, 0 ) * isnull( T2.Price, 0 ),2) AMT,\n" + +" T2.Price,\n" + +" Qty -(\n" + +" ISNULL( UnSettleQty, 0 )) DiffQty ,\n" + +" Round((Qty - (ISNULL(UnSettleQty, 0))) * isnull(T2.Price, 0),2) DiffAmt \n" + +"FROM\n" + +" (\n" + +" SELECT\n" + +" temp1.*,\n" + +" temp2.MaterialDesc ParentMaterialDesc \n" + +" FROM\n" + +" (\n" + +" SELECT\n" + +" a.MaterialCode,\n" + +" isnull( b.OrderBillNum, a.KENNCode ) KENNCode,\n" + +" isnull( b.ChassisNumber, a.ChassisNumber ) ChassisNumber,\n" + +" a.qty UNSettleQty,\n" + +" isnull( b.qty, 0 ) qty,\n" + +" a.CP5A CP5Time,\n" + +" c.MaterialCode SapMaterialCode,\n" + +" c.MaterialDesc MaterialDesc,\n" + +" c.EstimateTypeDesc MaterialGroup,\n" + +" a.model Factory,\n" + +" b.ErpMaterialCode ParentSapMaterialCode,\n" + +" b.WMSBillNum, \n" + +" a.UnsettledReason " + +" FROM\n" + +" (select * from Set_unsettle where Version='{1}') a\n" + +" LEFT JOIN (\n" + +" SELECT\n" + +" OrderBillNum,\n" + +" ChassisNumber,\n" + +" ItemCode,\n" + +" KENNCode,\n" + +" ChassisNumber2\n" + + +"STUFF((SELECT ',' + ErpMaterialCode FROM Set_fis subTitle WHERE KENNCode =tm1.KENNCode\n" + +"and ChassisNumber2=tm1.ChassisNumber2 and ItemCode=tm1.ItemCode FOR XML PATH('')),1, 1, '') AS ErpMaterialCode,\n" + +"STUFF((SELECT ',' + WMSBillNum FROM Set_fis subTitle WHERE KENNCode =tm1.KENNCode\n" + +"and ChassisNumber2=tm1.ChassisNumber2 and ItemCode=tm1.ItemCode FOR XML PATH('')),1, 1, '') AS WMSBillNum,\n"+ + + + + + +" sum( qty ) qty \n" + +" FROM\n" + +" Set_fis tm1\n" + +" WHERE\n" + +" ( state = 0 \n" + +" OR state = 4) {0} \n" + +" GROUP BY\n" + +" ItemCode,\n" + +" KENNCode,\n" + +" ChassisNumber2,\n" + +" OrderBillNum,\n" + +" ChassisNumber,\n" + + +" ) b ON a.ChassisNumber = b.ChassisNumber2 \n" + +" AND a.MaterialCode = b.ItemCode \n" + +" AND a.KENNCode = b.KENNCode\n" + +" LEFT JOIN Set_material c ON a.MaterialCode = c.CustomerPartCode \n" + +" ) temp1\n" + +" LEFT JOIN (select max(Id) Id,MaterialCode,MaterialDesc from Set_material group by MaterialCode,MaterialDesc) temp2 ON SUBSTRING(temp1.ParentSapMaterialCode,1,8) = temp2.MaterialCode \n" + +" ) t1\n" + +" LEFT JOIN (\n" + +" SELECT\n" + +" MaterialCode,\n" + +" Price \n" + +" FROM\n" + +" Set_PriceList \n" + +" WHERE\n" + +" version = ( SELECT max( version ) FROM Set_PriceListVersion )) t2 ON t1.SapMaterialCode = t2.MaterialCode \n" + +"WHERE\n" + +" 1 = 1"; + + var _sql = string.Format(sql1, condition, version); + + + + var _query = DbConnection.Query(_sql); + return _query.ToList(); + + } + + } } 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 6f67e218..4f162e39 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 @@ -48,23 +48,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report { str += string.Format(" and beginTime<='{0}' ", end); } - //if (!string.IsNullOrEmpty(materialCode)) - //{ - // str += string.Format(" and ItemCode='{0}' ", materialCode); - //} - //string str2 = " "; - //if (!string.IsNullOrEmpty(sapCode)) - //{ - // str2 += string.Format(" and b.MaterialCode='{0}' ", sapCode); - //} - //if (!string.IsNullOrEmpty(materialGroup)) - //{ - // str += string.Format(" and MaterialGroup='{0}' ", materialGroup); - //} - //if (!string.IsNullOrEmpty(sapCode)) - //{ - // str += string.Format(" and SapCode='{0}' ", materialGroup); - //} + var sqlString = " SELECT\n" + @@ -172,6 +156,224 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report return _list; } + + + public virtual List GetDiffReport1(string year, string begin, string end, string customcode, string version, string materialCode, string materialGroup, string sapCode) + { + + string str = " "; + if (!string.IsNullOrEmpty(begin)) + { + str += string.Format(" and beginTime>='{0}' ", begin); + } + if (!string.IsNullOrEmpty(end)) + { + str += string.Format(" and beginTime<='{0}' ", end); + } + + var sqlString = +"SELECT\n" + +"2 WMSState,\n" + +"temp1.WMSBillNum ,\n" + +"temp1.UnSettleVersion\t\t ,\n" + +"temp1.CP5Time\t\t\t\t ,\n" + +"temp1.MaterialCode\t\t\t ,\n" + +"temp1.ChassisNumber\t\t\t ,\n" + +"temp1.KENNCode\t\t\t\t ,\n" + +"temp1.chassisNumber2\t\t ,\n" + +"temp1.KENNCode2\t\t\t\t ,\n" + +"temp1.QTY\t\t\t\t\t ,\n" + +"temp1.ParentSapMaterialCode\t ,\n" + +"temp1.FLAG\t\t\t\t\t ,\n" + +"temp1.UnSettleQty\t\t\t ,\n" + +"temp1.MaterialGroup\t\t\t ,\n" + +"temp1.MaterialDesc\t\t\t ,\n" + +"temp1.ParentMaterialDesc\t ,\n" + +"temp1.SapMaterialCode\t\t ,\n" + +"temp2.Price,\n" + +"ISNULL( temp1.QTY, 0 )* ISNULL( temp2.Price, 0 ) AMT,\n" + +"Round(ISNULL( temp1.DiffQty, 0 )* ISNULL( temp2.Price, 0 ),2) DiffAMT\n" + +"FROM\n" + +"(\n" + +"SELECT\n" + +"A.*,\n" + +"Isnull(F.Qty, 0) UnSettleQty,\n" + +"B.EstimateTypeDesc MaterialGroup,\n" + +"B.MaterialDesc MaterialDesc,\n" + +"d.MaterialDesc ParentMaterialDesc,\n" + +"B.MaterialCode SapMaterialCode,\n" + +"A.Qty-Isnull(F.Qty,\n" + +"0) DiffQty\n" + +"FROM\n" + +"(\n" + +"select\n" + +"\n" + +"MaterialCode,\n" + +"ChassisNumber,\n" + +"KENNCode,\n" + +"ChassisNumber2,\n" + +"KENNCode KENNCode2,\n" + +"flag,\n" + +"\n" + +"STUFF((\n" + +"SELECT\n" + +"',' + ErpMaterialCode\n" + +"FROM\n" + +"Set_fis subTitle\n" + +"WHERE\n" + +"KENNCode = tm1.KENNCode2\n" + +"and ChassisNumber2 = tm1.ChassisNumber2\n" + +"and ItemCode = tm1.MaterialCode FOR XML PATH('')),\n" + +"1,\n" + +"1,\n" + +"'') AS ParentSapMaterialCode,\n" + +"STUFF((\n" + +"SELECT\n" + +"',' + WMSBillNum\n" + +"FROM\n" + +"Set_fis subTitle\n" + +"WHERE\n" + +"KENNCode = tm1.KENNCode2\n" + +"and ChassisNumber2 = tm1.ChassisNumber2\n" + +"and ItemCode = tm1.MaterialCode FOR XML PATH('')),\n" + +"1,\n" + +"1,\n" + +"'') AS WMSBillNum,\n" + +"STUFF((\n" + +"SELECT\n" + +"',' + cast(CP5Time as varchar(20))\n" + +"FROM\n" + +"Set_fis subTitle\n" + +"WHERE\n" + +"KENNCode = tm1.KENNCode2\n" + +"and ChassisNumber2 = tm1.ChassisNumber2\n" + +"and ItemCode = tm1.MaterialCode FOR XML PATH('')),\n" + +"1,\n" + +"1,\n" + +"'') AS CP5Time,\n" + +"STUFF((\n" + +"SELECT\n" + +"',' + UnSettleVersion\n" + +"FROM\n" + +"Set_fis subTitle\n" + +"WHERE\n" + +"KENNCode = tm1.KENNCode2\n" + +"and ChassisNumber2 = tm1.ChassisNumber2\n" + +"and ItemCode = tm1.MaterialCode FOR XML PATH('')),\n" + +"1,\n" + +"1,\n" + +"'') AS UnSettleVersion,\n" + +"sum(qty) qty\n" + +"from\n" + +"\n" + +"(\n" + +"SELECT\n" + +"WMSState,\n" + +"WMSBillNum,\n" + +"UnSettleVersion,\n" + +"BeginTime CP5Time,\n" + +"ItemCode MaterialCode,\n" + +"ChassisNumber,\n" + +"OrderBillNum KENNCode,\n" + +"ChassisNumber2,\n" + +"KENNCode KENNCode2,\n" + +"QTY,\n" + +"ErpMaterialCode ,\n" + +"'' FLAG\n" + +"FROM\n" + +"Set_fis\n" + +"where\n" + +"1 = 1\n" + +"AND STATE = 0\n" + +"UNION ALL\n" + +"SELECT\n" + +"\n" + +"WMSState,\n" + +"WMSBillNum,\n" + +"UnSettleVersion,\n" + +"BeginTime CP5Time,\n" + +"ItemCode MaterialCode,\n" + +"ChassisNumber,\n" + +"OrderBillNum KENNCode,\n" + +"ChassisNumber2,\n" + +"KENNCode KENNCode2,\n" + +"QTY,\n" + +"ErpMaterialCode ,\n" + +"'L' FLAG\n" + +"FROM\n" + +"Set_fis\n" + +"WHERE\n" + +"1 = 1\n" + +"AND STATE = 4\n" + +")\n" + +"tm1\n" + +"GROUP BY\n" + +"MaterialCode,\n" + +"KENNCode2,\n" + +"ChassisNumber2,\n" + +"KENNCode,\n" + +"ChassisNumber,\n" + +"FLAG\n" + +") A\n" + +"left join (\n" + +"select\n" + +"*\n" + +"from\n" + +"Set_Unsettle\n" + +"where\n" + +"version = '{1}') f\n" + +"on\n" + +"a.MaterialCode = f.MaterialCode\n" + +"and a.KENNCode2 = f.KENNCode\n" + +"and a.ChassisNumber2 = f.ChassisNumber\n" + +"LEFT JOIN Set_material B ON\n" + +"a.MaterialCode = b.CustomerPartCode\n" + +"LEFT JOIN (\n" + +"select\n" + +"max(Id) Id,\n" + +"MaterialCode,\n" + +"MaterialDesc\n" + +"from\n" + +"Set_material\n" + +"group by\n" + +"MaterialCode,\n" + +"MaterialDesc) d ON\n" + +"a.ParentSapMaterialCode = d.MaterialCode\n" + +") temp1\n" + +"LEFT JOIN (\n" + +"SELECT\n" + +"Price,\n" + +"MaterialCode\n" + +"FROM\n" + +"Set_PriceList\n" + +"WHERE\n" + +"version = (\n" + +"SELECT\n" + +"Max(Version)\n" + +"FROM\n" + +"Set_PriceList ) ) temp2 ON\n" + +"temp1.SapMaterialCode = temp2.MaterialCode\n"; + + //var _materialList = DbConnection.Query("select * from set_material").ToList(); + //var _priceList = DbConnection.Query("select MaterialCode,Price from Set_PriceList where version=(select max(version) from set_Set_PriceListVersion)").ToList(); + + + string _sql = string.Format(sqlString, str, version); + ; + var _query = DbConnection.Query(_sql); + + + var _list = _query.ToList(); + + //_list= _list.Where(p => p.SapMaterialCode == sapCode).ToList(); + + + + + return _list; + } + + /// /// 漏结 /// 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 48adf8d3..4550157a 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs @@ -81,17 +81,17 @@ namespace SettleAccount.Job.Services.Report var _first = exportName.FirstOrDefault(); var _ls = new List(); - _ls = _dapper.GetDiffReport(0,begin,end, materialCode,kenncode,chassisNumber,version); + _ls = _dapper.GetDiffReport1(0,begin,end, materialCode,kenncode,chassisNumber,version); - foreach (var itm in _ls) - { - if (itm.KENNCode.Length > 8) - { - itm.UNSettleQty = 1; - itm.DiffQty = 0; - itm.DiffAmt = 0; - } - } + //foreach (var itm in _ls) + //{ + // if (itm.KENNCode.Length > 8) + // { + // itm.UNSettleQty = 1; + // itm.DiffQty = 0; + // itm.DiffAmt = 0; + // } + //} var _list = _ls.Where(p => p.ParentSapMaterialCode != p.SapMaterialCode && !string.IsNullOrEmpty(p.ParentSapMaterialCode)).GroupBy(p => new { p.ParentSapMaterialCode, p.ChassisNumber, p.KENNCode }) @@ -218,21 +218,7 @@ namespace SettleAccount.Job.Services.Report DiffAmt = p.Sum(p => p.DiffAMT) }); - //var lst2 = LJ(id, exportName, p_list); - - //_lsSum2= lst2.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) - // }); + if (_ls1.Count() > 900000) { @@ -328,7 +314,7 @@ namespace SettleAccount.Job.Services.Report return id.ToString(); } - public List ExportList( List p_list) + public List ExportList( List p_list) { var version = p_list.Where(p => p.Name == "Version").FirstOrDefault().Value; @@ -341,23 +327,23 @@ namespace SettleAccount.Job.Services.Report 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 _list = _dapper1.GetDiffReport1(DateTime.Now.Year.ToString(), begin, end, string.Empty, version, materialCode, materialGroup, sapCode); - foreach (var itm in _list) - { - if (itm.UnSettleQty > 0) - { - itm.UnSettleQty = 1; - } - itm.DiffQty = itm.Qty - itm.UnSettleQty; - if (itm.DiffQty == 0) - { - itm.DiffAMT = 0; - } - } + //foreach (var itm in _list) + //{ + // if (itm.UnSettleQty > 0) + // { + // itm.UnSettleQty = 1; + // } + // itm.DiffQty = itm.Qty - itm.UnSettleQty; + // if (itm.DiffQty == 0) + // { + // itm.DiffAMT = 0; + // } + //} - 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 _ls = _list.Where(p => p.Flag != "L" && !p.ParentSapMaterialCode.Contains(",")).Where(p => p.ParentSapMaterialCode != p.SapMaterialCode).GroupBy(p => new { p.KENNCode, p.ChassisNumber, p.ParentSapMaterialCode }).Select(p => p.FirstOrDefault()).ToList(); var _compareLs = _ls.Where(p => p.DiffQty == 0).Select(p => new { p.ChassisNumber, p.KENNCode, p.ParentSapMaterialCode }); var rangeList = _erpdapperRepository.GetSapList(_ls, version, false); var query = from itm1 in rangeList @@ -366,7 +352,7 @@ namespace SettleAccount.Job.Services.Report new { itm2.ParentSapMaterialCode, itm2.KENNCode, itm2.ChassisNumber } into temp1 from tm1 in temp1.DefaultIfEmpty() - select new UnSettleDetailReport + select new UnSettleDetailReport1 { WmsBillNum = itm1.WmsBillNum, CP5Time = itm1.CP5Time, 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 17549ba3..47fba3e8 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettledSumService.cs @@ -73,6 +73,7 @@ namespace SettleAccount.Job.Services.Report [UnitOfWork(false)] public string ExportFile(Guid id, List exportName, List p_list) { + var _lsExport= GetReport(id,exportName,p_list); var _first = exportName.FirstOrDefault(); @@ -99,13 +100,13 @@ namespace SettleAccount.Job.Services.Report //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, end, "", version, materailCode, materialGroup, ""); + 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 => @@ -204,8 +205,11 @@ namespace SettleAccount.Job.Services.Report //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, end, iscontionversion); + var _ls = _kanbanDapper.GetKanbanReportList(version, begin, datetime, iscontionversion); //if (!string.IsNullOrEmpty(sapCode)) @@ -235,6 +239,7 @@ namespace SettleAccount.Job.Services.Report } + var kanbanList = _ls.GroupBy(p => new { p.SapCode, p.MaterialDesc, p.MaterialGroup, p.CustomerPartCode }) .Select(p => new UnSettledSum { @@ -275,8 +280,13 @@ namespace SettleAccount.Job.Services.Report //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 _ls = _hqkanbanDapper.GetReverseSettledDetailDiffReportList(version, materialCode, begin, end, materialGroup, iscontionversion); + //有发货无结算,单独拿出去,财务要求 + + 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(); @@ -313,9 +323,12 @@ namespace SettleAccount.Job.Services.Report 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, endTime); + var _ls = _sparepartdapper.GetReverseWithCodeSettleSparePartReportList("", version, sapCode, matialCode, beginTime, datetime); if (!string.IsNullOrEmpty(sapCode)) { var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList();