2025-03-14 10:00:24 +08:00
|
|
|
|
using Kingdee.BOS.App.Data;
|
|
|
|
|
using Kingdee.BOS;
|
|
|
|
|
using Kingdee.BOS.Contracts.Report;
|
|
|
|
|
using Kingdee.BOS.Core.Report;
|
|
|
|
|
using Kingdee.BOS.Util;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using Pilot.Report.Exploitation.PublicClass;
|
2025-03-14 19:50:18 +08:00
|
|
|
|
using Pilot.Report.Exploitation.Common;
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
|
|
|
|
namespace Pilot.Report.Exploitation.ResultsKanbanSummary
|
|
|
|
|
{
|
|
|
|
|
[Description("【列表插件】绩效看板汇总报表【报表】"), HotUpdate]
|
|
|
|
|
public class ResultsKanbanSumReport: SysReportBaseService
|
|
|
|
|
{
|
|
|
|
|
private string tableNameView = EnvironmentTEST.tableNameView_TEST;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化
|
|
|
|
|
/// </summary>
|
|
|
|
|
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<DecimalControlField>
|
|
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 报表列表头
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public override ReportHeader GetReportHeaders(IRptParams filter)
|
|
|
|
|
{
|
|
|
|
|
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
|
|
|
|
|
|
|
|
|
base.GetReportHeaders(filter);
|
|
|
|
|
|
|
|
|
|
ReportHeader header = new ReportHeader();
|
|
|
|
|
|
|
|
|
|
// 下单时间
|
|
|
|
|
string fDate = customFilter["F_Date"]?.ToString();
|
|
|
|
|
|
|
|
|
|
int year = Convert.ToInt32(fDate.Split('-')[0]);
|
|
|
|
|
//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("Pilot2024", new LocaleValue(""+year+ "派诺业绩(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("SiNO2024", new LocaleValue(""+year+ "兴诺业绩(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("WuHanPilot2024", new LocaleValue(""+year+ "武汉派诺(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("Discovery2024", new LocaleValue(""+year+ "碳索业绩(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("HongKongPilot2024", new LocaleValue(""+year+ "香港派诺业绩(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("HuaXiaYunLian2024", new LocaleValue(""+year+ "华夏云联业绩(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("UsualAlterAmount", new LocaleValue("往年订单变更金额(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("SumAmount2024", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("SumAmount2024", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
header.AddChild("AttainmentRate", new LocaleValue("达标率"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
header.AddChild("SumAmount2023", 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("SBU", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
|
|
|
|
foreach (var item in header.GetChilds())
|
|
|
|
|
{
|
|
|
|
|
item.Width = 160;
|
|
|
|
|
}
|
|
|
|
|
return header;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 显示报表数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
/// <param name="tableName"></param>
|
|
|
|
|
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 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.FDATE) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024Pilot', -->2024派诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024SiNO', -->2024兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024WuHanPilot', -->2024武汉兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024Discovery', -->2024碳索
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024HongKongPilot', -->2024香港兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024HuaXiaYunLian', -->2024华夏云联
|
|
|
|
|
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))/10000,0)
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as 'UsualAlterAmount', --> 往年订单变更金额(派诺&子公司合计)
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024SumAmount', -->2024合计业绩额
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {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.FDate >= '{0}'", fStrartDate);
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrEmpty(fEndDate))
|
|
|
|
|
{
|
|
|
|
|
sql += string.Format(@" AND D.FDate <= '{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.FDATE) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024Pilot', -->2024派诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024SiNO', -->2024兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024WuHanPilot', -->2024武汉兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024Discovery', -->2024碳索
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024HongKongPilot', -->2024香港兴诺
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024HuaXiaYunLian', -->2024华夏云联
|
|
|
|
|
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))/10000,0)
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as 'UsualAlterAmount', --> 往年订单变更金额(派诺&子公司合计)
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
|
|
|
|
|
ELSE 0
|
|
|
|
|
END as '2024SumAmount', -->2024合计业绩额
|
|
|
|
|
CASE WHEN YEAR(D.FDATE) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
|
|
|
|
|
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
|
|
|
|
|
WHEN YEAR(D.FDATE) = {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.FDate >= '{0}'", fStrartDate);
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrEmpty(fEndDate))
|
|
|
|
|
{
|
|
|
|
|
sql += string.Format(@" AND D.FDate <= '{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
|
2025-03-14 20:02:04 +08:00
|
|
|
|
SELECT
|
2025-03-14 10:00:24 +08:00
|
|
|
|
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);
|
2025-03-14 19:50:18 +08:00
|
|
|
|
Loghelp.Log("BuilderReportSqlAndTempTable");
|
|
|
|
|
Loghelp.Log(sql);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
DBUtils.Execute(this.Context, sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取前端组件转换过滤条件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 生成显示表后更改
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sSQL"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
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,
|
|
|
|
|
'合计:',
|
|
|
|
|
null,
|
|
|
|
|
SUM(FPERFORMANCETARGETS),
|
|
|
|
|
SUM(Pilot2024),
|
|
|
|
|
SUM(SiNO2024),
|
|
|
|
|
SUM(WuHanPilot2024),
|
|
|
|
|
SUM(Discovery2024),
|
|
|
|
|
SUM(HongKongPilot2024),
|
|
|
|
|
SUM(HuaXiaYunLian2024),
|
|
|
|
|
SUM(UsualAlterAmount),
|
|
|
|
|
SUM(SumAmount2024),
|
|
|
|
|
SUM(SumAmount2023),
|
|
|
|
|
SUM(FPAYMENTSUM),
|
|
|
|
|
SUM(Payment),
|
|
|
|
|
SUM(ShippedReceivables),
|
|
|
|
|
SUM(ExpiredReceivables),
|
|
|
|
|
3,
|
|
|
|
|
{2} FID,
|
|
|
|
|
{2} FIDENTITYID
|
|
|
|
|
FROM
|
|
|
|
|
(
|
|
|
|
|
{0}
|
|
|
|
|
) temp2
|
|
|
|
|
WHERE
|
|
|
|
|
Sort = 0
|
|
|
|
|
) temp
|
|
|
|
|
";
|
|
|
|
|
string SqlStr = string.Format(sql, sSQL, rowId + 1, rowId + 2, rowId + 1024);
|
2025-03-14 19:50:18 +08:00
|
|
|
|
Loghelp.Log("GetListData");
|
|
|
|
|
Loghelp.Log(SqlStr);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
return base.GetListData(SqlStr);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|