diff --git a/Pilot.Report.Exploitation/ResultsKanbanSummary/ResultsKanbanSumReport.cs b/Pilot.Report.Exploitation/ResultsKanbanSummary/ResultsKanbanSumReport.cs index 53649f0..c3b2f36 100644 --- a/Pilot.Report.Exploitation/ResultsKanbanSummary/ResultsKanbanSumReport.cs +++ b/Pilot.Report.Exploitation/ResultsKanbanSummary/ResultsKanbanSumReport.cs @@ -76,28 +76,27 @@ namespace Pilot.Report.Exploitation.ResultsKanbanSummary //int year = 2011; //header.AddChild("ID", new LocaleValue("序号"), SqlStorageType.Sqlvarchar); - header.AddChild("DetailArea", new LocaleValue("明细区域"), SqlStorageType.Sqlvarchar); - header.AddChild("Salesperson", new LocaleValue("销售员"), SqlStorageType.Sqlvarchar); - header.AddChild("FPERFORMANCETARGETS", new LocaleValue(""+year+"年业绩目标(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024Pilot", new LocaleValue(""+year+ "派诺业绩(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024SiNO", new LocaleValue(""+year+ "兴诺业绩(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024WuHanPilot", new LocaleValue(""+year+ "武汉派诺(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024Discovery", new LocaleValue(""+year+ "碳索业绩(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024HongKongPilot", new LocaleValue(""+year+ "香港派诺业绩(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024HuaXiaYunLian", new LocaleValue(""+year+ "华夏云联业绩(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("UsualAlterAmount", new LocaleValue("往年订单变更金额(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("2024SumAmount", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("SumAmount2024", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("AttainmentRate", new LocaleValue("达标率"), SqlStorageType.Sqlvarchar); - header.AddChild("2023SumAmount", new LocaleValue(""+(year-1)+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("SameGrowthRate", new LocaleValue("同比增长率"), SqlStorageType.Sqlvarchar); - header.AddChild("FPAYMENTSUM", new LocaleValue(""+year+"回款目标(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("Payment", new LocaleValue("回款额(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("PaymentRate", new LocaleValue("回款率"), SqlStorageType.Sqlvarchar); - header.AddChild("ShippedReceivables", new LocaleValue("已发货应收款(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("ExpiredReceivables", new LocaleValue("已到期应收款(万元)"), SqlStorageType.SqlDecimal); - header.AddChild("Area", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar); - + header.AddChild("SBU", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar); + header.AddChild("明细区域", new LocaleValue("明细区域"), SqlStorageType.Sqlvarchar); + header.AddChild("销售员", new LocaleValue("销售员"), SqlStorageType.Sqlvarchar); + header.AddChild("本年业绩目标_万元", new LocaleValue(""+year+"年业绩目标(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年派诺业绩_万元", new LocaleValue(""+year+ "派诺业绩(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年兴诺业绩_万元", new LocaleValue(""+year+ "兴诺业绩(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年武汉派诺_万元", new LocaleValue(""+year+ "武汉派诺(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年碳索业绩_万元", new LocaleValue(""+year+ "碳索业绩(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年香港派诺业绩_万元", new LocaleValue(""+year+ "香港派诺业绩(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年华夏云联业绩_万元", new LocaleValue(""+year+ "华夏云联业绩(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("往年订单变更金额_万元", new LocaleValue("往年订单变更金额(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("本年业绩合计_万元", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("达标率", new LocaleValue("达标率"), SqlStorageType.Sqlvarchar); + header.AddChild("去年合计业绩额_万元", new LocaleValue(""+(year-1)+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("同比增长率", new LocaleValue("同比增长率"), SqlStorageType.Sqlvarchar); + header.AddChild("本年回款目标_万元", new LocaleValue(""+year+"回款目标(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("回款额_万元", new LocaleValue("回款额(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("回款率", new LocaleValue("回款率"), SqlStorageType.Sqlvarchar); + header.AddChild("已发货应收款_万元", new LocaleValue("已发货应收款(万元)"), SqlStorageType.SqlDecimal); + header.AddChild("已到期应收款_万元", new LocaleValue("已到期应收款(万元)"), SqlStorageType.SqlDecimal); + foreach (var item in header.GetChilds()) { item.Width = 160; @@ -127,596 +126,23 @@ namespace Pilot.Report.Exploitation.ResultsKanbanSummary var organization = organizationList == null ? "" : (string.Join(",", organizationList)); // 开始日期 - string fStrartDate = customFilter["FStrartDate"]?.ToString(); + string fStrartDate = customFilter["FSDate"]?.ToString(); // 结束日期 - string fEndDate = customFilter["FEndDate"]?.ToString(); - - // 审核开始日期 - string fSDate = customFilter["FSDate"]?.ToString(); - - // 审核结束日期 - string fEDate = customFilter["FEDate"]?.ToString(); - - // 下单时间 - string fDate = customFilter["F_Date"]?.ToString(); - - int year = Convert.ToInt32(fDate.Split('-')[0]); + string fEndDate = customFilter["FEDate"]?.ToString(); base.BuilderReportSqlAndTempTable(filter, tableName); - string sql = string.Format(@"/*dialect*/ - Select - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.区域,'') ELSE ISNULL(A2.区域,'') END as 'Area', - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.明细区域,'') ELSE ISNULL(A2.明细区域,'') END as 'DetailArea', - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME ELSE W4.FNAME END as 'Salesperson', - ISNULL(E.FPERFORMANCETARGETS,0) as 'FPERFORMANCETARGETS', --> 2024年业绩目标(万元) - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024Pilot', -->2024派诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024SiNO', -->2024兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024WuHanPilot', -->2024武汉兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024Discovery', -->2024碳索 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024HongKongPilot', -->2024香港兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024HuaXiaYunLian', -->2024华夏云联 - CASE WHEN YEAR(D.FApproveDate) < {0} AND D.FSalerId = D.FSALERID - THEN - ISNULL(((SELECT - CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice - From T_SCM_BILLCHANGEVERSIONS - WHere FVERSION = - ( - Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS - WHERE - FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO - ) - AND FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO) - - - (SELECT - CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice - From T_SCM_BILLCHANGEVERSIONS - WHere FVERSION = - ( - Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS - WHERE - FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO - ) - AND FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO))/10000,0) - ELSE 0 - END as 'UsualAlterAmount', --> 往年订单变更金额(派诺&子公司合计) - CASE WHEN YEAR(D.FApproveDate) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024SumAmount', -->2024合计业绩额 - CASE WHEN YEAR(D.FApproveDate) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {1} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2023SumAmount', -->2023合计业绩额 - ISNULL(E.FPAYMENTSUM,0) as 'FPAYMENTSUM', -->回款目标(万元) - ISNULL(F.FALLAMOUNT,0)/10000 as 'Payment', --> 回款额(派诺&子公司合计) - (round( (DD.FBILLALLAMOUNT_LC-(isnull(ae.累计收款,0)))*isnull(W3.FSHARERATE,100)/100,2))- - (round( DD.FBILLALLAMOUNT_LC-ISNULL(Q.累计发货金额,0)*ISNULL(W3.FSHARERATE,100)/100,2)) - as 'ShippedReceivables', --> 已发货应收款 - ISNULL(XX.到期金额,0) as 'ExpiredReceivables', --> 已到期应收款 - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.区域,'') ELSE ISNULL(A2.区域,'') END as 'SBU' - INTO #TempTable1 - From - T_SAL_ORDER D --销售订单 - JOIN T_SAL_ORDERFIN DD on D.FID = DD.FID - LEFT JOIN - V_BD_SALESMAN_L W1 on W1.fid = D.FSALERID - LEFT JOIN - T_PerformanceSharing W2 on W2.FSOURCEBILLNO = D.FBILLNO - LEFT JOIN - T_PerformanceSharingEntry W3 on W2.FID = W3.FID - LEFT JOIN - V_BD_SALESMAN_L W4 on W3.FSALEID = W4.fid - LEFT JOIN - {2} A on W1.FNAME = A.名称 - LEFT JOIN - {2} A2 on W4.FNAME = A2.名称 - LEFT JOIN - ( - SELECT a.F_Papercontract, - avg(d.FCURWRITTENOFFAMOUNT) as '累计收款' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID - INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO - INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID - INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID - AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2' - WHERE - 1=1 - group by a.F_Papercontract - ) AE ON AE.F_Papercontract = D.F_contractnumber - LEFT JOIN - ( - SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_Papercontract - ) Q ON Q.F_PAPERCONTRACT = D.F_contractnumber --获取发货通知单最大的发货日期 - LEFT JOIN (Select FID,SUM(到期金额) as '到期金额' From View_Table_JXBB GROUP BY FID) XX on XX.FID = D.FID - LEFT JOIN - (Select - A1.F_MBBA_COMBO_QTR as 'FDate', - A2.FPERFORMANCETARGETS as 'FPERFORMANCETARGETS', - A2.FPAYMENTSUM as 'FPAYMENTSUM', - A2.FNAME as 'FNAME' - From - MBBA_t_Cust100002 A1 - JOIN - MBBA_t_Cust_Entry100003 A2 - on A1.FID = A2.FID - Where A1.FDOCUMENTSTATUS = 'C' - AND A1.F_MBBA_Combo_qtr = {0}) E --业绩回款目标单 - on E.FNAME = D.FSALERID - LEFT JOIN - (Select - a1.FORDERNUMBER, - SUM(a1.FALLAMOUNT) as 'FALLAMOUNT' - From - T_AR_RECEIVABLEENTRY a1 - JOIN - T_AR_RECEIVABLE a2 - on a1.FID = a2.FID - Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1 - GROUP BY a1.FORDERNUMBER) F --求回款的表 - on D.FBILLNO = F.FORDERNUMBER - LEFT JOIN - (Select - a1.FORDERNUMBER, - SUM(a1.FALLAMOUNT) as 'FALLAMOUNT' - From - T_AR_RECEIVABLEENTRY a1 - JOIN - T_AR_RECEIVABLE a2 - on a1.FID = a2.FID - Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1 - AND a2.FENDDATE < GETDATE() - GROUP BY a1.FORDERNUMBER) G - on D.FBILLNO = G.FORDERNUMBER - LEFT JOIN - T_BD_CUSTOMER_L K on K.FCUSTID = D.FCUSTID - LEFT JOIN - (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY - Where FID = '670cc977263353' - AND FDocumentStatus = 'C' - AND FForbidStatus = 'A') D2 --合同类型#(辅助资料表) - on D.F_ORDERCATEGORY = D2.FMASTERID - -- 条件 - Where D.FDocumentStatus = 'C' --AND D.FID in (Select * From #TABLEXYX) - AND D2.FNUMBER != 'Z' AND D.FSALEORGID = 100302 - AND ISNULL(A.区域,'') != '碳索智控' AND D.FMANUALCLOSE != '1' - AND ISNULL(K.FNAME,'') NOT IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司') - AND ISNULL(W1.FNAME,'') != '兴诺总'", year,year-1,tableNameView); - - if (!string.IsNullOrEmpty(salespersonString)) - { - sql += string.Format(@" AND B.FSALEID in ({0})", salespersonString); - } - if (!string.IsNullOrEmpty(organization)) - { - sql += string.Format(@" AND D.FSaleOrgId in ({0})", organization); - } - if (!string.IsNullOrEmpty(fStrartDate)) - { - sql += string.Format(@" AND D.FApproveDate >= '{0}'", fStrartDate); - } - if (!string.IsNullOrEmpty(fEndDate)) - { - sql += string.Format(@" AND D.FApproveDate <= '{0}'", fEndDate); - } - if (!string.IsNullOrEmpty(fSDate)) - { - sql += string.Format(@" AND D.FAPPROVEDATE >= '{0}'", fSDate); - } - if (!string.IsNullOrEmpty(fEDate)) - { - sql += string.Format(@" AND D.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, '{0}'))", fEDate); - } - - sql += string.Format(@";"); - - sql += string.Format(@"/*dialect*/ - Select - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.区域,'') ELSE ISNULL(A2.区域,'') END as 'Area', - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.明细区域,'') ELSE ISNULL(A2.明细区域,'') END as 'DetailArea', - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME ELSE W4.FNAME END as 'Salesperson', - ISNULL(E.FPERFORMANCETARGETS,0) as 'FPERFORMANCETARGETS', --> 2024年业绩目标(万元) - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024Pilot', -->2024派诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024SiNO', -->2024兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024WuHanPilot', -->2024武汉兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024Discovery', -->2024碳索 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024HongKongPilot', -->2024香港兴诺 - CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024HuaXiaYunLian', -->2024华夏云联 - CASE WHEN YEAR(D.FApproveDate) < {0} AND D.FSalerId = D.FSALERID - THEN - ISNULL(((SELECT - CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice - From T_SCM_BILLCHANGEVERSIONS - WHere FVERSION = - ( - Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS - WHERE - FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO - ) - AND FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO) - - - (SELECT - CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice - From T_SCM_BILLCHANGEVERSIONS - WHere FVERSION = - ( - Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS - WHERE - FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO - ) - AND FFORMID = 'SAL_SaleOrder' - AND FBILLNO = D.FBILLNO))/10000,0) - ELSE 0 - END as 'UsualAlterAmount', --> 往年订单变更金额(派诺&子公司合计) - CASE WHEN YEAR(D.FApproveDate) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2024SumAmount', -->2024合计业绩额 - CASE WHEN YEAR(D.FApproveDate) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 - THEN ISNULL(W3.FSHAREAMOUNT,0)/10000 - WHEN YEAR(D.FApproveDate) = {1} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000 - ELSE 0 - END as '2023SumAmount', -->2023合计业绩额 - ISNULL(E.FPAYMENTSUM,0) as 'FPAYMENTSUM', -->回款目标(万元) - ISNULL(F.FALLAMOUNT,0)/10000 as 'Payment', --> 回款额(派诺&子公司合计) - (round( (DD.FBILLALLAMOUNT_LC-(isnull(ae.累计收款,0)))*isnull(W3.FSHARERATE,100)/100,2))- - (round( DD.FBILLALLAMOUNT_LC-ISNULL(Q.累计发货金额,0)*ISNULL(W3.FSHARERATE,100)/100,2)) - as 'ShippedReceivables', --> 已发货应收款 - ISNULL(XX.到期金额,0) as 'ExpiredReceivables', --> 已到期应收款 - CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.区域,'') ELSE ISNULL(A2.区域,'') END as 'SBU' - INTO #TempTable2 - From - T_SAL_ORDER D --销售订单 - JOIN T_SAL_ORDERFIN DD on D.FID = DD.FID - LEFT JOIN - V_BD_SALESMAN_L W1 on W1.fid = D.FSALERID - LEFT JOIN - T_PerformanceSharing W2 on W2.FSOURCEBILLNO = D.FBILLNO - LEFT JOIN - T_PerformanceSharingEntry W3 on W2.FID = W3.FID - LEFT JOIN - V_BD_SALESMAN_L W4 on W3.FSALEID = W4.fid - LEFT JOIN - {2} A on W1.FNAME = A.名称 - LEFT JOIN - {2} A2 on W4.FNAME = A2.名称 - LEFT JOIN - ( - SELECT a.F_Papercontract, - avg(d.FCURWRITTENOFFAMOUNT) as '累计收款' - FROM t_AR_receivable A - INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID - INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO - INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID - INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID - AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2' - WHERE - 1=1 - group by a.F_Papercontract - ) AE ON AE.F_Papercontract = D.F_contractnumber - LEFT JOIN - ( - SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '发货日期',SUM(B.FBILLALLAMOUNT_LC) AS '累计发货金额' FROM T_SAL_DELIVERYNOTICE A - INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID - WHERE A.FDOCUMENTSTATUS= 'C' - GROUP BY A.F_Papercontract - ) Q ON Q.F_PAPERCONTRACT = D.F_contractnumber --获取发货通知单最大的发货日期 - LEFT JOIN (Select FID,SUM(到期金额) as '到期金额' From View_Table_JXBB GROUP BY FID) XX on XX.FID = D.FID - LEFT JOIN - (Select - A1.F_MBBA_COMBO_QTR as 'FDate', - A2.FPERFORMANCETARGETS as 'FPERFORMANCETARGETS', - A2.FPAYMENTSUM as 'FPAYMENTSUM', - A2.FNAME as 'FNAME' - From - MBBA_t_Cust100002 A1 - JOIN - MBBA_t_Cust_Entry100003 A2 - on A1.FID = A2.FID - Where A1.FDOCUMENTSTATUS = 'C' - AND A1.F_MBBA_Combo_qtr = {0}) E --业绩回款目标单 - on E.FNAME = D.FSALERID - LEFT JOIN - (Select - a1.FORDERNUMBER, - SUM(a1.FALLAMOUNT) as 'FALLAMOUNT' - From - T_AR_RECEIVABLEENTRY a1 - JOIN - T_AR_RECEIVABLE a2 - on a1.FID = a2.FID - Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1 - GROUP BY a1.FORDERNUMBER) F --求回款的表 - on D.FBILLNO = F.FORDERNUMBER - LEFT JOIN - (Select - a1.FORDERNUMBER, - SUM(a1.FALLAMOUNT) as 'FALLAMOUNT' - From - T_AR_RECEIVABLEENTRY a1 - JOIN - T_AR_RECEIVABLE a2 - on a1.FID = a2.FID - Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1 - AND a2.FENDDATE < GETDATE() - GROUP BY a1.FORDERNUMBER) G - on D.FBILLNO = G.FORDERNUMBER - LEFT JOIN - (Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY - Where FID = '670cc977263353' - AND FDocumentStatus = 'C' - AND FForbidStatus = 'A') D2 --合同类型#(辅助资料表) - on D.F_ORDERCATEGORY = D2.FMASTERID - -- 条件 - Where D.FDocumentStatus = 'C' --AND D.FID in (Select * From #TABLEXYX) - AND D2.FNUMBER != 'Z' AND D.FSALEORGID != 100302", year, year - 1, tableNameView); - - if (!string.IsNullOrEmpty(salespersonString)) - { - sql += string.Format(@" AND B.FSALEID in ({0})", salespersonString); - } - if (!string.IsNullOrEmpty(organization)) - { - sql += string.Format(@" AND D.FSaleOrgId in ({0})", organization); - } - if (!string.IsNullOrEmpty(fStrartDate)) - { - sql += string.Format(@" AND D.FApproveDate >= '{0}'", fStrartDate); - } - if (!string.IsNullOrEmpty(fEndDate)) - { - sql += string.Format(@" AND D.FApproveDate <= '{0}'", fEndDate); - } - if (!string.IsNullOrEmpty(fSDate)) - { - sql += string.Format(@" AND D.FAPPROVEDATE >= '{0}'", fSDate); - } - if (!string.IsNullOrEmpty(fEDate)) - { - sql += string.Format(@" AND D.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, '{0}'))", fEDate); - } - - sql += string.Format(@";"); - - sql += string.Format(@"/*dialect*/Select * INTO #TempTable3 From #TempTable1 UNION ALL (Select * From #TempTable2)"); - - sql += string.Format(@"/*dialect*/ - Select - A.Area, --区域 - A.DetailArea, --明细区域 - A.Salesperson, --销售员 - A.FPERFORMANCETARGETS, --业绩目标 - SUM(A.[2024Pilot]) as 'Pilot2024', --2024派诺 - SUM(A.[2024SiNO]) as 'SiNO2024', --2024兴诺 - SUM(A.[2024WuHanPilot]) as 'WuHanPilot2024', --2024武汉派诺 - SUM(A.[2024Discovery]) as 'Discovery2024', --2024碳索业绩 - SUM(A.[2024HongKongPilot]) as 'HongKongPilot2024', --2024香港派诺业绩 - SUM(A.[2024HuaXiaYunLian]) as 'HuaXiaYunLian2024', -- - SUM(A.UsualAlterAmount) as 'UsualAlterAmount', --往年订单变更金额(派诺&子公司合计) - SUM(A.[2024SumAmount]) as 'SumAmount2024', --2024合计业绩额 - SUM(A.[2023SumAmount]) as 'SumAmount2023', --2023合计业绩额 - A.FPAYMENTSUM, --回款目标 - SUM(A.Payment) as 'Payment', --回款额(派诺&子公司合计) - SUM(A.ShippedReceivables) as 'ShippedReceivables', --已发货应收款 - SUM(A.ExpiredReceivables) as 'ExpiredReceivables', --已到期应收款 - A.SBU - Into #TempTable4 - From - #TempTable3 A - Group by A.Area,A.DetailArea,A.Salesperson,A.FPERFORMANCETARGETS,A.FPAYMENTSUM,A.SBU; - Select - ROW_NUMBER() OVER (ORDER BY SBU) AS ID, - *, - CASE When SumAmount2024 = 0 or FPERFORMANCETARGETS = 0 - THen 0 - ELSE (SumAmount2024/FPERFORMANCETARGETS)*100 - END as 'AttainmentRate',--达标率 - CASE WHEN SumAmount2023 = 0 or SumAmount2024 = 0 - THEN 0 - ELSE ((SumAmount2024-SumAmount2023)/SumAmount2023)*100 - END as 'SameGrowthRate', --同比增长率 - 0 as 'PaymentRate' --回款率 - Into #TempTable5 - From - #TempTable4;"); - - sql += string.Format(@"/*dialect*/ - SELECT - *, - ROW_NUMBER() OVER (ORDER BY t1.Area,Sort) AS FID, - ROW_NUMBER() OVER (ORDER BY t1.Area,Sort) AS FIDENTITYID - INTO {0} - FROM(SELECT *,1 Sort FROM #TempTable3 - UNION ALL - SELECT - null, - t1.Area, - t1.Area+'小计:', - '', - SUM(t1.FPERFORMANCETARGETS), - SUM(t1.Pilot2024), - SUM(t1.SiNO2024), - SUM(t1.WuHanPilot2024), - SUM(t1.Discovery2024), - SUM(t1.HongKongPilot2024), - SUM(t1.HuaXiaYunLian2024), - SUM(t1.UsualAlterAmount), - SUM(t1.SumAmount2024), - SUM(t1.SumAmount2023), - SUM(t1.FPAYMENTSUM), - SUM(t1.Payment), - SUM(t1.ShippedReceivables), - SUM(t1.ExpiredReceivables), - '', - 0 Sort - FROM #TempTable5 t1 GROUP BY t1.Area) t1 - order by t1.Area,Sort;", tableName); + string sql = string.Format("EXEC GZ_JXKBHZB_LTH '{0}','{1}' " + + "SELECT" + + "ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FID," + + "ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FIDENTITYID," + + " * INTO {2} FROM JXKBHZB", fStrartDate,fEndDate,tableName); + Loghelp.Log("BuilderReportSqlAndTempTable"); Loghelp.Log(sql); DBUtils.Execute(this.Context, sql); } - /// - /// 获取前端组件转换过滤条件 - /// - /// - /// - public override ReportTitles GetReportTitles(IRptParams filter) - { - ReportTitles reportTitles = new ReportTitles(); - DynamicObject customFilter = filter.FilterParameter.CustomFilter; - - if (customFilter != null) - { - // 销售员 - var salesperson = (customFilter["F_Salesperson"] as DynamicObjectCollection)?.Select(n => (n["F_Salesperson"] as DynamicObject)["Name"].ToString()).ToList(); - - // 年份 - string fDate = customFilter["F_Date"]?.ToString(); - - // 开始日期 - string fStrartDate = customFilter["FStrartDate"]?.ToString(); - - // 结束日期 - string fEndDate = customFilter["FEndDate"]?.ToString(); - - // 开始日期 - string fSDate = customFilter["FSDate"]?.ToString(); - - // 结束日期 - string fEDate = customFilter["FEDate"]?.ToString(); - - // 组织 - var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["Name"].ToString()).ToList(); - - //这里是报表页面的标识 - reportTitles.AddTitle("FSalesperson", salesperson == null ? "" : string.Join(",", salesperson)); - reportTitles.AddTitle("FDate", fDate == null ? "" : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd")); - reportTitles.AddTitle("FStrartDate", string.IsNullOrWhiteSpace(fStrartDate) ? "" : Convert.ToDateTime(fStrartDate).ToString("yyyy-MM-dd")); - reportTitles.AddTitle("FEndDate", string.IsNullOrWhiteSpace(fEndDate) ? "" : Convert.ToDateTime(fEndDate).ToString("yyyy-MM-dd")); - - reportTitles.AddTitle("FSDate", string.IsNullOrWhiteSpace(fSDate) ? "" : Convert.ToDateTime(fSDate).ToString("yyyy-MM-dd")); - reportTitles.AddTitle("FEDate", string.IsNullOrWhiteSpace(fEDate) ? "" : Convert.ToDateTime(fEDate).ToString("yyyy-MM-dd")); - - reportTitles.AddTitle("FZuZhi", organizationList == null ? "" : string.Join(",", organizationList)); - } - return reportTitles; - } - - /// - /// 生成显示表后更改 - /// - /// - /// - protected override DataTable GetListData(string sSQL) - { - var last = sSQL.Trim().Split(' ').ToList().Last(); - int rowId = int.Parse(last); - string sql = @"/*dialect*/ - SELECT - * - FROM - ( - {0} - UNION ALL - SELECT - null, - '合计:', - null, - SUM(FPERFORMANCETARGETS), - SUM([2024Pilot]), - SUM([2024SiNO]), - SUM([2024WuHanPilot]), - SUM([2024Discovery]), - SUM([2024HongKongPilot]), - SUM([2024HuaXiaYunLian]), - SUM(UsualAlterAmount), - SUM([2024SumAmount]), - SUM([2023SumAmount]), - SUM(FPAYMENTSUM), - SUM(Payment), - SUM(ShippedReceivables), - SUM(ExpiredReceivables), - null, - 3, - {2} FID, - {2} FIDENTITYID - FROM - ( - {0} - ) temp2 - WHERE - Sort = 0 - ) temp - "; - string SqlStr = string.Format(sql, sSQL, rowId + 1, rowId + 2, rowId + 1024); - Loghelp.Log("GetListData"); - Loghelp.Log(SqlStr); - return base.GetListData(SqlStr); - } } } diff --git a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs index 72a9fb2..42c5628 100644 --- a/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs +++ b/Pilot.Report.Exploitation/SpecialDetails/SpecialDetailsReport.cs @@ -156,10 +156,7 @@ namespace Pilot.Report.Exploitation.SpecialDetails sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate); } - sql += string.Format(@"/*dialect*/ - - - + sql += string.Format(@"/*dialect*/ Select * INTO #TABLEXYX From (Select A.FID From View_Table_Temp2 A JOIN View_Table_Temp3 B on A.FCONTRACTNUMBER=B.FCONTRACTNUMBER AND A.FCREATEDATE = B.FCREATEDATE