This commit is contained in:
李狗蛋 2025-03-19 18:36:07 +08:00
parent 11181cc106
commit d3b0aea916
2 changed files with 30 additions and 607 deletions

View File

@ -76,28 +76,27 @@ namespace Pilot.Report.Exploitation.ResultsKanbanSummary
//int year = 2011;
//header.AddChild("ID", new LocaleValue("序号"), SqlStorageType.Sqlvarchar);
header.AddChild("DetailArea", new LocaleValue("明细区域"), SqlStorageType.Sqlvarchar);
header.AddChild("Salesperson", new LocaleValue("销售员"), SqlStorageType.Sqlvarchar);
header.AddChild("FPERFORMANCETARGETS", new LocaleValue(""+year+"年业绩目标(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024Pilot", new LocaleValue(""+year+ "派诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024SiNO", new LocaleValue(""+year+ "兴诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024WuHanPilot", new LocaleValue(""+year+ "武汉派诺(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024Discovery", new LocaleValue(""+year+ "碳索业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024HongKongPilot", new LocaleValue(""+year+ "香港派诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024HuaXiaYunLian", new LocaleValue(""+year+ "华夏云联业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("UsualAlterAmount", new LocaleValue("往年订单变更金额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("2024SumAmount", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("SumAmount2024", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("AttainmentRate", new LocaleValue("达标率"), SqlStorageType.Sqlvarchar);
header.AddChild("2023SumAmount", new LocaleValue(""+(year-1)+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("SameGrowthRate", new LocaleValue("同比增长率"), SqlStorageType.Sqlvarchar);
header.AddChild("FPAYMENTSUM", new LocaleValue(""+year+"回款目标(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("Payment", new LocaleValue("回款额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("PaymentRate", new LocaleValue("回款率"), SqlStorageType.Sqlvarchar);
header.AddChild("ShippedReceivables", new LocaleValue("已发货应收款(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("ExpiredReceivables", new LocaleValue("已到期应收款(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("Area", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar);
header.AddChild("SBU", new LocaleValue("SBU"), SqlStorageType.Sqlvarchar);
header.AddChild("明细区域", new LocaleValue("明细区域"), SqlStorageType.Sqlvarchar);
header.AddChild("销售员", new LocaleValue("销售员"), SqlStorageType.Sqlvarchar);
header.AddChild("本年业绩目标_万元", new LocaleValue(""+year+"年业绩目标(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年派诺业绩_万元", new LocaleValue(""+year+ "派诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年兴诺业绩_万元", new LocaleValue(""+year+ "兴诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年武汉派诺_万元", new LocaleValue(""+year+ "武汉派诺(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年碳索业绩_万元", new LocaleValue(""+year+ "碳索业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年香港派诺业绩_万元", new LocaleValue(""+year+ "香港派诺业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年华夏云联业绩_万元", new LocaleValue(""+year+ "华夏云联业绩(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("往年订单变更金额_万元", new LocaleValue("往年订单变更金额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("本年业绩合计_万元", new LocaleValue(""+year+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("达标率", new LocaleValue("达标率"), SqlStorageType.Sqlvarchar);
header.AddChild("去年合计业绩额_万元", new LocaleValue(""+(year-1)+ "合计业绩额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("同比增长率", new LocaleValue("同比增长率"), SqlStorageType.Sqlvarchar);
header.AddChild("本年回款目标_万元", new LocaleValue(""+year+"回款目标(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("回款额_万元", new LocaleValue("回款额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("回款率", new LocaleValue("回款率"), SqlStorageType.Sqlvarchar);
header.AddChild("已发货应收款_万元", new LocaleValue("已发货应收款(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("已到期应收款_万元", new LocaleValue("已到期应收款(万元)"), SqlStorageType.SqlDecimal);
foreach (var item in header.GetChilds())
{
item.Width = 160;
@ -127,596 +126,23 @@ namespace Pilot.Report.Exploitation.ResultsKanbanSummary
var organization = organizationList == null ? "" : (string.Join(",", organizationList));
// 开始日期
string fStrartDate = customFilter["FStrartDate"]?.ToString();
string fStrartDate = customFilter["FSDate"]?.ToString();
// 结束日期
string fEndDate = customFilter["FEndDate"]?.ToString();
// 审核开始日期
string fSDate = customFilter["FSDate"]?.ToString();
// 审核结束日期
string fEDate = customFilter["FEDate"]?.ToString();
// 下单时间
string fDate = customFilter["F_Date"]?.ToString();
int year = Convert.ToInt32(fDate.Split('-')[0]);
string fEndDate = customFilter["FEDate"]?.ToString();
base.BuilderReportSqlAndTempTable(filter, tableName);
string sql = string.Format(@"/*dialect*/
Select
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'Area',
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'DetailArea',
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME ELSE W4.FNAME END as 'Salesperson',
ISNULL(E.FPERFORMANCETARGETS,0) as 'FPERFORMANCETARGETS', --> 2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024Pilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024SiNO', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024WuHanPilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024Discovery', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024HongKongPilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024HuaXiaYunLian', -->2024
CASE WHEN YEAR(D.FApproveDate) < {0} AND D.FSalerId = D.FSALERID
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO))/10000,0)
ELSE 0
END as 'UsualAlterAmount', --> &
CASE WHEN YEAR(D.FApproveDate) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024SumAmount', -->2024
CASE WHEN YEAR(D.FApproveDate) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {1} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2023SumAmount', -->2023
ISNULL(E.FPAYMENTSUM,0) as 'FPAYMENTSUM', -->()
ISNULL(F.FALLAMOUNT,0)/10000 as 'Payment', --> &
(round( (DD.FBILLALLAMOUNT_LC-(isnull(ae.,0)))*isnull(W3.FSHARERATE,100)/100,2))-
(round( DD.FBILLALLAMOUNT_LC-ISNULL(Q.,0)*ISNULL(W3.FSHARERATE,100)/100,2))
as 'ShippedReceivables', -->
ISNULL(XX.,0) as 'ExpiredReceivables', -->
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'SBU'
INTO #TempTable1
From
T_SAL_ORDER D --
JOIN T_SAL_ORDERFIN DD on D.FID = DD.FID
LEFT JOIN
V_BD_SALESMAN_L W1 on W1.fid = D.FSALERID
LEFT JOIN
T_PerformanceSharing W2 on W2.FSOURCEBILLNO = D.FBILLNO
LEFT JOIN
T_PerformanceSharingEntry W3 on W2.FID = W3.FID
LEFT JOIN
V_BD_SALESMAN_L W4 on W3.FSALEID = W4.fid
LEFT JOIN
{2} A on W1.FNAME = A.
LEFT JOIN
{2} A2 on W4.FNAME = A2.
LEFT JOIN
(
SELECT a.F_Papercontract,
avg(d.FCURWRITTENOFFAMOUNT) as ''
FROM t_AR_receivable A
INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID
INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO
INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID
INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID
AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2'
WHERE
1=1
group by a.F_Papercontract
) AE ON AE.F_Papercontract = D.F_contractnumber
LEFT JOIN
(
SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '',SUM(B.FBILLALLAMOUNT_LC) AS '' FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID
WHERE A.FDOCUMENTSTATUS= 'C'
GROUP BY A.F_Papercontract
) Q ON Q.F_PAPERCONTRACT = D.F_contractnumber --
LEFT JOIN (Select FID,SUM() as '' From View_Table_JXBB GROUP BY FID) XX on XX.FID = D.FID
LEFT JOIN
(Select
A1.F_MBBA_COMBO_QTR as 'FDate',
A2.FPERFORMANCETARGETS as 'FPERFORMANCETARGETS',
A2.FPAYMENTSUM as 'FPAYMENTSUM',
A2.FNAME as 'FNAME'
From
MBBA_t_Cust100002 A1
JOIN
MBBA_t_Cust_Entry100003 A2
on A1.FID = A2.FID
Where A1.FDOCUMENTSTATUS = 'C'
AND A1.F_MBBA_Combo_qtr = {0}) E --
on E.FNAME = D.FSALERID
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1
GROUP BY a1.FORDERNUMBER) F --
on D.FBILLNO = F.FORDERNUMBER
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1
AND a2.FENDDATE < GETDATE()
GROUP BY a1.FORDERNUMBER) G
on D.FBILLNO = G.FORDERNUMBER
LEFT JOIN
T_BD_CUSTOMER_L K on K.FCUSTID = D.FCUSTID
LEFT JOIN
(Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY
Where FID = '670cc977263353'
AND FDocumentStatus = 'C'
AND FForbidStatus = 'A') D2 --#
on D.F_ORDERCATEGORY = D2.FMASTERID
--
Where D.FDocumentStatus = 'C' --AND D.FID in (Select * From #TABLEXYX)
AND D2.FNUMBER != 'Z' AND D.FSALEORGID = 100302
AND ISNULL(A.,'') != '' AND D.FMANUALCLOSE != '1'
AND ISNULL(K.FNAME,'') NOT IN ('','')
AND ISNULL(W1.FNAME,'') != ''", year,year-1,tableNameView);
if (!string.IsNullOrEmpty(salespersonString))
{
sql += string.Format(@" AND B.FSALEID in ({0})", salespersonString);
}
if (!string.IsNullOrEmpty(organization))
{
sql += string.Format(@" AND D.FSaleOrgId in ({0})", organization);
}
if (!string.IsNullOrEmpty(fStrartDate))
{
sql += string.Format(@" AND D.FApproveDate >= '{0}'", fStrartDate);
}
if (!string.IsNullOrEmpty(fEndDate))
{
sql += string.Format(@" AND D.FApproveDate <= '{0}'", fEndDate);
}
if (!string.IsNullOrEmpty(fSDate))
{
sql += string.Format(@" AND D.FAPPROVEDATE >= '{0}'", fSDate);
}
if (!string.IsNullOrEmpty(fEDate))
{
sql += string.Format(@" AND D.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, '{0}'))", fEDate);
}
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/
Select
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'Area',
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'DetailArea',
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN W1.FNAME ELSE W4.FNAME END as 'Salesperson',
ISNULL(E.FPERFORMANCETARGETS,0) as 'FPERFORMANCETARGETS', --> 2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100302 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024Pilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100303 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024SiNO', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 100305 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024WuHanPilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438223 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024Discovery', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 438224 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024HongKongPilot', -->2024
CASE WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} AND D.FSaleOrgId = 533896 THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024HuaXiaYunLian', -->2024
CASE WHEN YEAR(D.FApproveDate) < {0} AND D.FSalerId = D.FSALERID
THEN
ISNULL(((SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MAX(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO)
-
(SELECT
CAST(JSON_VALUE(CAST(FJSONDATA AS NVARCHAR(MAX)), '$.SaleOrderFinance[0].BillAllAmount_LC') as decimal(23,10) ) AS FPrice
From T_SCM_BILLCHANGEVERSIONS
WHere FVERSION =
(
Select MIN(FVERSION) as FVERSION From T_SCM_BILLCHANGEVERSIONS
WHERE
FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO
)
AND FFORMID = 'SAL_SaleOrder'
AND FBILLNO = D.FBILLNO))/10000,0)
ELSE 0
END as 'UsualAlterAmount', --> &
CASE WHEN YEAR(D.FApproveDate) = {0} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {0} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2024SumAmount', -->2024
CASE WHEN YEAR(D.FApproveDate) = {1} AND ISNULL(W3.FSHAREAMOUNT,-1)!=-1
THEN ISNULL(W3.FSHAREAMOUNT,0)/10000
WHEN YEAR(D.FApproveDate) = {1} THEN ISNULL(DD.FBILLALLAMOUNT_LC,0)/10000
ELSE 0
END as '2023SumAmount', -->2023
ISNULL(E.FPAYMENTSUM,0) as 'FPAYMENTSUM', -->()
ISNULL(F.FALLAMOUNT,0)/10000 as 'Payment', --> &
(round( (DD.FBILLALLAMOUNT_LC-(isnull(ae.,0)))*isnull(W3.FSHARERATE,100)/100,2))-
(round( DD.FBILLALLAMOUNT_LC-ISNULL(Q.,0)*ISNULL(W3.FSHARERATE,100)/100,2))
as 'ShippedReceivables', -->
ISNULL(XX.,0) as 'ExpiredReceivables', -->
CASE WHEN ISNULL(W4.FNAME,'') = '' THEN ISNULL(A.,'') ELSE ISNULL(A2.,'') END as 'SBU'
INTO #TempTable2
From
T_SAL_ORDER D --
JOIN T_SAL_ORDERFIN DD on D.FID = DD.FID
LEFT JOIN
V_BD_SALESMAN_L W1 on W1.fid = D.FSALERID
LEFT JOIN
T_PerformanceSharing W2 on W2.FSOURCEBILLNO = D.FBILLNO
LEFT JOIN
T_PerformanceSharingEntry W3 on W2.FID = W3.FID
LEFT JOIN
V_BD_SALESMAN_L W4 on W3.FSALEID = W4.fid
LEFT JOIN
{2} A on W1.FNAME = A.
LEFT JOIN
{2} A2 on W4.FNAME = A2.
LEFT JOIN
(
SELECT a.F_Papercontract,
avg(d.FCURWRITTENOFFAMOUNT) as ''
FROM t_AR_receivable A
INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID =A.FID
INNER JOIN T_AR_RECMacthLogENTRY B ON A.FBILLNO = B.FSRCBILLNO
INNER JOIN T_AR_RECMacthLog C ON C.FID = B.FID
INNER JOIN T_AR_RECMacthLogENTRY D ON D.FID = B.FID
AND D.FSOURCETYPE = '36cf265bd8c3452194ed9c83ec5e73d2'
WHERE
1=1
group by a.F_Papercontract
) AE ON AE.F_Papercontract = D.F_contractnumber
LEFT JOIN
(
SELECT F_Papercontract,MAX(CONVERT(NVARCHAR(10), A.FDATE,23)) AS '',SUM(B.FBILLALLAMOUNT_LC) AS '' FROM T_SAL_DELIVERYNOTICE A
INNER JOIN T_SAL_DELIVERYNOTICEFIN B ON A.FID =B.FID
WHERE A.FDOCUMENTSTATUS= 'C'
GROUP BY A.F_Papercontract
) Q ON Q.F_PAPERCONTRACT = D.F_contractnumber --
LEFT JOIN (Select FID,SUM() as '' From View_Table_JXBB GROUP BY FID) XX on XX.FID = D.FID
LEFT JOIN
(Select
A1.F_MBBA_COMBO_QTR as 'FDate',
A2.FPERFORMANCETARGETS as 'FPERFORMANCETARGETS',
A2.FPAYMENTSUM as 'FPAYMENTSUM',
A2.FNAME as 'FNAME'
From
MBBA_t_Cust100002 A1
JOIN
MBBA_t_Cust_Entry100003 A2
on A1.FID = A2.FID
Where A1.FDOCUMENTSTATUS = 'C'
AND A1.F_MBBA_Combo_qtr = {0}) E --
on E.FNAME = D.FSALERID
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1
GROUP BY a1.FORDERNUMBER) F --
on D.FBILLNO = F.FORDERNUMBER
LEFT JOIN
(Select
a1.FORDERNUMBER,
SUM(a1.FALLAMOUNT) as 'FALLAMOUNT'
From
T_AR_RECEIVABLEENTRY a1
JOIN
T_AR_RECEIVABLE a2
on a1.FID = a2.FID
Where a1.FORDERNUMBER != '' AND a2.FSETACCOUNTTYPE = 1
AND a2.FENDDATE < GETDATE()
GROUP BY a1.FORDERNUMBER) G
on D.FBILLNO = G.FORDERNUMBER
LEFT JOIN
(Select FNumber,FMASTERID From T_BAS_ASSISTANTDATAENTRY
Where FID = '670cc977263353'
AND FDocumentStatus = 'C'
AND FForbidStatus = 'A') D2 --#
on D.F_ORDERCATEGORY = D2.FMASTERID
--
Where D.FDocumentStatus = 'C' --AND D.FID in (Select * From #TABLEXYX)
AND D2.FNUMBER != 'Z' AND D.FSALEORGID != 100302", year, year - 1, tableNameView);
if (!string.IsNullOrEmpty(salespersonString))
{
sql += string.Format(@" AND B.FSALEID in ({0})", salespersonString);
}
if (!string.IsNullOrEmpty(organization))
{
sql += string.Format(@" AND D.FSaleOrgId in ({0})", organization);
}
if (!string.IsNullOrEmpty(fStrartDate))
{
sql += string.Format(@" AND D.FApproveDate >= '{0}'", fStrartDate);
}
if (!string.IsNullOrEmpty(fEndDate))
{
sql += string.Format(@" AND D.FApproveDate <= '{0}'", fEndDate);
}
if (!string.IsNullOrEmpty(fSDate))
{
sql += string.Format(@" AND D.FAPPROVEDATE >= '{0}'", fSDate);
}
if (!string.IsNullOrEmpty(fEDate))
{
sql += string.Format(@" AND D.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, '{0}'))", fEDate);
}
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/Select * INTO #TempTable3 From #TempTable1 UNION ALL (Select * From #TempTable2)");
sql += string.Format(@"/*dialect*/
Select
A.Area, --
A.DetailArea, --
A.Salesperson, --
A.FPERFORMANCETARGETS, --
SUM(A.[2024Pilot]) as 'Pilot2024', --2024
SUM(A.[2024SiNO]) as 'SiNO2024', --2024
SUM(A.[2024WuHanPilot]) as 'WuHanPilot2024', --2024
SUM(A.[2024Discovery]) as 'Discovery2024', --2024
SUM(A.[2024HongKongPilot]) as 'HongKongPilot2024', --2024
SUM(A.[2024HuaXiaYunLian]) as 'HuaXiaYunLian2024', --
SUM(A.UsualAlterAmount) as 'UsualAlterAmount', --&
SUM(A.[2024SumAmount]) as 'SumAmount2024', --2024
SUM(A.[2023SumAmount]) as 'SumAmount2023', --2023
A.FPAYMENTSUM, --
SUM(A.Payment) as 'Payment', --&
SUM(A.ShippedReceivables) as 'ShippedReceivables', --
SUM(A.ExpiredReceivables) as 'ExpiredReceivables', --
A.SBU
Into #TempTable4
From
#TempTable3 A
Group by A.Area,A.DetailArea,A.Salesperson,A.FPERFORMANCETARGETS,A.FPAYMENTSUM,A.SBU;
Select
ROW_NUMBER() OVER (ORDER BY SBU) AS ID,
*,
CASE When SumAmount2024 = 0 or FPERFORMANCETARGETS = 0
THen 0
ELSE (SumAmount2024/FPERFORMANCETARGETS)*100
END as 'AttainmentRate',--
CASE WHEN SumAmount2023 = 0 or SumAmount2024 = 0
THEN 0
ELSE ((SumAmount2024-SumAmount2023)/SumAmount2023)*100
END as 'SameGrowthRate', --
0 as 'PaymentRate' --
Into #TempTable5
From
#TempTable4;");
sql += string.Format(@"/*dialect*/
SELECT
*,
ROW_NUMBER() OVER (ORDER BY t1.Area,Sort) AS FID,
ROW_NUMBER() OVER (ORDER BY t1.Area,Sort) AS FIDENTITYID
INTO {0}
FROM(SELECT *,1 Sort FROM #TempTable3
UNION ALL
SELECT
null,
t1.Area,
t1.Area+'',
'',
SUM(t1.FPERFORMANCETARGETS),
SUM(t1.Pilot2024),
SUM(t1.SiNO2024),
SUM(t1.WuHanPilot2024),
SUM(t1.Discovery2024),
SUM(t1.HongKongPilot2024),
SUM(t1.HuaXiaYunLian2024),
SUM(t1.UsualAlterAmount),
SUM(t1.SumAmount2024),
SUM(t1.SumAmount2023),
SUM(t1.FPAYMENTSUM),
SUM(t1.Payment),
SUM(t1.ShippedReceivables),
SUM(t1.ExpiredReceivables),
'',
0 Sort
FROM #TempTable5 t1 GROUP BY t1.Area) t1
order by t1.Area,Sort;", tableName);
string sql = string.Format("EXEC GZ_JXKBHZB_LTH '{0}','{1}' " +
"SELECT" +
"ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FID," +
"ROW_NUMBER() OVER (ORDER BY SBU DESC) AS FIDENTITYID," +
" * INTO {2} FROM JXKBHZB", fStrartDate,fEndDate,tableName);
Loghelp.Log("BuilderReportSqlAndTempTable");
Loghelp.Log(sql);
DBUtils.Execute(this.Context, sql);
}
/// <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,
SUM(FPERFORMANCETARGETS),
SUM([2024Pilot]),
SUM([2024SiNO]),
SUM([2024WuHanPilot]),
SUM([2024Discovery]),
SUM([2024HongKongPilot]),
SUM([2024HuaXiaYunLian]),
SUM(UsualAlterAmount),
SUM([2024SumAmount]),
SUM([2023SumAmount]),
SUM(FPAYMENTSUM),
SUM(Payment),
SUM(ShippedReceivables),
SUM(ExpiredReceivables),
null,
3,
{2} FID,
{2} FIDENTITYID
FROM
(
{0}
) temp2
WHERE
Sort = 0
) temp
";
string SqlStr = string.Format(sql, sSQL, rowId + 1, rowId + 2, rowId + 1024);
Loghelp.Log("GetListData");
Loghelp.Log(SqlStr);
return base.GetListData(SqlStr);
}
}
}

View File

@ -156,10 +156,7 @@ namespace Pilot.Report.Exploitation.SpecialDetails
sql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate);
}
sql += string.Format(@"/*dialect*/
sql += string.Format(@"/*dialect*/
Select * INTO #TABLEXYX From
(Select A.FID From View_Table_Temp2 A JOIN View_Table_Temp3 B
on A.FCONTRACTNUMBER=B.FCONTRACTNUMBER AND A.FCREATEDATE = B.FCREATEDATE