From 9973f3db2f1adf5ad547417e8b66f93240291a1b Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 1 Apr 2022 09:13:47 +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 | 148 ++++++++++-------- 1 file changed, 80 insertions(+), 68 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 ffb9910a..5d1e10a0 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 @@ -50,64 +50,76 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report - string sqlString= "SELECT\n" + -" * ,\n" + -" ISNULL ( temp1.InvoicePrice * temp1.Qty, 0 ) AS InvoiceMoney,--开票金额\n" + -" ISNULL ( Price * WMSDeliveryQty, 0 ) AS Amount,--金额\n" + -" ISNULL ( Price * temp1.Qty, 0 ) AS SettlePrice,--结算金额\n" + -" ( Price - InvoicePrice ) AS InvoiceDiffPrice,--单价差异\n" + -" ISNULL ( Price * temp1.Qty - InvoicePrice * temp1.Qty, 0 ) AS SumDiffMoney,--总金额差异\n" + -" '' DeliveryOrderNo,--出库单号\n" + -" ISNULL ( temp3.Qty, 0 ) ReturnQty,\n" + -" WMSDeliveryQty - ISNULL ( temp3.Qty, 0 ) RealQty \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" + -" (\n" + -" ( SELECT SUM ( WMSDeliveryQty ) Qty, KanBan, MaterialCode FROM Set_WMSKanBanSettle WHERE WMSActualGoodsDate < '{2}' GROUP BY KanBan, MaterialCode ) temp1\n" + -" LEFT JOIN ( SELECT SUM ( Qty ) Qty, Kanban, MaterialCode FROM Set_KanBanSettle WHERE VERSION < '{0}' GROUP BY kanban, MaterialCode ) temp2 ON temp1.Kanban = temp2.KanBan \n" + -" AND temp1.MaterialCode = temp2.KanBan \n" + -" ) \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 set_backQty temp3 ON temp1.Kanban = temp3.Code \n" + -" AND temp1.SapMaterialCode = temp3.MaterialCode\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"; - + string sqlString = "SELECT\n" + + " * ,\n" + + " temp5.WmsBillNum WMSDeliveryNote,--交货单号\n" + + " CONVERT ( VARCHAR ( 100 ), TEMP5.WmsDate, 23 ) AS WMSActualGoodsDate,\n" + + " ISNULL ( temp1.InvoicePrice * temp1.Qty, 0 ) AS InvoiceMoney,--开票金额\n" + + " ISNULL ( Price * WMSDeliveryQty, 0 ) AS Amount,--金额\n" + + " ISNULL ( Price * temp1.Qty, 0 ) AS SettlePrice,--结算金额\n" + + " ( Price - InvoicePrice ) AS InvoiceDiffPrice,--单价差异\n" + + " ISNULL ( Price * temp1.Qty - InvoicePrice * temp1.Qty, 0 ) AS SumDiffMoney,--总金额差异\n" + + " '' DeliveryOrderNo,--出库单号\n" + + " ISNULL ( temp3.Qty, 0 ) ReturnQty,\n" + + " WMSDeliveryQty - ISNULL ( temp3.Qty, 0 ) RealQty \n" + + "FROM\n" + + " (\n" + + " SELECT ROW_NUMBER\n" + + " ( ) OVER ( ORDER BY b.EstimateTypeDesc ) AS RowId,\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" + + " (\n" + + " ( SELECT SUM ( WMSDeliveryQty ) Qty, KanBan, MaterialCode FROM Set_WMSKanBanSettle WHERE WMSActualGoodsDate < '{2}' GROUP BY KanBan, MaterialCode ) temp1\n" + + " LEFT JOIN ( SELECT SUM ( Qty ) Qty, Kanban, MaterialCode FROM Set_KanBanSettle WHERE VERSION < '{0}' GROUP BY kanban, MaterialCode ) temp2 ON temp1.Kanban = temp2.KanBan \n" + + " AND temp1.MaterialCode = temp2.KanBan \n" + + " ) \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 set_backQty temp3 ON temp1.Kanban = temp3.Code\n" + + " LEFT JOIN (\n" + + " SELECT A\n" + + " .WMSActualGoodsDate WmsBillNum,\n" + + " t1.MaterialCode MaterialCode,\n" + + " A.Kanban,\n" + + " A.WMSActualGoodsDate WmsDate \n" + + " FROM\n" + + " Set_WMSKanBanSettle\n" + + " A INNER JOIN ( SELECT MaterialCode, Kanban FROM Set_WMSKanBanSettle GROUP BY MaterialCode, Kanban HAVING COUNT ( 1 ) = 1 ) B ON A.Kanban = B.Kanban \n" + + " AND A.MaterialCode = B.MaterialCode\n" + + " LEFT JOIN Set_material t1 ON A.MaterialCode = t1.CustomerPartCode \n" + + " ) temp5 ON temp1.SapMaterialCode = temp5.MaterialCode \n" + + " AND temp1.Kanban = temp5.Kanban \n" + + " AND temp1.SapMaterialCode = temp3.MaterialCode\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;"; @@ -200,16 +212,16 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report - 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 sql2 = "SELECT A\n" + +" .WMSActualGoodsDate WmsBillNum,\n" + +" t1.MaterialCode MaterialCode,\n" + +" A.Kanban,\n" + +" A.WMSActualGoodsDate WmsDate \n" + +" FROM\n" + +" Set_WMSKanBanSettle\n" + +" A INNER JOIN ( SELECT MaterialCode, Kanban FROM Set_WMSKanBanSettle GROUP BY MaterialCode, Kanban HAVING COUNT ( * ) > 1 ) B ON A.Kanban = B.Kanban \n" + +" AND A.MaterialCode = B.MaterialCode\n" + +" LEFT JOIN Set_material t1 ON A.MaterialCode = t1.CustomerPartCode"; var listCompare = DbConnection.Query(sql2); var _lst=_query.ToList();