liurunyu
2025-06-27 63a3920ea3d17f8a677d4edc9ffaab279367cb70
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -838,4 +838,47 @@
      </if>
    </trim>
  </select>
  <!--根据水卡编号获取卡信息-->
  <select id="getCardByCardNum" resultType="com.dy.pipIrrGlobal.voSe.VoCardByClientNum">
    SELECT
        card.cardNum,
        card.state AS cardState,
        '农户卡' AS cardType,
        cli.name AS clientName,
        cli.clientNum,
        cli.idCard,
        FORMAT(card.money, 1) AS money,
        cli.phone,
        (CASE
            WHEN card.state = 1 THEN '正常'
            WHEN card.state = 2 THEN '已注销'
            WHEN card.state = 3 THEN '已挂失'
            WHEN card.state = 4 THEN '无效'
            ELSE '未知'
        END) AS stateName
    FROM se_client_card card
    INNER JOIN se_client cli ON card.clientId = cli.id
    WHERE card.cardNum = #{cardNum}
      AND card.state != 4
    ORDER BY card.createDt DESC
    LIMIT 1
  </select>
  <!--检查卡地址是否已存在(管理卡表 + 农户水卡表)-->
  <select id="checkCardAddrExists" resultType="java.lang.Long">
    SELECT COUNT(*) AS totalCount FROM (
      -- 检查管理卡表中正常(1)和挂失(3)状态的记录,排除已注销(2)和未写卡(4)
      SELECT card_addr FROM se_management_card
      WHERE card_addr = #{cardAddr}
        AND state IN (1, 3)
      UNION ALL
      -- 检查农户水卡表中正常(1)和挂失(3)状态的记录
      SELECT cardAddr FROM se_client_card
      WHERE cardAddr = #{cardAddr}
        AND state IN (1, 3)
    ) AS combined_result
  </select>
</mapper>