From 633a003d232e37c79b7135ccda35eda1c69952c6 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期一, 25 五月 2026 17:28:01 +0800
Subject: [PATCH] feat:统计数据测试调整

---
 platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml |  154 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 137 insertions(+), 17 deletions(-)

diff --git a/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
index 0aea4e5..765f216 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
@@ -184,7 +184,7 @@
 	<select id="contractIncomeAnalysis"
 			resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisVo">
 		SELECT
-			compName,
+			compId,
 			SUM(CASE WHEN month_num = 1 THEN total_amount ELSE 0 END) AS 'srMonth1',
 				SUM(CASE WHEN month_num = 1 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth1',
 				SUM(CASE WHEN month_num = 1 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth1',
@@ -202,9 +202,9 @@
 				SUM(CASE WHEN month_num = 4 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth4',
 				SUM(CASE WHEN month_num = 4 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth4',
 				SUM(CASE WHEN month_num = 5 THEN total_amount ELSE 0 END) AS 'srMonth5',
-				SUM(CASE WHEN month_num = 5 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth5',
-				SUM(CASE WHEN month_num = 5 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth5',
-				SUM(CASE WHEN month_num = 5 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth5',
+				SUM(CASE WHEN month_num = 5 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth5',
+				SUM(CASE WHEN month_num = 5 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth5',
+				SUM(CASE WHEN month_num = 5 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth5',
 				SUM(CASE WHEN month_num = 6 THEN total_amount ELSE 0 END) AS 'srMonth6',
 				SUM(CASE WHEN month_num = 6 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth6',
 				SUM(CASE WHEN month_num = 6 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth6',
@@ -235,7 +235,7 @@
 				SUM(CASE WHEN month_num = 12 AND pay_type = 3 THEN total_amount ELSE 0 END) AS 'qtMonth12'
 		FROM (
 		SELECT
-		COALESCE(pc.payee_comp_id, '鏈煡鍗曚綅') AS compName,
+		COALESCE(pc.payee_comp_id, '鏈煡鍗曚綅') AS compId,
 		MONTH(payment_time) AS month_num,
 		pay_type,
 		COALESCE(payment_amount, 0) AS total_amount
@@ -250,7 +250,7 @@
 			#{id}
 		</foreach>
 			 ) AS source_data
-		GROUP BY compName
+		GROUP BY compId
 
 	</select>
 	<select id="contractIncomeAnalysisByComp"
@@ -746,9 +746,11 @@
 		SELECT
 		SUM( amount )
 		FROM
-		contract
+		contract ct
 		WHERE
-		party_b_id IN
+		      ct.del_flag = '0'
+		and  ct.supply_attribute = c.supply_attribute
+		and ct.party_b_id IN
 		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
 			#{id}
 		</foreach>
@@ -761,9 +763,11 @@
 		SELECT
 		SUM( amount )
 		FROM
-		contract
+		contract ct
 		WHERE
-		party_b_id IN
+		ct.del_flag = '0'
+		and  ct.supply_attribute = c.supply_attribute
+		and ct.party_b_id IN
 		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
 			#{id}
 		</foreach>
@@ -776,9 +780,11 @@
 		SELECT
 		SUM( amount )
 		FROM
-		contract
+		contract ct
 		WHERE
-		party_b_id IN
+		ct.del_flag = '0'
+		and  ct.supply_attribute = c.supply_attribute
+		and ct.party_b_id IN
 		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
 			#{id}
 		</foreach>
@@ -791,9 +797,11 @@
 		SELECT
 		SUM( amount )
 		FROM
-		contract
+		contract ct
 		WHERE
-		party_b_id IN
+		ct.del_flag = '0'
+		and  ct.supply_attribute = c.supply_attribute
+		and ct.party_b_id IN
 		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
 			#{id}
 		</foreach>
@@ -806,9 +814,11 @@
 		SELECT
 		SUM( amount )
 		FROM
-		contract
+		contract ct
 		WHERE
-		party_b_id IN
+		ct.del_flag = '0'
+		and  ct.supply_attribute = c.supply_attribute
+		and ct.party_b_id IN
 		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
 			#{id}
 		</foreach>
@@ -818,7 +828,8 @@
 		FROM
 		contract c
 		WHERE
-		c.supply_attribute IS NOT NULL
+			c.del_flag = '0'
+		and c.supply_attribute IS NOT NULL
 		AND YEAR ( sign_date ) = #{queryDTO.year}
 		GROUP BY
 		c.supply_attribute
@@ -888,4 +899,113 @@
 		ORDER BY m.month_num
 
 	</select>
+	<select id="contractAmountAnalysisBySaleModel"
+			resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo">
+		SELECT
+		b.sales_model area_id,
+		SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze,
+		ROUND(
+		SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / (
+		SELECT
+		SUM( amount )
+		FROM
+		contract c, business_customer bc
+		WHERE
+		bc.id = c.party_a_id
+		and c.del_flag = '0'
+		and bc.del_flag = '0'
+		and bc.sales_model = b.sales_model
+		and party_b_id IN
+		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+		) * 100,
+		2
+		) AS sgbzb,
+		SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze,
+		ROUND(
+		SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / (
+		SELECT
+		SUM( amount )
+		FROM
+		contract c, business_customer bc
+		WHERE
+		bc.id = c.party_a_id
+		and c.del_flag = '0'
+		and bc.del_flag = '0'
+		and bc.sales_model = b.sales_model
+		and party_b_id IN
+		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+		) * 100,
+		2
+		) AS jxczb ,
+		SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
+		ROUND(
+		SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / (
+		SELECT
+		SUM( amount )
+		FROM
+		contract c, business_customer bc
+		WHERE
+		bc.id = c.party_a_id
+		and c.del_flag = '0'
+		and bc.del_flag = '0'
+		and bc.sales_model = b.sales_model
+		and party_b_id IN
+		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+		) * 100,
+		2
+		) AS smjzb ,
+		SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
+		ROUND(
+		SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / (
+		SELECT
+		SUM( amount )
+		FROM
+		contract c, business_customer bc
+		WHERE
+		bc.id = c.party_a_id
+		and c.del_flag = '0'
+		and bc.del_flag = '0'
+		and bc.sales_model = b.sales_model
+		and party_b_id IN
+		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+		) * 100,
+		2
+		) AS ymjzb ,
+		SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
+		ROUND(
+		SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / (
+		SELECT
+		SUM( amount )
+		FROM
+		contract c, business_customer bc
+		WHERE
+		bc.id = c.party_a_id
+		and c.del_flag = '0'
+		and bc.del_flag = '0'
+		and bc.sales_model = b.sales_model
+		and party_b_id IN
+		<foreach collection="compIds" item="id" open="(" close=")" separator=",">
+			#{id}
+		</foreach>
+		) * 100,
+		2
+		) AS tfzb
+		FROM
+		contract c
+		JOIN business_customer b ON c.party_a_id = b.id
+		WHERE
+		b.sales_model IS NOT NULL
+		AND YEAR ( sign_date ) = #{queryDTO.year}
+		GROUP BY
+		b.sales_model
+
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1