From 4783fc799e4416c4c90e07afd00e733502f0bba8 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 31 十月 2024 16:09:11 +0800
Subject: [PATCH] 1、更新日漏损最新记录有bug(新生成了记录,应该是更新老记录),修改之 ; 2、CommonV1_0_0中获取开关阀类型名称时,对于null返回空字符串。
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 187 +++++++++++++++++++++++++++++-----------------
1 files changed, 116 insertions(+), 71 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 1828bc0..2753352 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -61,10 +61,13 @@
</delete>
<!--渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級-->
+ <!--2024-06-30鍙栨秷搴熷純锛屾仮澶嶄娇鐢�-->
<select id="getCardIdByAddr" resultType="java.lang.Long">
SELECT id AS cardId
FROM se_client_card
WHERE cardAddr = #{cardAddr}
+ ORDER BY id DESC
+ LIMIT 1
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�-->
@@ -346,47 +349,67 @@
<!--鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級-->
<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
- WHERE card.clientId = #{clientId,jdbcType=BIGINT}
+ 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}
- <!-- SELECT '铏氭嫙鍗�' AS cardType,-->
- <!-- virtualCard.vc_num AS CardNum,-->
- <!-- virtualCard.money AS vcMoney,-->
- <!-- (CASE-->
- <!-- WHEN virtualCard.in_use = 0 THEN '鏈娇鐢�'-->
- <!-- WHEN virtualCard.in_use = 1 THEN '浣跨敤涓�'-->
- <!-- END) AS State-->
- <!-- FROM se_client client-->
- <!-- LEFT JOIN se_virtual_card virtualCard ON client.id = virtualCard.client_id-->
- <!-- WHERE 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>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃-->
<select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
- SELECT *
- FROM v_operate
- WHERE cardNum = #{cardNum,jdbcType=BIGINT}
+ SELECT
+ ope.id AS orderNumber,
+ cli.villageId,
+ cli.districtTitle,
+ cli.clientNum,
+ cli.`name`,
+ card.cardNum,
+ cli.idCard,
+ cli.phone,
+ IFNULL(ope.money,0) AS money,
+ IFNULL(ope.gift,0) AS gift,
+ IFNULL(ope.card_cost,0) AS cardCost,
+ IFNULL((ope.money + ope.trade_amount + ope.gift),0) AS afterRecharge,
+ ope.payment_id AS paymentId,
+ pay.name AS paymentMethod,
+ CASE
+ WHEN ope.operate_type = 1 THEN '寮�鍗�'
+ WHEN ope.operate_type = 2 THEN '鍏呭��'
+ WHEN ope.operate_type = 3 THEN '閿�鍗�'
+ END AS operateType,
+ ope.operate_dt AS operateDt,
+ user.name AS operatorName
+ FROM se_card_operate ope
+ LEFT JOIN se_client cli ON cli.id = ope.client_id
+ LEFT JOIN se_client_card card ON card.id = ope.card_id
+ LEFT JOIN se_payment_method pay ON pay.id = ope.payment_id
+ LEFT JOIN ba_user user ON user.id = ope.operator
+ WHERE ope.operate_valid = 2 AND ope.operate_type in (1,2,3) AND cardNum = #{cardNum,jdbcType=BIGINT}
+<!-- SELECT *-->
+<!-- FROM v_operate-->
+<!-- WHERE cardNum = #{cardNum,jdbcType=BIGINT}-->
</select>
<!--鏍规嵁姘村崱缂栧彿鑾峰彇浣欓-->
@@ -423,6 +446,7 @@
WHEN state = 1 THEN '姝e父'
WHEN state = 2 THEN '宸叉敞閿�'
WHEN state = 3 THEN '宸叉寕澶�'
+ WHEN state = 4 THEN '鏃犳晥鍗$墖'
END) AS stateName
FROM se_client_card
WHERE cardNum = #{cardNum,jdbcType=BIGINT}
@@ -432,7 +456,7 @@
<select id="getCardsCount" parameterType="java.util.Map" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
+ LEFT JOIN se_client cli ON card.clientId = cli.id
<where>
AND card.state = 1
<if test="clientNum != null and clientNum != ''">
@@ -452,25 +476,16 @@
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�-->
<select id="getCards" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
SELECT cli.clientNum,
- cli.name AS clientName,
- cardNum,
- <!-- CASE-->
- <!-- WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
- <!-- ELSE card.cardNum-->
- <!-- END AS cardNum,-->
- cli.phone,
- cli.idCard,
- card.state AS cardState,
- <!-- (CASE-->
- <!-- WHEN card.state = 1 THEN '姝e父'-->
- <!-- WHEN card.state = 2 THEN '宸叉敞閿�'-->
- <!-- WHEN card.state = 3 THEN '宸叉寕澶�'-->
- <!-- End) AS stateName,-->
- '姝e父' AS stateName,
- '鍐滄埛鍗�' AS cardType,
- FORMAT(card.money, 2) AS money
+ cli.name AS clientName,
+ cardNum,
+ cli.phone,
+ cli.idCard,
+ card.state AS cardState,
+ '姝e父' AS stateName,
+ '鍐滄埛鍗�' AS cardType,
+ FORMAT(card.money, 2) AS money
FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
+ LEFT JOIN se_client cli ON card.clientId = cli.id
<where>
AND card.state = 1
<if test="clientNum != null and clientNum != ''">
@@ -504,23 +519,20 @@
<!--鑾峰彇宸叉寕澶辨湭琛ュ崱鐨勮褰�-->
<select id="getUnreplaced" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
- SELECT cli.clientNum,
- cli.name AS clientName,
- cardNum,
- <!-- CASE-->
- <!-- WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
- <!-- ELSE card.cardNum-->
- <!-- END AS cardNum,-->
- cli.phone,
- cli.idCard,
- card.state AS cardState,
- '宸叉寕澶�' AS stateName,
- '鍐滄埛鍗�' AS cardType,
- FORMAT(card.money, 2) AS money
+ SELECT
+ cli.clientNum,
+ cli.name AS clientName,
+ cardNum,
+ cli.phone,
+ cli.idCard,
+ card.state AS cardState,
+ '宸叉寕澶�' AS stateName,
+ '鍐滄埛鍗�' AS cardType,
+ FORMAT(card.money, 2) AS money
FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
+ INNER JOIN se_client cli ON card.clientId = cli.id
WHERE card.state = 3
- AND NOT EXISTS(SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.id)
+ AND NOT EXISTS(SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.id)
ORDER BY card.id
<trim prefix="limit ">
<if test="start != null and count != null">
@@ -529,7 +541,7 @@
</trim>
</select>
- <!--鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け浜嬭褰曟暟閲忥紙琛ュ崱銆佽В閿佷娇鐢級-->
+ <!--鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け璁板綍鏁伴噺锛堣ˉ鍗°�佽В閿佷娇鐢級-->
<select id="getLostCount" resultType="java.lang.Integer">
SELECT COUNT(*) AS recordCount
FROM se_client_card card
@@ -556,7 +568,7 @@
<select id="getCardsByClientNameAndPhoneCount" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
+ INNER JOIN se_client cli ON card.clientId = cli.id
<where>
card.state = 1
<if test="clientName != null and clientName != ''">
@@ -586,7 +598,7 @@
'鍐滄埛鍗�' AS cardType,
FORMAT(card.money, 2) AS money
FROM se_client_card card
- INNER JOIN se_client cli ON card.clientId = cli.id
+ LEFT JOIN se_client cli ON card.clientId = cli.id
<where>
card.state = 1
<if test="clientName != null and clientName != ''">
@@ -636,11 +648,11 @@
WHERE state = 1
</select>
- <!--鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺-->
+ <!--鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺锛屾棤鏁堝崱鐗囨帓闄ゅ湪澶�-->
<select id="getCountByCardAddr" resultType="java.lang.Long">
SELECT COUNT(*) AS recordCount
FROM se_client_card
- WHERE cardAddr = #{cardAddr}
+ WHERE cardAddr = #{cardAddr} AND se_client_card.state != 4
</select>
<!--鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺-->
@@ -708,4 +720,37 @@
</if>
</trim>
</select>
+
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱鍏呭�兼�昏-->
+ <select id="getTotalRecharge" resultType="java.lang.Float">
+ SELECT ROUND(SUM(amount),2) AS totalRecharge
+ FROM se_recharge_history
+ WHERE operateDt BETWEEN #{timeStart} AND #{timeStop}
+ </select>
+
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱娑堣垂鎬昏-->
+ <select id="getTotalConsumption" resultType="java.lang.Float">
+ SELECT ROUND(SUM(cl_this_money),2) AS totalConsumption
+ FROM rm_open_close_valve_history
+ WHERE cl_dt BETWEEN #{timeStart} AND #{timeStop}
+ </select>
+
+ <!--渚濇嵁姘村崱鍦板潃灏嗘渶鍚庝竴鏉℃棤鏁堢姸鎬佺殑鎸囧畾鎿嶄綔璁板綍鏀逛负鏈夋晥-->
+ <update id="turnCardValidByAddr">
+ UPDATE se_client_card
+ SET state = 1
+ WHERE id = (
+ SELECT id FROM (
+ SELECT id
+ FROM se_client_card
+ WHERE state = 4 AND cardAddr = #{cardAddr} AND lastOper = #{operateType}
+ ORDER BY id DESC
+ LIMIT 1) AS subquery
+ );
+ </update>
+
+ <!--鏍规嵁姘村崱ID鑾峰彇鍘熸按鍗D锛岃ˉ鍗¢�氱煡涓娇鐢�-->
+ <select id="getOriginalCardIdByCardId" resultType="java.lang.Long">
+ SELECT original_card_id AS originalCardId FROM se_client_card WHERE id = #{cardId};
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0