From a5fde318f68e78e835b27c7fee037f610094f6fb Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 30 Mar 2022 14:33:21 +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 --- .../SettleKBWithCodeDapperReportRepository.cs | 179 +++++++++++++----- .../Report/WmsOutputSumDapperRepository.cs | 15 +- 2 files changed, 136 insertions(+), 58 deletions(-) diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleKBWithCodeDapperReportRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleKBWithCodeDapperReportRepository.cs index 34572747..37c692d0 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleKBWithCodeDapperReportRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettleKBWithCodeDapperReportRepository.cs @@ -43,51 +43,65 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report condition += string.Format(" and c.WMSActualGoodsDate<='{0}' ", endtime); } + 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 "; + string sqlString = "SELECT\n" + - " * ,\n" + - " ISNULL( temp1.InvoicePrice * Qty, 0 ) AS InvoiceMoney,--开票金额\n" + - " ISNULL( Price * WMSDeliveryQty, 0 ) AS Amount,--金额\n" + - " ISNULL( Price * Qty, 0 ) AS SettlePrice,--结算金额\n" + - " ( Price - InvoicePrice ) AS InvoiceDiffPrice,--单价差异\n" + - " ISNULL( Price * Qty - InvoicePrice * Qty, 0 ) AS SumDiffMoney,--总金额差异\n" + - " '' DeliveryOrderNo --出库单号\n" + - " \n" + - "FROM\n" + - " (\n" + - " SELECT\n" + - " row_number ( ) OVER ( ORDER BY b.EstimateTypeDesc ) AS RowId,\n" + - " c.WMSDeliveryNote,--交货单号\n" + - " CONVERT ( VARCHAR ( 100 ), c.WMSActualGoodsDate, 23 ) AS WMSActualGoodsDate,--实际发货日期年-月-日\n" + - " a.Kanban,--条码号\n" + - " b.MaterialCode SapMaterialCode,--厂内物料号\n" + - " b.MaterialDesc,--物料描述\n" + - " b.CustomerPartCode,--客户物料\n" + - " b.EstimateTypeDesc,--物料组(车型)\n" + - " c.WMSDeliveryQty,--交货数量\n" + - " ISNULL( a.Qty, 0 ) AS SettleNumber,--结算数量\n" + - " CONVERT ( VARCHAR ( 100 ), a.SettleDate, 23 ) SettleDate,--结算日期\n" + - " ISNULL( a.Qty, 0 ) AS Qty,--用于计算\n" + - " ( ISNULL( a.Qty, 0 ) - ISNULL( c.WMSDeliveryQty, 0 ) ) AS SettleWMSDiffQty,--结算与发货差异\n" + - " 0 AS SettleInvoiceDiffQty,--结算与开票差异\n" + - " ISNULL( a.Qty, 0 ) AS InvoiceDiffQty,--开票数量,默认0,后续拿算法动态算\n" + - " ISNULL( d.InvoicePrice, 0 ) InvoicePrice --开票单价\n" + - " \n" + - " FROM\n" + - " Set_KanBanSettle AS a\n" + - " LEFT JOIN Set_material AS b ON a.MaterialCode= b.CustomerPartCode\n" + - " LEFT JOIN Set_WMSKanBanSettle c ON a.Kanban= c.Kanban \n" + - " AND a.MaterialCode= c.MaterialCode\n" + - " LEFT JOIN ( SELECT SUM ( amt ) / SUM ( Qty ) InvoicePrice, MaterialCode FROM set_invoice WHERE version = '{0}' GROUP BY materialcode ) d ON a.MaterialCode= d.MaterialCode \n" + - " WHERE\n" + - " a.VERSION= '{0}' {1} \n" + - " ) TEMP1\n" + - " LEFT JOIN ( SELECT Price, --定价\n" + - " MaterialCode --厂内物料号\n" + - " FROM Set_PriceList WHERE version = ( SELECT MAX ( Version ) FROM Set_PriceList ) ) TEMP2 ON TEMP1.SapMaterialCode= TEMP2.MaterialCode \n" + - "WHERE\n" + - " 1 =1"; +" * ,\n" + +" ISNULL ( temp1.InvoicePrice * Qty, 0 ) AS InvoiceMoney,--开票金额\n" + +" ISNULL ( Price * WMSDeliveryQty, 0 ) AS Amount,--金额\n" + +" ISNULL ( Price * Qty, 0 ) AS SettlePrice,--结算金额\n" + +" ( Price - InvoicePrice ) AS InvoiceDiffPrice,--单价差异\n" + +" ISNULL ( Price * Qty - InvoicePrice * Qty, 0 ) AS SumDiffMoney,--总金额差异\n" + +" '' DeliveryOrderNo --出库单号\n" + +" \n" + +"FROM\n" + +" (\n" + +" SELECT ROW_NUMBER\n" + +" ( ) OVER ( ORDER BY b.EstimateTypeDesc ) AS RowId,\n" + +"--c.WMSDeliveryNote,--交货单号\n" + +"--CONVERT ( VARCHAR ( 100 ), c.WMSActualGoodsDate, 23 ) AS WMSActualGoodsDate,--实际发货日期年-月-日\n" + +" A.Kanban,--条码号\n" + +" b.MaterialCode SapMaterialCode,--厂内物料号\n" + +" b.MaterialDesc,--物料描述\n" + +" b.CustomerPartCode,--客户物料\n" + +" b.EstimateTypeDesc,--物料组(车型)\n" + +" C.WMSDeliveryQty,--交货数量\n" + +" ISNULL ( A.Qty, 0 ) AS SettleNumber,--结算数量\n" + +" CONVERT ( VARCHAR ( 100 ), A.SettleDate, 23 ) SettleDate,--结算日期\n" + +" ISNULL ( A.Qty, 0 ) AS Qty,--用于计算\n" + +" ( ISNULL ( A.Qty, 0 ) - ISNULL ( C.WMSDeliveryQty, 0 ) ) AS SettleWMSDiffQty,--结算与发货差异\n" + +" 0 AS SettleInvoiceDiffQty,--结算与开票差异\n" + +" ISNULL ( A.Qty, 0 ) AS InvoiceDiffQty,--开票数量,默认0,后续拿算法动态算\n" + +" ISNULL ( d.InvoicePrice, 0 ) InvoicePrice --开票单价\n" + +" \n" + +" FROM\n" + +" Set_KanBanSettle\n" + +" AS A LEFT JOIN Set_material AS b ON A.MaterialCode = b.CustomerPartCode\n" + +" LEFT JOIN (\n" + +"   SELECT\n" + +" ( temp1.Qty - ISNULL ( temp2.Qty, 0 ) ) WMSDeliveryQty,\n" + +" temp1.MaterialCode,\n" + +" temp1.Kanban \n" + +" FROM\n" + +" ( SELECT SUM ( Qty ) Qty, Kanban, MaterialCode FROM Set_KanBanSettle WHERE VERSION < '{0}' GROUP BY kanban, MaterialCode ) temp1\n" + +" INNER JOIN ( SELECT SUM ( WMSDeliveryQty ) Qty, KanBan, MaterialCode FROM Set_WMSKanBanSettle WHERE WMSActualGoodsDate < '{2}' GROUP BY KanBan, MaterialCode ) temp2 ON temp1.Kanban = temp2.KanBan \n" + +" AND temp1.MaterialCode = temp2.KanBan \n" + +" ) C ON A.Kanban = C.Kanban \n" + +" AND A.MaterialCode = C.MaterialCode\n" + +" LEFT JOIN ( SELECT SUM ( amt ) / SUM ( Qty ) InvoicePrice, MaterialCode FROM set_invoice WHERE VERSION = '{0}' GROUP BY materialcode ) d ON A.MaterialCode = d.MaterialCode \n" + +" WHERE\n" + +" A.VERSION = '{0}' {1}\n" + +" ) TEMP1\n" + +" LEFT JOIN ( SELECT Price, --定价\n" + +" MaterialCode --厂内物料号\n" + +" FROM Set_PriceList WHERE VERSION = ( SELECT MAX ( VERSION ) FROM Set_PriceList ) ) TEMP2 ON TEMP1.SapMaterialCode = TEMP2.MaterialCode \n" + +"WHERE\n" + +" 1 = 1;"; string addwhere = string.Empty; - string addSqlStr = string.Format(sqlString, version, condition); + string addSqlStr = string.Format(sqlString, version, condition,datetime); //if (!string.IsNullOrEmpty(kanBan)) //{ @@ -106,9 +120,86 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report // addwhere += string.Format(" AND EstimateTypeDesc LIKE '{0}%' ", estimateTypeDesc); //} + + + + + + + string _sql = string.Format(addSqlStr, addwhere); var _query = DbConnection.Query(_sql, null, null, true, 1200, null); - return _query.ToList(); + + + + + + var sql2 = "SELECT\n" + + " a.WmsBillNum,\n" + + " t1.MaterialCode MaterialCode,\n" + + " a.Kanban ,\n" + + " A.LastModificationTime WmsDate \n" + + "FROM\n" + + " Set_HQ_H_Kanban A\n" + + " INNER JOIN ( SELECT MaterialCode, Kanban FROM Set_HQ_H_Kanban GROUP BY MaterialCode, Kanban HAVING COUNT(*)> 1 ) B ON A.Kanban = B.Kanban \n" + + " AND A.MaterialCode = B.MaterialCode " + + " left join Set_material t1 on a.MaterialCode=t1.CustomerPartCode "; + + var listCompare = DbConnection.Query(sql2); + var _lst=_query.ToList(); + + + List _ls = new List(); + foreach (var itm in listCompare.ToList()) + { + var first = _ls.FirstOrDefault(p => p.Kanban == itm.Kanban && p.MaterialCode == itm.MaterialCode); + if (first != null) + { + if (!string.IsNullOrEmpty(itm.WmsDate)) + { + itm.WmsDate = DateTime.Parse(itm.WmsDate).ToShortDateString(); + } + + first.WmsBillNum += "," + itm.WmsBillNum; + first.WmsDate += "," + itm.WmsDate; + } + else + { + if (!string.IsNullOrEmpty(itm.WmsDate)) + { + itm.WmsDate = DateTime.Parse(itm.WmsDate).ToShortDateString(); + } + _ls.Add(itm); + } + + } + + + foreach (var itm1 in _lst) + { + var itm = _ls.FirstOrDefault(p => p.Kanban == itm1.Kanban && p.MaterialCode == itm1.MaterialCode); + if (itm != null) + { + itm1.WMSDeliveryNote = itm.WmsBillNum; + itm1.WMSActualGoodsDate = itm.WmsDate; + } + + + } + + return _lst; + + + + + + + + + + + + } diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs index 0b6f5007..74c1c02b 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs @@ -881,24 +881,11 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report - - - - - - - - - - - _sql = string.Format(_sql, version); + _sql = string.Format(_sql, version); var _query = DbConnection.Query(_sql, null, null, true, 1200, null); return _query.ToList(); - } - - public virtual List GetWmsSumReportList(string version, string state) {