using Kingdee.BOS.App.Data; using Kingdee.BOS; using Kingdee.BOS.Contracts.Report; using Kingdee.BOS.Core.Report; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Pilot.Report.Exploitation.PublicClass; namespace Pilot.Report.Exploitation.AnnualSalesPaymentSum { [Description("【列表插件】年度销售额&回款额汇总【报表】"), HotUpdate] public class AnnualSalesPaymentSumReport: SysReportBaseService { private string tableNameView = EnvironmentTEST.tableNameView_TEST; /// /// 初始化 /// public override void Initialize() { base.Initialize(); this.ReportProperty.ReportName = new LocaleValue("年度销售额-回款额汇总", base.Context.UserLocale.LCID); this.ReportProperty.IsUIDesignerColumns = false; // 简单账表类型:普通、树形、分页 this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL; this.IsCreateTempTableByPlugin = true; // this.IsCreateTempTableByPlugin = true; // this.ReportProperty.IsGroupSummary = true; // this.ReportProperty.SimpleAllCols = false; // 单据主键:两行FID相同,则为同一单的两条分录,单据编号可以不重复显示 this.ReportProperty.PrimaryKeyFieldName = "FID"; // this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true; // 设置精度控制 var list = new List { new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"), new DecimalControlField("FDECIMALS", "ExchangeRate"), new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"), new DecimalControlField("FDECIMALS", "MonthEndExRate"), new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"), new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"), }; this.ReportProperty.DecimalControlFieldList = list; } /// /// 报表列表头 /// /// /// public override ReportHeader GetReportHeaders(IRptParams filter) { base.GetReportHeaders(filter); ReportHeader header = new ReportHeader(); header.AddChild("Salesperson", new LocaleValue("销售人员"), SqlStorageType.Sqlvarchar); header.AddChild("XOneMonth", new LocaleValue("1月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HOneMonth", new LocaleValue("1月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XTwoMonth", new LocaleValue("2月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HTwoMonth", new LocaleValue("2月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XThreeMonth", new LocaleValue("3月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HThreeMonth", new LocaleValue("3月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XFourMonth", new LocaleValue("4月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HFourMonth", new LocaleValue("4月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XFiveMonth", new LocaleValue("5月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HFiveMonth", new LocaleValue("5月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XSixMonth", new LocaleValue("6月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HSixMonth", new LocaleValue("6月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XSevenMonth", new LocaleValue("7月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HSevenMonth", new LocaleValue("7月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XEightMonth", new LocaleValue("8月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HEightMonth", new LocaleValue("8月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XNineMonth", new LocaleValue("9月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HNineMonth", new LocaleValue("9月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XTenMonth", new LocaleValue("10月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HTenMonth", new LocaleValue("10月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XElevenMonth", new LocaleValue("11月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HElevenMonth", new LocaleValue("11月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XTwelveMonth", new LocaleValue("12月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("HTwelveMonth", new LocaleValue("12月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("XCumulative", new LocaleValue("累计销售额"), SqlStorageType.SqlDecimal); header.AddChild("HCumulative", new LocaleValue("累计回款额"), SqlStorageType.SqlDecimal); header.AddChild("UsualAlterAmount", new LocaleValue("往年订单变更金额"), SqlStorageType.SqlDecimal); header.AddChild("ZhuhaiPilot", new LocaleValue("珠海派诺业绩合计"), SqlStorageType.SqlDecimal); header.AddChild("SiNO", new LocaleValue("兴诺业绩"), SqlStorageType.SqlDecimal); header.AddChild("SiNOUsualAlter", new LocaleValue("兴诺往年订单变更"), SqlStorageType.SqlDecimal); header.AddChild("WuhanPilotThisYear", new LocaleValue("武汉派诺-当年业绩"), SqlStorageType.SqlDecimal); header.AddChild("WuhanPilotUsualAlter", new LocaleValue("武汉派诺-往年订单变更"), SqlStorageType.SqlDecimal); header.AddChild("Discovery", new LocaleValue("碳索业绩"), SqlStorageType.SqlDecimal); header.AddChild("HongKongPilot", new LocaleValue("香港派诺业绩"), SqlStorageType.SqlDecimal); header.AddChild("HuaXiaYunLian", new LocaleValue("华夏云联业绩"), SqlStorageType.SqlDecimal); header.AddChild("PilotSumAmount", new LocaleValue("派诺集团最终业绩合计金额"), SqlStorageType.SqlDecimal); header.AddChild("SBU", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar); header.AddChild("DetailArea", new LocaleValue("明细区域"), SqlStorageType.Sqlvarchar); foreach (var item in header.GetChilds()) { item.Width = 160; } return header; } /// /// 显示报表数据 /// /// /// public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { DynamicObject customFilter = filter.FilterParameter.CustomFilter; // 销售员列表 var salesperson = (customFilter["F_Salesperson"] as DynamicObjectCollection)?.Select(n => (n["F_Salesperson"] as DynamicObject)["msterID"].ToString()).ToList(); // 销售员 var salespersonString = salesperson == null ? "" : string.Join(",", salesperson); // 组织列表 var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["ID"].ToString()).ToList(); // 组织 var organization = organizationList == null ? "" : (string.Join(",", organizationList)); // 开始日期 string fStrartDate = customFilter["FStrartDate"]?.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]); base.BuilderReportSqlAndTempTable(filter, tableName); string sql = string.Format(@"/*dialect*/ Select CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME ELSE W4.FNAME END as 'Salesperson', --销售员 CASE WHEN Month(D.FDATE)= 1 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 1 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XOneMonth', --> 一月销售额 CASE WHEN MONTH(D.FDATE) = 1 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HOneMonth', --> 一月回款额 CASE WHEN Month(D.FDATE)= 2 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 2 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XTwoMonth', --> 二月销售额 CASE WHEN MONTH(D.FDATE) = 2 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HTwoMonth', --> 二月回款额 CASE WHEN Month(D.FDATE)= 3 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 3 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XThreeMonth', --> 三月销售额 CASE WHEN MONTH(D.FDATE) = 3 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HThreeMonth', --> 三月回款额 CASE WHEN Month(D.FDATE)= 4 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 4 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XFourMonth', --> 四月销售额 CASE WHEN MONTH(D.FDATE) = 4 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HFourMonth', --> 四月回款额 CASE WHEN Month(D.FDATE)= 5 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 5 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XFiveMonth', --> 五月销售额 CASE WHEN MONTH(D.FDATE) = 5 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HFiveMonth', --> 五月回款额 CASE WHEN Month(D.FDATE)= 6 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 6 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XSixMonth', --> 六月销售额 CASE WHEN MONTH(D.FDATE) = 6 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HSixMonth', --> 六月回款额 CASE WHEN Month(D.FDATE)= 7 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 7 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XSevenMonth', --> 七月销售额 CASE WHEN MONTH(D.FDATE) = 7 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HSevenMonth', --> 七月回款额 CASE WHEN Month(D.FDATE)= 8 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 8 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XEightMonth', --> 八月销售额 CASE WHEN MONTH(D.FDATE) = 8 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HEightMonth', --> 八月回款额 CASE WHEN Month(D.FDATE)= 9 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 9 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XNineMonth', --> 九月销售额 CASE WHEN MONTH(D.FDATE) = 9 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HNineMonth', --> 九月回款额 CASE WHEN Month(D.FDATE)= 10 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 10 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XTenMonth', --> 十月销售额 CASE WHEN MONTH(D.FDATE) = 10 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HTenMonth', --> 十月回款额 CASE WHEN Month(D.FDATE)= 11 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 11 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XElevenMonth', --> 十一月销售额 CASE WHEN MONTH(D.FDATE) = 11 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HElevenMonth', --> 十一月回款额 CASE WHEN Month(D.FDATE)= 12 AND YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN Month(D.FDATE)= 12 AND YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XTwelveMonth', --> 十二月销售额 CASE WHEN MONTH(D.FDATE) = 12 AND YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HTwelveMonth', --> 十二月回款额 CASE WHEN YEAR(D.FDATE)= {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'XCumulative', --> 累计销售额 CASE WHEN YEAR(D.FDATE)= {0} THEN ISNULL(E.FALLAMOUNT,0) ELSE 0 END as 'HCumulative', --> 累计回款额 CASE WHEN YEAR(D.FDATE) < {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)),0) ELSE 0 END as 'UsualAlterAmount', --> 往年订单变更金额 CASE WHEN D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'ZhuhaiPilot', --> 珠海派诺业绩合计 CASE WHEN D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'SiNO', --> 兴诺合计 CASE WHEN YEAR(D.FDATE) < {0} AND D.FSalerId = D.FSALERID AND D.FSaleOrgId = 100303 --兴诺 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)),0) ELSE 0 END as 'SiNOUsualAlter', --> 兴诺往年订单变更 CASE WHEN D.FSaleOrgId = 100305 AND YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'WuhanPilotThisYear', --> 武汉派诺-当年业绩 CASE WHEN YEAR(D.FDATE) < {0} AND D.FSalerId = D.FSALERID AND D.FSaleOrgId = 100305 --武汉派诺 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)),0) ELSE 0 END as 'WuhanPilotUsualAlter', --> 武汉派诺-往年订单变更 CASE WHEN D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'Discovery', --> 碳索业绩 CASE WHEN D.FSaleOrgId = 438224 AND YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'HongKongPilot', --> 香港派诺业绩 CASE WHEN D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'HuaXiaYunLian', --> 华夏云联业绩 CASE WHEN ISNULL(W3.FSHAREAMOUNT,-1)!=-1 THEN ISNULL(W3.FSHAREAMOUNT,0) WHEN YEAR(D.FDATE)= {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0) ELSE 0 END as 'PilotSumAmount', --> 派诺集团最终业绩合计金额 ISNULL(A.区域,'') as 'SBU', ISNULL(A.明细区域,'') as 'DetailArea' INTO #TempTable1 From T_SAL_ORDER D --销售订单 LEFT 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 ERPTOHR.HYHRV3.dbo.v_erp_empinfo A on W1.FNAME = A.名称 LEFT JOIN (Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型 on W8.FENTRYID = D.F_ORDERCATEGORY 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 = 3 GROUP BY a1.FORDERNUMBER) E on D.FBILLNO = E.FORDERNUMBER -- 条件 Where D.FDocumentStatus = 'C' AND W8.FNumber != 'Z' --AND D.FID in (Select * From #TABLEXYX) ", year, year - 1, tableNameView); if (!string.IsNullOrEmpty(salespersonString)) { sql += string.Format(@" AND (W3.FSALEID in ({0}) or D.FSALERID 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.FDate >= '{0}'", fStrartDate); } if (!string.IsNullOrEmpty(fEndDate)) { sql += string.Format(@" AND D.FDate <= '{0}'", fEndDate); } sql += string.Format(@";"); sql += string.Format(@"/*dialect*/ Select Salesperson, ISNULL(SUM(XOneMonth),0) as 'XOneMonth', ISNULL(SUM(HOneMonth),0) as 'HOneMonth', ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth', ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth', ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth', ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth', ISNULL(SUM(XFourMonth),0) as 'XFourMonth', ISNULL(SUM(HFourMonth),0) as 'HFourMonth', ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth', ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth', ISNULL(SUM(XSixMonth),0) as 'XSixMonth', ISNULL(SUM(HSixMonth),0) as 'HSixMonth', ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth', ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth', ISNULL(SUM(XEightMonth),0) as 'XEightMonth', ISNULL(SUM(HEightMonth),0) as 'HEightMonth', ISNULL(SUM(XNineMonth),0) as 'XNineMonth', ISNULL(SUM(HNineMonth),0) as 'HNineMonth', ISNULL(SUM(XTenMonth),0) as 'XTenMonth', ISNULL(SUM(HTenMonth),0) as 'HTenMonth', ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth', ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth', ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth', ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth', ISNULL(SUM(XCumulative),0) as 'XCumulative', ISNULL(SUM(HCumulative),0) as 'HCumulative', ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount', ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot', ISNULL(SUM(SiNO),0) as 'SiNO', ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter', ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear', ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter', ISNULL(SUM(Discovery),0) as 'Discovery', ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot', ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian', ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount', SBU, DetailArea, 0 Sort Into #TempTable2 From #TempTable1 Group by Salesperson,SBU,DetailArea;"); sql += string.Format(@"/*dialect*/ Select * INTO #TempTable3 From (SELECT * FROM #TempTable2 UNION ALL Select (t1.SBU+'小计'), ISNULL(SUM(t1.XOneMonth),0), ISNULL(SUM(t1.HOneMonth),0), ISNULL(SUM(t1.XTwoMonth),0), ISNULL(SUM(t1.HTwoMonth),0), ISNULL(SUM(t1.XThreeMonth),0), ISNULL(SUM(t1.HThreeMonth),0), ISNULL(SUM(t1.XFourMonth),0), ISNULL(SUM(t1.HFourMonth),0), ISNULL(SUM(t1.XFiveMonth),0), ISNULL(SUM(t1.HFiveMonth),0), ISNULL(SUM(t1.XSixMonth),0), ISNULL(SUM(t1.HSixMonth),0), ISNULL(SUM(t1.XSevenMonth),0), ISNULL(SUM(t1.HSevenMonth),0), ISNULL(SUM(t1.XEightMonth),0), ISNULL(SUM(t1.HEightMonth),0), ISNULL(SUM(t1.XNineMonth),0), ISNULL(SUM(t1.HNineMonth),0), ISNULL(SUM(t1.XTenMonth),0), ISNULL(SUM(t1.HTenMonth),0), ISNULL(SUM(t1.XElevenMonth),0), ISNULL(SUM(t1.HElevenMonth),0), ISNULL(SUM(t1.XTwelveMonth),0), ISNULL(SUM(t1.HTwelveMonth),0), ISNULL(SUM(t1.XCumulative),0), ISNULL(SUM(t1.HCumulative),0), ISNULL(SUM(t1.UsualAlterAmount),0), ISNULL(SUM(t1.ZhuhaiPilot),0), ISNULL(SUM(t1.SiNO),0), ISNULL(SUM(t1.SiNOUsualAlter),0), ISNULL(SUM(t1.WuhanPilotThisYear),0), ISNULL(SUM(t1.WuhanPilotUsualAlter),0), ISNULL(SUM(t1.Discovery),0), ISNULL(SUM(t1.HongKongPilot),0), ISNULL(SUM(t1.HuaXiaYunLian),0), ISNULL(SUM(t1.PilotSumAmount),0), t1.SBU, '', 1 Sort From #TempTable2 t1 GROUP BY t1.SBU) t1 ORDER BY t1.SBU,Sort; SELECT * INTO #TempTable4 FROM #TempTable3 UNION ALL Select '事业部+海外+市场部+EMT/售后团队+产品线+市场部+商运部-小计' as 'Salesperson', ISNULL(SUM(XOneMonth),0) as 'XOneMonth', ISNULL(SUM(HOneMonth),0) as 'HOneMonth', ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth', ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth', ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth', ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth', ISNULL(SUM(XFourMonth),0) as 'XFourMonth', ISNULL(SUM(HFourMonth),0) as 'HFourMonth', ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth', ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth', ISNULL(SUM(XSixMonth),0) as 'XSixMonth', ISNULL(SUM(HSixMonth),0) as 'HSixMonth', ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth', ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth', ISNULL(SUM(XEightMonth),0) as 'XEightMonth', ISNULL(SUM(HEightMonth),0) as 'HEightMonth', ISNULL(SUM(XNineMonth),0) as 'XNineMonth', ISNULL(SUM(HNineMonth),0) as 'HNineMonth', ISNULL(SUM(XTenMonth),0) as 'XTenMonth', ISNULL(SUM(HTenMonth),0) as 'HTenMonth', ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth', ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth', ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth', ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth', ISNULL(SUM(XCumulative),0) as 'XCumulative', ISNULL(SUM(HCumulative),0) as 'HCumulative', ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount', ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot', ISNULL(SUM(SiNO),0) as 'SiNO', ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter', ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear', ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter', ISNULL(SUM(Discovery),0) as 'Discovery', ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot', ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian', ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount', '', '', 1 Sort From #TempTable2 Where SBU in ('事业部','海外','市场部','EMT/售后团队','产品线','市场部','商运部') UNION ALL Select '派诺集团合计(行业线+SBU+事业部+海外+市场部+EMT团队+产品线+市场部+其他+各子公司)' as 'Salesperson', ISNULL(SUM(XOneMonth),0) as 'XOneMonth', ISNULL(SUM(HOneMonth),0) as 'HOneMonth', ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth', ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth', ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth', ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth', ISNULL(SUM(XFourMonth),0) as 'XFourMonth', ISNULL(SUM(HFourMonth),0) as 'HFourMonth', ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth', ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth', ISNULL(SUM(XSixMonth),0) as 'XSixMonth', ISNULL(SUM(HSixMonth),0) as 'HSixMonth', ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth', ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth', ISNULL(SUM(XEightMonth),0) as 'XEightMonth', ISNULL(SUM(HEightMonth),0) as 'HEightMonth', ISNULL(SUM(XNineMonth),0) as 'XNineMonth', ISNULL(SUM(HNineMonth),0) as 'HNineMonth', ISNULL(SUM(XTenMonth),0) as 'XTenMonth', ISNULL(SUM(HTenMonth),0) as 'HTenMonth', ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth', ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth', ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth', ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth', ISNULL(SUM(XCumulative),0) as 'XCumulative', ISNULL(SUM(HCumulative),0) as 'HCumulative', ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount', ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot', ISNULL(SUM(SiNO),0) as 'SiNO', ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter', ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear', ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter', ISNULL(SUM(Discovery),0) as 'Discovery', ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot', ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian', ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount', '', '', 2 Sort From #TempTable2;"); sql += string.Format(@"/*dialect*/ Select B.FNAME, ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=1 AND YEAR(A.FDATE)={0}),0) as 'XOneMonth', --> 一月销售额 CASE WHEN MONTH(A.FDATE) = 1 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HOneMonth', --> 一月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=2 AND YEAR(A.FDATE)={0}),0) as 'XTwoMonth', --> 二月销售额 CASE WHEN MONTH(A.FDATE) = 2 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HTwoMonth', --> 二月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=3 AND YEAR(A.FDATE)={0}),0) as 'XThreeMonth', --> 三月销售额 CASE WHEN MONTH(A.FDATE) = 3 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HThreeMonth', --> 三月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=4 AND YEAR(A.FDATE)={0}),0) as 'XFourMonth', --> 四月销售额 CASE WHEN MONTH(A.FDATE) = 4 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HFourMonth', --> 四月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=5 AND YEAR(A.FDATE)={0}),0) as 'XFiveMonth', --> 五月销售额 CASE WHEN MONTH(A.FDATE) = 5 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HFiveMonth', --> 五月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=6 AND YEAR(A.FDATE)={0}),0) as 'XSixMonth', --> 六月销售额 CASE WHEN MONTH(A.FDATE) = 6 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HSixMonth', --> 六月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=7 AND YEAR(A.FDATE)={0}),0) as 'XSevenMonth', --> 七月销售额 CASE WHEN MONTH(A.FDATE) = 7 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HSevenMonth', --> 七月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=8 AND YEAR(A.FDATE)={0}),0) as 'XEightMonth', --> 八月销售额 CASE WHEN MONTH(A.FDATE) = 8 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HEightMonth', --> 八月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=9 AND YEAR(A.FDATE)={0}),0) as 'XNineMonth', --> 九月销售额 CASE WHEN MONTH(A.FDATE) = 9 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HNineMonth', --> 九月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=10 AND YEAR(A.FDATE)={0}),0) as 'XTenMonth', --> 十月销售额 CASE WHEN MONTH(A.FDATE) = 10 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HTenMonth', --> 十月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=11 AND YEAR(A.FDATE)={0}),0) as 'XElevenMonth', --> 十一月销售额 CASE WHEN MONTH(A.FDATE) = 11 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HElevenMonth', --> 十一月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND Month(A.FDATE)=12 AND YEAR(A.FDATE)={0}),0) as 'XTwelveMonth', --> 十二月销售额 CASE WHEN MONTH(A.FDATE) = 12 THEN ISNULL(C.FALLAMOUNT,0) ELSE 0 END as 'HTwelveMonth', --> 十二月回款额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND YEAR(A.FDATE)={0}),0) as 'XCumulative', --> 累计销售额 ISNULL(C.FALLAMOUNT,0) as 'HCumulative', --> 累计回款额 CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE()) 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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.FBILLNO)),0) ELSE 0 END as 'UsualAlterAmount', --> 往年订单变更金额 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 100302),0) as 'ZhuhaiPilot', --> 珠海派诺业绩合计 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 100303),0) as 'SiNO', --> 兴诺合计 CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE()) AND A.FSaleOrgId = 100303 --兴诺 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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.FBILLNO)),0) ELSE 0 END as 'SiNOUsualAlter', --> 兴诺往年订单变更 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 100305),0) as 'WuhanPilotThisYear', --> 武汉派诺-当年业绩 CASE WHEN YEAR(A.FDATE) < YEAR(GETDATE()) AND A.FSaleOrgId = 100305 --武汉派诺 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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.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 = A.FBILLNO ) AND FFORMID = 'SAL_SaleOrder' AND FBILLNO = A.FBILLNO)),0) ELSE 0 END as 'WuhanPilotUsualAlter', --> 武汉派诺-往年订单变更 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 438223),0) as 'Discovery', --> 碳索业绩 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 438224),0) as 'HongKongPilot', --> 香港派诺业绩 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID AND A.FSaleOrgId = 533896),0) as 'HuaXiaYunLian', --> 华夏云联业绩 ISNULL((Select SUM(a2.FBILLALLAMOUNT_LC) From T_SAL_ORDER a1 JOIN T_SAL_ORDERFIN a2 on a1.FID = a2.FID Where a1.FDocumentStatus = 'C' AND a1.FID = A.FID),0) as 'PilotSumAmount', --> 派诺集团最终业绩合计金额 '' as 'SBU', '' as 'DetailArea' Into #TempTable5 From T_SAL_ORDER A Right JOIN (Select a2.FNAME,a1.FORGID From T_ORG_ORGANIZATIONS a1 JOIN T_ORG_ORGANIZATIONS_L a2 on a1.FORGID = a2.FORGID Where a2.FLOCALEID = 2052 AND a1.FDocumentStatus = 'C' AND a2.FNAME != '总帐套') B on A.FSaleOrgId = B.FORGID AND A.FDocumentStatus = 'C' AND A.FCancelStatus = 'A' 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 = 3 GROUP BY a1.FORDERNUMBER) C on A.FBILLNO = C.FORDERNUMBER LEFT JOIN (Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型 on W8.FENTRYID = A.F_ORDERCATEGORY Where A.FDocumentStatus = 'C' AND W8.FNumber != 'Z' --AND A.FID in (Select * From #TABLEXYX)", year); if (!string.IsNullOrEmpty(salespersonString)) { sql += string.Format(@" AND A.FSalerId in ({0})", salespersonString); } if (!string.IsNullOrEmpty(organization)) { sql += string.Format(@" AND A.FSaleOrgId in ({0})", organization); } if (!string.IsNullOrEmpty(fStrartDate)) { sql += string.Format(@" AND A.FDate >= '{0}'", fStrartDate); } if (!string.IsNullOrEmpty(fEndDate)) { sql += string.Format(@" AND A.FDate <= '{0}'", fEndDate); } if (!string.IsNullOrEmpty(fSDate)) { sql += string.Format(@" AND A.FAPPROVEDATE >= '{0}'", fSDate); } if (!string.IsNullOrEmpty(fEDate)) { sql += string.Format(@" AND A.FAPPROVEDATE <= '{0}'", fEDate); } sql += string.Format(@";"); sql += string.Format(@"/*dialect*/ Select FNAME+'合计:' as 'FNAME', ISNULL(SUM(XOneMonth),0) as 'XOneMonth', ISNULL(SUM(HOneMonth),0) as 'HOneMonth', ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth', ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth', ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth', ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth', ISNULL(SUM(XFourMonth),0) as 'XFourMonth', ISNULL(SUM(HFourMonth),0) as 'HFourMonth', ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth', ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth', ISNULL(SUM(XSixMonth),0) as 'XSixMonth', ISNULL(SUM(HSixMonth),0) as 'HSixMonth', ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth', ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth', ISNULL(SUM(XEightMonth),0) as 'XEightMonth', ISNULL(SUM(HEightMonth),0) as 'HEightMonth', ISNULL(SUM(XNineMonth),0) as 'XNineMonth', ISNULL(SUM(HNineMonth),0) as 'HNineMonth', ISNULL(SUM(XTenMonth),0) as 'XTenMonth', ISNULL(SUM(HTenMonth),0) as 'HTenMonth', ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth', ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth', ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth', ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth', ISNULL(SUM(XCumulative),0) as 'XCumulative', ISNULL(SUM(HCumulative),0) as 'HCumulative', ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount', ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot', ISNULL(SUM(SiNO),0) as 'SiNO', ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter', ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear', ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter', ISNULL(SUM(Discovery),0) as 'Discovery', ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot', ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian', ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount', SBU, DetailArea, 3 Sort Into #TempTable6 From #TempTable5 Group by FNAME,SBU,DetailArea;"); sql += string.Format(@"/*dialect*/ Select * INTO #TempTable7 From #TempTable6 UNION ALL Select '派诺集团总计:' as 'FNAME', ISNULL(SUM(XOneMonth),0) as 'XOneMonth', ISNULL(SUM(HOneMonth),0) as 'HOneMonth', ISNULL(SUM(XTwoMonth),0) as 'XTwoMonth', ISNULL(SUM(HTwoMonth),0) as 'HTwoMonth', ISNULL(SUM(XThreeMonth),0) as 'XThreeMonth', ISNULL(SUM(HThreeMonth),0) as 'HThreeMonth', ISNULL(SUM(XFourMonth),0) as 'XFourMonth', ISNULL(SUM(HFourMonth),0) as 'HFourMonth', ISNULL(SUM(XFiveMonth),0) as 'XFiveMonth', ISNULL(SUM(HFiveMonth),0) as 'HFiveMonth', ISNULL(SUM(XSixMonth),0) as 'XSixMonth', ISNULL(SUM(HSixMonth),0) as 'HSixMonth', ISNULL(SUM(XSevenMonth),0) as 'XSevenMonth', ISNULL(SUM(HSevenMonth),0) as 'HSevenMonth', ISNULL(SUM(XEightMonth),0) as 'XEightMonth', ISNULL(SUM(HEightMonth),0) as 'HEightMonth', ISNULL(SUM(XNineMonth),0) as 'XNineMonth', ISNULL(SUM(HNineMonth),0) as 'HNineMonth', ISNULL(SUM(XTenMonth),0) as 'XTenMonth', ISNULL(SUM(HTenMonth),0) as 'HTenMonth', ISNULL(SUM(XElevenMonth),0) as 'XElevenMonth', ISNULL(SUM(HElevenMonth),0) as 'HElevenMonth', ISNULL(SUM(XTwelveMonth),0) as 'XTwelveMonth', ISNULL(SUM(HTwelveMonth),0) as 'HTwelveMonth', ISNULL(SUM(XCumulative),0) as 'XCumulative', ISNULL(SUM(HCumulative),0) as 'HCumulative', ISNULL(SUM(UsualAlterAmount),0) as 'UsualAlterAmount', ISNULL(SUM(ZhuhaiPilot),0) as 'ZhuhaiPilot', ISNULL(SUM(SiNO),0) as 'SiNO', ISNULL(SUM(SiNOUsualAlter),0) as 'SiNOUsualAlter', ISNULL(SUM(WuhanPilotThisYear),0) as 'WuhanPilotThisYear', ISNULL(SUM(WuhanPilotUsualAlter),0) as 'WuhanPilotUsualAlter', ISNULL(SUM(Discovery),0) as 'Discovery', ISNULL(SUM(HongKongPilot),0) as 'HongKongPilot', ISNULL(SUM(HuaXiaYunLian),0) as 'HuaXiaYunLian', ISNULL(SUM(PilotSumAmount),0) as 'PilotSumAmount', '', '', 4 Sort From #TempTable6;"); sql += string.Format(@"/*dialect*/ Select * Into #TempTable8 From #TempTable4 v1 UNION ALL Select * From #TempTable7;"); sql += string.Format(@"/*dialect*/ Select *,0 A INTO #TempTable9 From #TempTable8"); sql += string.Format(@"/*dialect*/ SELECT *, ROW_NUMBER() OVER (ORDER BY A) AS FID, ROW_NUMBER() OVER (ORDER BY A) AS FIDENTITYID INTO {0} From #TempTable9;", tableName); 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(); //这里是报表页面的标识 FStrartDate reportTitles.AddTitle("FSalesperson", salesperson == null ? "" : string.Join(",", salesperson)); reportTitles.AddTitle("FDate", fDate == null ? 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; } } }