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; using Kingdee.BOS.Log; using Pilot.Report.Exploitation.Common; using NPOI.Util; 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("X1Month", new LocaleValue("1月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H1Month", new LocaleValue("1月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X2Month", new LocaleValue("2月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H2Month", new LocaleValue("2月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X2Month", new LocaleValue("3月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H3Month", new LocaleValue("3月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X4Month", new LocaleValue("4月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H4Month", new LocaleValue("4月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X5Month", new LocaleValue("5月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H5Month", new LocaleValue("5月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X6Month", new LocaleValue("6月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H6Month", new LocaleValue("6月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X7Month", new LocaleValue("7月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H7Month", new LocaleValue("7月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X8Month", new LocaleValue("8月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H8Month", new LocaleValue("8月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X9Month", new LocaleValue("9月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H9Month", new LocaleValue("9月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X10Month", new LocaleValue("10月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H10Month", new LocaleValue("10月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X11Month", new LocaleValue("11月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H11Month", new LocaleValue("11月(回款额)"), SqlStorageType.SqlDecimal); header.AddChild("X12Month", new LocaleValue("12月(销售额)"), SqlStorageType.SqlDecimal); header.AddChild("H12Month", 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; } #region 旧的SQL ///// ///// 显示报表数据 ///// ///// ///// //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); // Loghelp.Log("年度销售额&回款额汇总"); // Loghelp.Log(sql); // DBUtils.Execute(this.Context, sql); //} #endregion /// /// 获取前端组件转换过滤条件 /// /// /// 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; } /// /// 显示报表数据 /// /// /// 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 fDate = customFilter["F_Date"]?.ToString(); int year = Convert.ToInt32(fDate.Split('-')[0]); base.BuilderReportSqlAndTempTable(filter, tableName); string sqlWhere = " and 1=1 "; if (!string.IsNullOrEmpty(salespersonString)) { sqlWhere += string.Format(@" AND [销售员ID] in ({0}) ", salespersonString); } if (!string.IsNullOrEmpty(organization)) { sqlWhere += string.Format(@" AND [组织ID] in ({0})", organization); } string sql2 = $@"/*dialect*/SELECT EE.* ,ee.销售员 AS Salesperson ,[累计销售额] as XCumulative,[往年订单变更金额] as UsualAlterAmount,[兴诺业绩] as SiNO,[兴诺往年订单变更] as SiNOUsualAlter,[武汉派诺-当年业绩] as WuhanPilotThisYear ,[武汉派诺-往年订单变更] as WuhanPilotUsualAlter, [碳索业绩] as Discovery,[香港派诺业绩] as HongKongPilot,[华夏云联业绩] as HuaXiaYunLian ,[明细区域] as DetailArea ,[ZhuhaiPilot]=[累计销售额]+[往年订单变更金额] ,[PilotSumAmount]=[累计销售额]+[往年订单变更金额]+[兴诺业绩]+[兴诺往年订单变更]+[武汉派诺-当年业绩]+[武汉派诺-往年订单变更]+[碳索业绩]+[香港派诺业绩]+[华夏云联业绩] ,ROW_NUMBER() OVER (ORDER BY [SBU] ,[销售员ID])*10 AS FID ,ROW_NUMBER() OVER (ORDER BY [SBU] ,[销售员ID])*10 AS FIDENTITYID ,0 AS Sort into {tableName} FROM ( SELECT DISTINCT A.*"; DateTime monthStart = DateTime.Parse($@"{year}-01-01"); DateTime monthEnd = DateTime.Parse($@"{year}-02-01"); DateTime yearStart= DateTime.Parse($@"{year}-01-01"); DateTime yearEnd = yearStart.AddYears(1); for (int i = 1; i < 13; i++) { sql2 += $@" ,[X{i}Month]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND AA.[订单日期] >='{monthStart}' AND AA.[订单日期] <'{monthEnd}') kk ),0) ,[H{i}Month]=ISNULL(( SELECT SUM([累计到款金额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[累计到款金额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND AA.[应收单日期] >='{monthStart}' AND AA.[应收单日期] <'{monthEnd}') kk ),0) "; monthStart = monthStart.AddMonths(1); monthEnd = monthEnd.AddMonths(1); } sql2 += $@",[累计销售额]=ISNULL(( SELECT SUM(分摊金额) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,分摊金额 FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) ,[累计回款额]=ISNULL(( SELECT SUM([累计到款金额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[累计到款金额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND AA.[应收单日期] >='{yearStart}' AND AA.[应收单日期] <'{yearEnd}') kk ),0) ,[往年订单变更金额]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar) FROM ( SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar FROM T_SAL_ORDERFIN aa LEFT JOIN T_SAL_ORDER B ON aa.FID=b.fid WHERE aa.FID IN (SELECT [销售单主键ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK) WHERE [订单日期] >='{yearStart}' AND [订单日期] <'{yearEnd}' AND share.[销售员ID]=a.[销售员ID] AND 组织ID=100302 ) AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}' ) ss),0) ,[兴诺业绩]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND 组织ID=100303 AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) ,[兴诺往年订单变更]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar) FROM ( SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar FROM T_SAL_ORDERFIN aa LEFT JOIN T_SAL_ORDER B ON aa.FID=b.fid WHERE aa.FID IN (SELECT [销售单主键ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK) WHERE [订单日期] >='{yearStart}' AND [订单日期] <'{yearEnd}' AND share.[销售员ID]=a.[销售员ID] AND 组织ID=100303 ) AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}' ) ss),0) ,[武汉派诺-当年业绩]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND 组织ID=100305 AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) ,[武汉派诺-往年订单变更]=ISNULL((SELECT SUM(FBillAllAmount_LC-F_Amountstar) FROM ( SELECT FChangeDate,FJoinOrderAmount ,b.FBILLNO, aa.FBillAllAmount_LC,F_Amountstar FROM T_SAL_ORDERFIN aa LEFT JOIN T_SAL_ORDER B ON aa.FID=b.fid WHERE aa.FID IN (SELECT [销售单主键ID] FROM [ZZZ_SalesRportShareData] share WITH(NOLOCK) WHERE [订单日期] >='{yearStart}' AND [订单日期] <'{yearEnd}' AND share.[销售员ID]=a.[销售员ID] AND 组织ID=100305 ) AND B.FCHANGEDATE >='{yearStart}' AND B.FCHANGEDATE<'{yearEnd}' ) ss),0) ,[碳索业绩]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND 组织ID=438223 AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) ,[香港派诺业绩]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND 组织ID=438224 AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) ,[华夏云联业绩]=ISNULL(( SELECT SUM([订单总额]) FROM ( SELECT DISTINCT [销售员ID],销售单主键ID,[订单总额] FROM [ZZZ_SalesRportShareData] AA WITH(NOLOCK) WHERE AA.[销售员ID]=A.[销售员ID] AND 组织ID=533896 AND AA.[订单日期] >='{yearStart}' AND AA.[订单日期] <'{yearEnd}') kk ),0) FROM (SELECT DISTINCT [销售员] ,[销售员ID],[SBU] ,[明细区域] FROM [ZZZ_SalesRportShareData] WITH(NOLOCK) WHERE [订单日期] >='{yearStart}' AND [订单日期] <'{yearEnd}' {sqlWhere} ) A ) EE ORDER BY [SBU] ,[销售员ID] "; //sqlWhere += 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); Loghelp.Log("年度销售额&回款额汇总"); Loghelp.Log(sql2); var list= DBUtils.ExecuteDynamicObject(this.Context, sql2); var sbuList = list.Select(t=>t["SBU"]).ToList().Distinct().ToList(); // sbu //EMT //半导体及北方大区 //采购部 //电能质量APF / SVG产品线 //服务运维部 //国际事业部 //海外营销部 //机场行业线 //决策团队 //诺瓦数能 //其他 //商务运营部 //数据中心 //武汉派诺 //新疆区 //医院 //营销中心 //硬件研发部 //战略市场部 //智慧能源事业部 string sbu1 = ""; string sbu2 = ""; string sbu3 = ""; string sbu4 = ""; string sbu = ""; Dictionary heBingDic = new Dictionary(); heBingDic.Add(sbu1, 0); heBingDic.Add(sbu2, 0); heBingDic.Add(sbu3, 0); heBingDic.Add(sbu4, 0); int row = 0; var insertList = list.Where(t=>1==0).ToList(); insertList = new List(); foreach (var item in list) { if (sbu != item["sbu"] && row > 0 || (row == (list.Count - 1))) { var templist = list.Where(t => t["sbu"] == sbu).ToList(); var tempItem = item.Copy(); tempItem["Salesperson"] = sbu + "小计"; sbu = item["sbu"].ToString(); tempItem["sbu"] = ""; tempItem["X1Month"] = templist.Sum(t => long.Parse(t["X1Month"].ToString())); tempItem["X2Month"] = templist.Sum(t => long.Parse(t["X2Month"].ToString())); tempItem["X3Month"] = templist.Sum(t => long.Parse(t["X3Month"].ToString())); tempItem["X4Month"] = templist.Sum(t => long.Parse(t["X4Month"].ToString())); tempItem["X5Month"] = templist.Sum(t => long.Parse(t["X5Month"].ToString())); tempItem["X6Month"] = templist.Sum(t => long.Parse(t["X6Month"].ToString())); tempItem["X7Month"] = templist.Sum(t => long.Parse(t["X7Month"].ToString())); tempItem["X8Month"] = templist.Sum(t => long.Parse(t["X8Month"].ToString())); tempItem["X9Month"] = templist.Sum(t => long.Parse(t["X9Month"].ToString())); tempItem["X10Month"] = templist.Sum(t => long.Parse(t["X10Month"].ToString())); tempItem["X11Month"] = templist.Sum(t => long.Parse(t["X11Month"].ToString())); tempItem["X12Month"] = templist.Sum(t => long.Parse(t["X12Month"].ToString())); tempItem["H1Month"] = templist.Sum(t => long.Parse(t["H1Month"].ToString())); tempItem["H2Month"] = templist.Sum(t => long.Parse(t["H2Month"].ToString())); tempItem["H3Month"] = templist.Sum(t => long.Parse(t["H3Month"].ToString())); tempItem["H4Month"] = templist.Sum(t => long.Parse(t["H4Month"].ToString())); tempItem["H5Month"] = templist.Sum(t => long.Parse(t["H5Month"].ToString())); tempItem["H6Month"] = templist.Sum(t => long.Parse(t["H6Month"].ToString())); tempItem["H7Month"] = templist.Sum(t => long.Parse(t["H7Month"].ToString())); tempItem["H8Month"] = templist.Sum(t => long.Parse(t["H8Month"].ToString())); tempItem["H9Month"] = templist.Sum(t => long.Parse(t["H9Month"].ToString())); tempItem["H10Month"] = templist.Sum(t => long.Parse(t["H10Month"].ToString())); tempItem["H11Month"] = templist.Sum(t => long.Parse(t["H11Month"].ToString())); tempItem["H12Month"] = templist.Sum(t => long.Parse(t["H12Month"].ToString())); tempItem["XCumulative"] = templist.Sum(t => long.Parse(t["XCumulative"].ToString())); tempItem["UsualAlterAmount"] = templist.Sum(t => long.Parse(t["UsualAlterAmount"].ToString())); tempItem["SiNO"] = templist.Sum(t => long.Parse(t["SiNO"].ToString())); tempItem["SiNOUsualAlter"] = templist.Sum(t => long.Parse(t["SiNOUsualAlter"].ToString())); tempItem["WuhanPilotThisYear"] = templist.Sum(t => long.Parse(t["WuhanPilotThisYear"].ToString())); tempItem["WuhanPilotUsualAlter"] = templist.Sum(t => long.Parse(t["WuhanPilotUsualAlter"].ToString())); tempItem["Discovery"] = templist.Sum(t => long.Parse(t["Discovery"].ToString())); tempItem["HongKongPilot"] = templist.Sum(t => long.Parse(t["HongKongPilot"].ToString())); tempItem["HuaXiaYunLian"] = templist.Sum(t => long.Parse(t["HuaXiaYunLian"].ToString())); tempItem["DetailArea"] = item["DetailArea"].ToString(); tempItem["ZhuhaiPilot"] = templist.Sum(t => long.Parse(t["[ZhuhaiPilot]"].ToString())); tempItem["PilotSumAmount"] = templist.Sum(t => long.Parse(t["PilotSumAmount"].ToString())); tempItem["FID"] =int.Parse(item["FID"].ToString())+1; tempItem["FIDENTITYID"] = int.Parse(item["FIDENTITYID"].ToString()) + 1; ; tempItem["Sort"] = 1; insertList.Add(tempItem); } if (row == 0) { sbu = item["sbu"].ToString(); } } var heJi2 = insertList.Where(t =>( t["SBU"].ToString().Contains("EMT") && !t["SBU"].ToString().Contains("EMT团队")) || t["SBU"].ToString().Contains("数据中心") || t["SBU"].ToString().Contains("医院") || t["SBU"].ToString().Contains("机场行业线")).ToList(); var heJi3 = insertList.Where(t => t["SBU"].ToString().Contains("半导体及北方大区") || t["SBU"].ToString().Contains("营销中心") || t["SBU"].ToString().Contains("新疆区") ).ToList(); var heJi4 = insertList.Where(t => t["SBU"].ToString().Contains("诺瓦数能") || t["SBU"].ToString().Contains("智慧能源事业部") || t["SBU"].ToString().Contains("国际事业部") ||( t["SBU"].ToString().Contains("其他")|| t["SBU"]==null)).ToList(); string insertSql=$@"insert into {tableName} "; //string upsql = $@"update {tableName} set fid=sortNum,FIDENTITYID=sortNum1"; } } }