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 '正常'
                          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 '正常'
                    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>
@@ -666,12 +668,12 @@
        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(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2  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
<!--            INNER JOIN se_recharge_history rch ON rch.cardId = card.id-->
        <where>
            <if test="clientName != null and clientName != ''">
                AND cli.name like CONCAT('%', #{clientName}, '%')
@@ -692,12 +694,12 @@
        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(rch.amount),2) FROM se_recharge_history rch WHERE rch.cardId = card.id AND rch.operate_valid = 2  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
<!--            INNER JOIN se_recharge_history rch ON rch.cardId = card.id-->
        <where>
            <if test="clientName != null and clientName != ''">
                AND cli.name like CONCAT('%', #{clientName}, '%')