|  |  | 
 |  |  |     <result column="price" jdbcType="FLOAT" property="price" /> | 
 |  |  |     <result column="card_cost" jdbcType="INTEGER" property="cardCost" /> | 
 |  |  |     <result column="gift" jdbcType="FLOAT" property="gift" /> | 
 |  |  |     <result column="refund_amount" jdbcType="FLOAT" property="refundAmount" /> | 
 |  |  |     <result column="no_trade_amount" jdbcType="FLOAT" property="noTradeAmount" /> | 
 |  |  |     <result column="operate_type_id" jdbcType="BIGINT" property="operateType" /> | 
 |  |  |     <result column="operate_type" jdbcType="TINYINT" property="operateType" /> | 
 |  |  |     <result column="payment_id" jdbcType="BIGINT" property="paymentId" /> | 
 |  |  |     <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | 
 |  |  |     <result column="operator" jdbcType="BIGINT" property="operator" /> | 
 |  |  | 
 |  |  |   <sql id="Base_Column_List"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     id, card_id, client_id, money, system_balance, trade_amount, price, card_cost, gift,  | 
 |  |  |     no_trade_amount, operate_type_id, payment_id, remarks, `operator`, operate_dt | 
 |  |  |     refund_amount, no_trade_amount, operate_type, payment_id, remarks, `operator`, operate_dt | 
 |  |  |   </sql> | 
 |  |  |   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  | 
 |  |  |     insert into se_card_operate (id, card_id, client_id,  | 
 |  |  |       money, system_balance, trade_amount,  | 
 |  |  |       price, card_cost, gift,  | 
 |  |  |       no_trade_amount, operate_type, payment_id, | 
 |  |  |       remarks, `operator`, operate_dt | 
 |  |  |       ) | 
 |  |  |       refund_amount, no_trade_amount, operate_type,  | 
 |  |  |       payment_id, remarks, `operator`,  | 
 |  |  |       operate_dt) | 
 |  |  |     values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},  | 
 |  |  |       #{money,jdbcType=FLOAT}, #{systemBalance,jdbcType=FLOAT}, #{tradeAmount,jdbcType=FLOAT},  | 
 |  |  |       #{price,jdbcType=FLOAT}, #{cardCost,jdbcType=INTEGER}, #{gift,jdbcType=FLOAT},  | 
 |  |  |       #{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=BIGINT}, #{paymentId,jdbcType=BIGINT}, | 
 |  |  |       #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP} | 
 |  |  |       ) | 
 |  |  |       #{refundAmount,jdbcType=FLOAT}, #{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=TINYINT},  | 
 |  |  |       #{paymentId,jdbcType=BIGINT}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT},  | 
 |  |  |       #{operateDt,jdbcType=TIMESTAMP}) | 
 |  |  |   </insert> | 
 |  |  |   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  | 
 |  |  |       <if test="gift != null"> | 
 |  |  |         gift, | 
 |  |  |       </if> | 
 |  |  |       <if test="refundAmount != null"> | 
 |  |  |         refund_amount, | 
 |  |  |       </if> | 
 |  |  |       <if test="noTradeAmount != null"> | 
 |  |  |         no_trade_amount, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateType != null"> | 
 |  |  |         operate_type_id, | 
 |  |  |         operate_type, | 
 |  |  |       </if> | 
 |  |  |       <if test="paymentId != null"> | 
 |  |  |         payment_id, | 
 |  |  | 
 |  |  |       <if test="gift != null"> | 
 |  |  |         #{gift,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="refundAmount != null"> | 
 |  |  |         #{refundAmount,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="noTradeAmount != null"> | 
 |  |  |         #{noTradeAmount,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateType != null"> | 
 |  |  |         #{operateType,jdbcType=BIGINT}, | 
 |  |  |         #{operateType,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="paymentId != null"> | 
 |  |  |         #{paymentId,jdbcType=BIGINT}, | 
 |  |  | 
 |  |  |       <if test="gift != null"> | 
 |  |  |         gift = #{gift,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="refundAmount != null"> | 
 |  |  |         refund_amount = #{refundAmount,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="noTradeAmount != null"> | 
 |  |  |         no_trade_amount = #{noTradeAmount,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="operateType != null"> | 
 |  |  |         operate_type_id = #{operateType,jdbcType=BIGINT}, | 
 |  |  |         operate_type = #{operateType,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="paymentId != null"> | 
 |  |  |         payment_id = #{paymentId,jdbcType=BIGINT}, | 
 |  |  | 
 |  |  |       price = #{price,jdbcType=FLOAT}, | 
 |  |  |       card_cost = #{cardCost,jdbcType=INTEGER}, | 
 |  |  |       gift = #{gift,jdbcType=FLOAT}, | 
 |  |  |       refund_amount = #{refundAmount,jdbcType=FLOAT}, | 
 |  |  |       no_trade_amount = #{noTradeAmount,jdbcType=FLOAT}, | 
 |  |  |       operate_type_id = #{operateType,jdbcType=BIGINT}, | 
 |  |  |       operate_type = #{operateType,jdbcType=TINYINT}, | 
 |  |  |       payment_id = #{paymentId,jdbcType=BIGINT}, | 
 |  |  |       remarks = #{remarks,jdbcType=VARCHAR}, | 
 |  |  |       `operator` = #{operator,jdbcType=BIGINT}, | 
 |  |  | 
 |  |  |     select | 
 |  |  |         COUNT(*) AS recordCount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |     INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     Left JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type = 2 | 
 |  |  |       AND ope.operate_type in(1, 2, 5) | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |         AND card.cardNum like CONCAT('%',#{cardNum},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "paymentId != null and paymentId > 0"> | 
 |  |  |         AND ope.payment_id = ${paymentId} | 
 |  |  |       </if> | 
 |  |  |       <!--      <if test = "paymentId != null and paymentId > 0">--> | 
 |  |  |       <!--        AND ope.payment_id = ${paymentId}--> | 
 |  |  |       <!--      </if>--> | 
 |  |  |  | 
 |  |  |       <if test = "rechargeTimeStart != null and rechargeTimeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop} | 
 |  |  |       </if> | 
 |  |  |       <!--      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">--> | 
 |  |  |       <!--        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}--> | 
 |  |  |       <!--      </if>--> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取充值记录--> | 
 |  |  |   <select id="getRecharges" resultType="com.dy.pipIrrGlobal.voSe.VoRecharge"> | 
 |  |  |     SELECT | 
 |  |  |         CAST(ope.id AS char) AS id , | 
 |  |  |         cli.name AS clientName, | 
 |  |  |         cli.clientNum, | 
 |  |  |         card.cardNum, | 
 |  |  |         ope.trade_amount AS amount, | 
 |  |  |         (ope.money + ope.trade_amount) AS afterRecharge, | 
 |  |  |         ope.payment_id, | 
 |  |  |         ope.price, | 
 |  |  |         (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator, | 
 |  |  |         ope.operate_dt | 
 |  |  |       ope.id AS opeId, | 
 |  |  |       card.id AS cardId, | 
 |  |  |       cli.name AS clientName, | 
 |  |  |       cli.phone, | 
 |  |  |       cli.idCard, | 
 |  |  |       cli.clientNum, | 
 |  |  |       cli.address, | 
 |  |  |       card.money, | 
 |  |  |       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,--> | 
 |  |  |       IFNULL(ope.card_cost,0) AS cardCost, | 
 |  |  |       IFNULL(ope.trade_amount, 0) AS amount, | 
 |  |  |       IFNULL(ope.refund_amount, 0) AS refundAmount, | 
 |  |  |       (IFNULL(ope.money, 0) + IFNULL(ope.trade_amount, 0)) AS afterRecharge, | 
 |  |  |       pay.name AS paymentName, | 
 |  |  |       ope.price, | 
 |  |  |       us.name AS opr, | 
 |  |  |       (CASE | 
 |  |  |         WHEN ope.operate_type = 1 THEN "开卡" | 
 |  |  |         WHEN ope.operate_type = 2 THEN "充值" | 
 |  |  |         WHEN ope.operate_type = 5 THEN "返还" | 
 |  |  |       END) AS operateType, | 
 |  |  |       ope.operate_dt | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |     INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     Left JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type = 2 | 
 |  |  |       AND ope.operate_type in(1, 2, 5) | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |         AND card.cardNum like CONCAT('%',#{cardNum},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "paymentId != null and paymentId > 0"> | 
 |  |  |         AND ope.payment_id = ${paymentId} | 
 |  |  |       </if> | 
 |  |  | <!--      <if test = "paymentId != null and paymentId > 0">--> | 
 |  |  | <!--        AND ope.payment_id = ${paymentId}--> | 
 |  |  | <!--      </if>--> | 
 |  |  |  | 
 |  |  |       <if test = "rechargeTimeStart != null and rechargeTimeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop} | 
 |  |  |       </if> | 
 |  |  | <!--      <if test = "rechargeTimeStart != null and rechargeTimeStop != null">--> | 
 |  |  | <!--        AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}--> | 
 |  |  | <!--      </if>--> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${pageCurr}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取交易记录数--> | 
 |  |  |   <select id="getTransactionRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |         COUNT(*) AS recordCount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN ba_user user ON ope.operator = user.id | 
 |  |  |         INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     FROM v_trade_details | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2,3,4) | 
 |  |  |       <if test = "villageId != null and villageId > 0"> | 
 |  |  |         AND cli.villageId = ${villageId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cardNum != null and cardNum >0"> | 
 |  |  |         AND card.cardNum = ${cardNum} | 
 |  |  |         AND villageId = ${villageId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |         AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cashierId != null and cashierId > 0"> | 
 |  |  |         AND cashierId = ${cashierId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "tradeTime != null"> | 
 |  |  |         AND tradeTime = #{tradeTime} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取交易记录--> | 
 |  |  |   <select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTransaction"> | 
 |  |  |     SELECT | 
 |  |  |         ope.id AS orderNumber, | 
 |  |  |         cli.villageId, | 
 |  |  |         cli.districtTitle, | 
 |  |  |         cli.clientNum, | 
 |  |  |         cli.`name`, | 
 |  |  |         card.cardNum, | 
 |  |  |         cli.idCard, | 
 |  |  |         cli.phone, | 
 |  |  |         (CASE operate_type | 
 |  |  |             WHEN 1 THEN '开卡' | 
 |  |  |             WHEN 2 THEN '充值' | 
 |  |  |             WHEN 3 THEN '销卡' | 
 |  |  |             WHEN 4 THEN '补卡' | 
 |  |  |         END) AS operateType, | 
 |  |  |         ope.operate_dt AS operateTime, | 
 |  |  |         IFNULL(ope.money, 0) AS money, | 
 |  |  |         IFNULL(ope.trade_amount, 0) AS waterCost, | 
 |  |  |         IFNULL(ope.gift, 0) AS gift, | 
 |  |  |         IFNULL(ope.card_cost, 0) AS cardCost, | 
 |  |  |         pay.`name` paymentMethod, | 
 |  |  |         user.name AS operatorName | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN ba_user user ON ope.operator = user.id | 
 |  |  |         INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |   <select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTradeDetails"> | 
 |  |  |     SELECT * FROM v_trade_details | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2,3,4) | 
 |  |  |       <if test = "villageId != null and villageId > 0"> | 
 |  |  |         AND cli.villageId = ${villageId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cardNum != null and cardNum >0"> | 
 |  |  |         AND card.cardNum = ${cardNum} | 
 |  |  |         AND villageId = ${villageId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |         AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cashierId != null and cashierId > 0"> | 
 |  |  |         AND user.id = ${cashierId} | 
 |  |  |         AND cashierId = ${cashierId} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt | 
 |  |  |     ORDER BY tradeTime | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${pageCurr}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取购水汇总和购卡汇总,获取交易明细使用--> | 
 |  |  |   <select id="getTransactionSums" resultType="java.util.Map"> | 
 |  |  |     SELECT | 
 |  |  |         IFNULL(SUM(trade_amount),0) AS waterCost, | 
 |  |  |         IFNULL(SUM(card_cost),0) AS cardCost | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN ba_user user ON ope.operator = user.id | 
 |  |  |         INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2,3,4) | 
 |  |  |       <if test = "villageId != null and villageId > 0"> | 
 |  |  |         AND cli.villageId = ${villageId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cardNum != null and cardNum >0"> | 
 |  |  |         AND card.cardNum = ${cardNum} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取交易统计记录数--> | 
 |  |  |   <select id="getTransactionStatisticsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |         COUNT(*) AS recordCount | 
 |  |  |     FROM v_transactionstatistics | 
 |  |  |     <where> | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取交易统计记录--> | 
 |  |  |   <select id="getTransactionStatistics" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics"> | 
 |  |  |     SELECT * FROM v_transactionstatistics | 
 |  |  |     <where> | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY tradeDate | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${pageCurr}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根基指定条件获取笔数合计、实收金额合计、赠送金额合计--> | 
 |  |  |   <select id="getTransactionStatisticsSums" resultType="java.util.Map"> | 
 |  |  |     SELECT | 
 |  |  |       SUM(count) AS totalCount, | 
 |  |  |       SUM(received) AS totalReceived, | 
 |  |  |       SUM(gift) AS totalGift | 
 |  |  |     FROM v_transactionstatistics | 
 |  |  |     <where> | 
 |  |  |       <if test = "operateTimeStart != null and operateTimeStop != null"> | 
 |  |  |         AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--获取指定日期、指定支付方式实收金额合计--> | 
 |  |  |   <select id="getPaymentSums" resultType="java.lang.Float"> | 
 |  |  |     SELECT | 
 |  |  |       SUM(ope.trade_amount) AS tradeAmount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |     <where> | 
 |  |  |       <if test = "tradeDate != null and tradeDate !=''"> | 
 |  |  |         AND Date(ope.operate_dt) = #{tradeDate} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "paymentId != null and paymentId >0"> | 
 |  |  |         AND ope.payment_id = ${paymentId} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     GROUP BY ope.payment_id,  Date(ope.operate_dt) | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取开卡记录数量--> | 
 |  |  | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取开卡记录--> | 
 |  |  |   <select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCardNew"> | 
 |  |  |   <select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCard"> | 
 |  |  |     SELECT | 
 |  |  |     CAST(ope.id AS char) AS id , | 
 |  |  |     cli.name AS clientName, | 
 |  |  | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${pageCurr}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取补卡记录数量--> | 
 |  |  | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${pageCurr}, ${pageSize} | 
 |  |  |     </if> | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取通用操作记录数量--> | 
 |  |  |   <select id="getCommonOperationRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
 |  |  |     select | 
 |  |  |         COUNT(*) AS recordCount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     <where> | 
 |  |  |       <if test = "operateType != null and operateType > 0"> | 
 |  |  |         AND ope.operate_type = ${operateType} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cardNum != null and cardNum !=''"> | 
 |  |  |         AND card.cardNum like CONCAT('%',#{cardNum},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "timeStart != null and timeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取通用操作记录--> | 
 |  |  |   <select id="getCommonOperations" resultType="com.dy.pipIrrGlobal.voSe.VoOperate"> | 
 |  |  |     SELECT | 
 |  |  |         cli.name AS clientName, | 
 |  |  |         cli.clientNum, | 
 |  |  |         CAST(card.cardNum AS char) AS cardNum, | 
 |  |  |         us.name AS operator, | 
 |  |  |         ope.operate_dt AS operateDt, | 
 |  |  |         IFNULL(ope.trade_amount,0) AS refund, | 
 |  |  |         (CASE | 
 |  |  |             WHEN ope.payment_id = 1 THEN "现金" | 
 |  |  |         END) AS refundTypeName, | 
 |  |  |         card.money, | 
 |  |  |         IFNULL(ope.system_balance,0) AS systemBalance | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |         INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |         INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |         INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     <where> | 
 |  |  |       <if test = "operateType != null and operateType > 0"> | 
 |  |  |         AND ope.operate_type = ${operateType} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "cardNum != null and cardNum !=''"> | 
 |  |  |         AND card.cardNum like CONCAT('%',#{cardNum},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "timeStart != null and timeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取收据列表数--> | 
 |  |  |   <select id="getReceiptsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |     COUNT(*) AS recordCount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |     INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |     INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     INNER JOIN ba_district vil ON cli.villageId = vil.id | 
 |  |  |     INNER JOIN ba_district tow ON cli.townId = tow.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2) | 
 |  |  |       <if test = "operateId != null and operateId > 0"> | 
 |  |  |         AND ope.id = ${operateId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "timeStart != null and timeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取收据列表--> | 
 |  |  |   <select id="getReceipts" resultType="com.dy.pipIrrGlobal.voSe.VoReceipt"> | 
 |  |  |     SELECT | 
 |  |  |     CAST(ope.id AS char) AS orderNumber, | 
 |  |  |     tow.name AS townName, | 
 |  |  |     vil.name AS villageName, | 
 |  |  |     cli.`name`, | 
 |  |  |     cli.phone, | 
 |  |  |     CAST(cli.clientNum AS char) AS clientNum, | 
 |  |  |     CAST(card.cardNum AS char) AS cardNum, | 
 |  |  |     (CASE | 
 |  |  |     WHEN ope.operate_type = 1 THEN '开卡' | 
 |  |  |     WHEN ope.operate_type = 2 THEN '充值' | 
 |  |  |     END) AS operateType, | 
 |  |  |     IFNULL(ope.trade_amount,0) AS waterCost, | 
 |  |  |     IFNULL(ope.card_cost,0) AS cardCost, | 
 |  |  |     (IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS amount, | 
 |  |  |     card.money, | 
 |  |  |     pay.`name` AS paymentName, | 
 |  |  |     us.`name` AS operatorName, | 
 |  |  |     ope.operate_dt AS operateTime, | 
 |  |  |     NOW() AS currentTime | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |     INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |     INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     INNER JOIN ba_district vil ON cli.villageId = vil.id | 
 |  |  |     INNER JOIN ba_district tow ON cli.townId = tow.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2) | 
 |  |  |       <if test = "operateId != null and operateId > 0"> | 
 |  |  |         AND ope.id = ${operateId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "timeStart != null and timeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据指定条件获取收据收费金额合计--> | 
 |  |  |   <select id="getTotalAmount" parameterType="java.util.Map" resultType="java.lang.Double"> | 
 |  |  |     SELECT | 
 |  |  |     SUM(IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS totalAmount | 
 |  |  |     FROM se_card_operate ope | 
 |  |  |     INNER JOIN se_client cli ON ope.client_id = cli.id | 
 |  |  |     INNER JOIN se_client_card card ON ope.card_id = card.id | 
 |  |  |     INNER JOIN se_payment_method pay ON ope.payment_id = pay.id | 
 |  |  |     INNER JOIN ba_user us ON ope.operator = us.id | 
 |  |  |     INNER JOIN ba_district vil ON cli.villageId = vil.id | 
 |  |  |     INNER JOIN ba_district tow ON cli.townId = tow.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type IN(1,2) | 
 |  |  |       <if test = "operateId != null and operateId > 0"> | 
 |  |  |         AND ope.id = ${operateId} | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "clientName != null and clientName !=''"> | 
 |  |  |         AND cli.name like CONCAT('%',#{clientName},'%') | 
 |  |  |       </if> | 
 |  |  |  | 
 |  |  |       <if test = "timeStart != null and timeStop != null"> | 
 |  |  |         AND ope.operate_dt BETWEEN #{timeStart} AND #{timeStop} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据水卡编号获取其挂失时退款金额(补卡时判断使用)--> | 
 |  |  |   <select id="getTradeAmountByCardNo" resultType="java.lang.Double"> | 
 |  |  |     SELECT | 
 |  |  |     ope.trade_amount AS tradeAmount | 
 |  |  |     FROM se_client_card card | 
 |  |  |     INNER JOIN se_card_operate ope ON ope.card_id = card.id | 
 |  |  |     <where> | 
 |  |  |       AND ope.operate_type = 6 | 
 |  |  |       AND card.cardNum = #{cardNum} | 
 |  |  |     </where> | 
 |  |  |     ORDER BY ope.operate_dt DESC | 
 |  |  |     LIMIT 0,1 | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内开卡总数量(物理卡)--> | 
 |  |  |   <select id="getOpenCountIcCardsCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |     count(*) | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` | 
 |  |  |     WHERE | 
 |  |  |     operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 1 | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内挂失总数量(物理卡)--> | 
 |  |  |   <select id="getLossCountIcCardsCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |     count(*) | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` | 
 |  |  |     WHERE | 
 |  |  |     operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 6 | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内充值总数量(物理卡)--> | 
 |  |  |   <select id="getRechargeCountIcCardsCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |     count(*) | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` | 
 |  |  |     WHERE | 
 |  |  |     operate_dt BETWEEN #{timeStart} AND #{timeStop} AND operate_type = 2 | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内开物理卡农户数量--> | 
 |  |  |   <select id="getOpenIcCardClientsCount" resultType="java.lang.Long"> | 
 |  |  |     select | 
 |  |  |     count(*) | 
 |  |  |     from | 
 |  |  |       ( | 
 |  |  |     SELECT | 
 |  |  |     sco.client_id AS clientId, | 
 |  |  |     sc.`name` AS clientName, | 
 |  |  |     sc.clientNum AS clientNum, | 
 |  |  |     sc.address AS address, | 
 |  |  |     sc.phone AS phone, | 
 |  |  |     sc.idCard AS idCard, | 
 |  |  |     COUNT(sc.id) AS openCardCount | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` sco | 
 |  |  |     INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |     sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 1 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id) c | 
 |  |  |     </select> | 
 |  |  |   <!--指定时间段内开物理卡农户--> | 
 |  |  |   <select id="getOpenIcCardClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount"> | 
 |  |  |     SELECT | 
 |  |  |       sco.client_id AS clientId, | 
 |  |  |       sc.`name` AS clientName, | 
 |  |  |       sc.clientNum AS clientNum, | 
 |  |  |       sc.address AS address, | 
 |  |  |       sc.phone AS phone, | 
 |  |  |       sc.idCard AS idCard, | 
 |  |  |       COUNT(sc.id) AS openCardCount | 
 |  |  |     FROM | 
 |  |  |       `se_card_operate` sco | 
 |  |  |         INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |       sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 1 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id | 
 |  |  |     ORDER BY sc.id DESC | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内每个农户充值合计 农户数量--> | 
 |  |  |   <select id="getRechargeTotalClientsCount" resultType="java.lang.Long"> | 
 |  |  |     select | 
 |  |  |     count(*) | 
 |  |  |     from | 
 |  |  |     ( | 
 |  |  |     SELECT | 
 |  |  |     sco.client_id AS clientId, | 
 |  |  |     sc.`name` AS clientName, | 
 |  |  |     sc.clientNum AS clientNum, | 
 |  |  |     sc.address AS address, | 
 |  |  |     sc.phone AS phone, | 
 |  |  |     sc.idCard AS idCard, | 
 |  |  |     IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` sco | 
 |  |  |     INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |     sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id) c | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内每个农户充值合计--> | 
 |  |  |   <select id="getRechargeTotalClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal"> | 
 |  |  |     SELECT | 
 |  |  |       sco.client_id AS clientId, | 
 |  |  |       sc.`name` AS clientName, | 
 |  |  |       sc.clientNum AS clientNum, | 
 |  |  |       sc.address AS address, | 
 |  |  |       sc.phone AS phone, | 
 |  |  |       sc.idCard AS idCard, | 
 |  |  |       IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal | 
 |  |  |     FROM | 
 |  |  |       `se_card_operate` sco | 
 |  |  |         INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |       sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id | 
 |  |  |     ORDER BY sc.id DESC | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内物理卡充值金额超过指定值的农户数量--> | 
 |  |  |   <select id="getRechargeTotalGtValueClientsCount" resultType="java.lang.Long"> | 
 |  |  |     select | 
 |  |  |     count(*) | 
 |  |  |     from | 
 |  |  |     ( | 
 |  |  |     SELECT | 
 |  |  |     sco.client_id AS clientId, | 
 |  |  |     sc.`name` AS clientName, | 
 |  |  |     sc.clientNum AS clientNum, | 
 |  |  |     sc.address AS address, | 
 |  |  |     sc.phone AS phone, | 
 |  |  |     sc.idCard AS idCard, | 
 |  |  |     IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal | 
 |  |  |     FROM | 
 |  |  |     `se_card_operate` sco | 
 |  |  |     INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |     sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id | 
 |  |  |     HAVING IFNULL(SUM(sco.trade_amount),0) > #{value}) c | 
 |  |  |   </select> | 
 |  |  |   <!--指定时间段内物理卡充值金额超过指定值的农户--> | 
 |  |  |   <select id="getRechargeTotalGtValueClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal"> | 
 |  |  |     SELECT | 
 |  |  |       sco.client_id AS clientId, | 
 |  |  |       sc.`name` AS clientName, | 
 |  |  |       sc.clientNum AS clientNum, | 
 |  |  |       sc.address AS address, | 
 |  |  |       sc.phone AS phone, | 
 |  |  |       sc.idCard AS idCard, | 
 |  |  |       IFNULL(SUM(sco.trade_amount),0) AS rechargeTotal | 
 |  |  |     FROM | 
 |  |  |       `se_card_operate` sco | 
 |  |  |         INNER JOIN se_client sc ON sc.id = sco.client_id | 
 |  |  |     WHERE | 
 |  |  |       sco.operate_dt BETWEEN #{timeStart} AND #{timeStop} AND sco.operate_type = 2 AND sc.deleted = 0 AND sc.disabled = 0 | 
 |  |  |     GROUP BY sc.id | 
 |  |  |     HAVING IFNULL(SUM(sco.trade_amount),0) > #{value} | 
 |  |  |     ORDER BY sc.id DESC | 
 |  |  |     <trim prefix="limit " > | 
 |  |  |       <if test="start != null and count != null"> | 
 |  |  |         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
 |  |  |       </if> | 
 |  |  |     </trim> | 
 |  |  |   </select> | 
 |  |  | </mapper> |