From 6dacac48ebb596797dfd8e5bf3a803ed0b583643 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 05 二月 2025 17:11:31 +0800
Subject: [PATCH] 取水口综合信息-统计数据逻辑处理模块完善
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 96 +++++++++++++++++++++++++++++++-----------------
1 files changed, 62 insertions(+), 34 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 5c4ed90..f5c65a6 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -349,28 +349,30 @@
<!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級-->
<select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo">
SELECT *
- FROM (SELECT '鐗╃悊鍗�' AS cardType,
- card.cardNum AS cardNum,
- card.money AS money,
- (CASE
- WHEN card.state = 1 THEN '姝e父'
- WHEN card.state = 2 THEN '宸叉敞閿�'
- ELSE '宸叉寕澶�'
- END) AS state
+ FROM (SELECT
+ '鐗╃悊鍗�' AS cardType,
+ card.cardNum AS cardNum,
+ card.money AS money,
+ (CASE
+ WHEN card.state = 1 THEN '姝e父'
+ WHEN card.state = 2 THEN '宸叉敞閿�'
+ ELSE '宸叉寕澶�'
+ END) AS state
FROM se_client_card card
- INNER JOIN se_client cli ON cli.id = card.clientId
+ INNER JOIN se_client cli ON cli.id = card.clientId
WHERE state != 4 AND card.clientId = #{clientId,jdbcType=BIGINT}
UNION ALL
- SELECT '铏氭嫙鍗�' AS cardType,
- vc.vc_num AS cardNum,
- vc.money AS money,
- (CASE
- WHEN vc.in_use = 0 THEN '鏈娇鐢�'
- WHEN vc.in_use = 1 THEN '浣跨敤涓�'
- END) AS state
+ SELECT
+ '铏氭嫙鍗�' AS cardType,
+ vc.vc_num AS cardNum,
+ ROUND(vc.money /100, 2) AS money,
+ (CASE
+ WHEN vc.in_use = 0 THEN '鏈娇鐢�'
+ WHEN vc.in_use = 1 THEN '浣跨敤涓�'
+ END) AS state
FROM se_virtual_card vc
- INNER JOIN se_client cli ON cli.id = vc.client_id
- WHERE vc.client_id = #{clientId,jdbcType=BIGINT}
+ INNER JOIN se_client cli ON cli.id = vc.client_id
+ WHERE vc.state = 1 AND vc.client_id = #{clientId,jdbcType=BIGINT}
) card
ORDER BY card.Money DESC, card.State DESC
</select>
@@ -664,14 +666,27 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐佃褰曟暟閲�-->
<select id="getCardUsagesCount" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
SELECT
- cli.name AS clientName,
- card.cardNum,
- (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
- (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
- ROUND(card.money,2) AS balance
- FROM se_client_card card
- INNER JOIN se_client cli ON cli.id = card.clientId
- INNER JOIN se_recharge_history rch ON rch.cardId = card.id
+ card.id as cardId,
+ cli.name AS clientName,
+ card.cardNum,
+ a.cl_ic_card_no,
+ card.money AS balance,
+ a.totalConsumption,
+ b.totalRecharge
+ FROM se_client_card card
+ INNER JOIN se_client cli ON cli.id = card.clientId
+ LEFT JOIN (
+ SELECT his.cl_ic_card_no, SUM(his.cl_this_money) AS totalConsumption
+ FROM rm_open_close_valve_history his
+ WHERE his.cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY his.cl_ic_card_no
+ ) a ON a.cl_ic_card_no = CAST(card.cardNum AS CHAR)
+ LEFT JOIN (
+ SELECT rch.cardId,ROUND(SUM(rch.amount),2) as totalRecharge
+ FROM se_recharge_history rch
+ WHERE rch.operate_valid = 2 AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY rch.cardId
+ ) b ON b.cardId = card.id
<where>
<if test="clientName != null and clientName != ''">
AND cli.name like CONCAT('%', #{clientName}, '%')
@@ -690,14 +705,27 @@
<!--鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐碉細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
<select id="getCardUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
SELECT
- cli.name AS clientName,
- card.cardNum,
- (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
- (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.cl_ic_card_no = card.cardNum AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
- ROUND(card.money,2) AS balance
- FROM se_client_card card
- INNER JOIN se_client cli ON cli.id = card.clientId
- INNER JOIN se_recharge_history rch ON rch.cardId = card.id
+ card.id as cardId,
+ cli.name AS clientName,
+ card.cardNum,
+ a.cl_ic_card_no,
+ card.money AS balance,
+ a.totalConsumption,
+ b.totalRecharge
+ FROM se_client_card card
+ INNER JOIN se_client cli ON cli.id = card.clientId
+ LEFT JOIN (
+ SELECT his.cl_ic_card_no, SUM(his.cl_this_money) AS totalConsumption
+ FROM rm_open_close_valve_history his
+ WHERE his.cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY his.cl_ic_card_no
+ ) a ON a.cl_ic_card_no = CAST(card.cardNum AS CHAR)
+ LEFT JOIN (
+ SELECT rch.cardId,ROUND(SUM(rch.amount),2) as totalRecharge
+ FROM se_recharge_history rch
+ WHERE rch.operate_valid = 2 AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}
+ GROUP BY rch.cardId
+ ) b ON b.cardId = card.id
<where>
<if test="clientName != null and clientName != ''">
AND cli.name like CONCAT('%', #{clientName}, '%')
--
Gitblit v1.8.0