wuzeyu
2024-08-09 7d5efc462523c0fa48f438d0553e626827f149ff
指定时间段内物理卡充值金额超过指定值的农户
4个文件已修改
1个文件已添加
149 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
@@ -185,4 +185,18 @@
     * @return
     */
    List<VoClientRechargeTotal> getRechargeTotalClients(Map<String, Object> params);
    /**
     * 指定时间段内物理卡充值金额超过指定值的农户数量
     * @param params
     * @return
     */
    Long getRechargeTotalGtValueClientsCount(Map<String, Object> params);
    /**
     * 指定时间段内物理卡充值金额超过指定值的农户
     * @param params
     * @return
     */
    List<VoClientRechargeTotal> getRechargeTotalGtValueClients(Map<String, Object> params);
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -808,4 +808,50 @@
      </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) &gt; #{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>
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -9,10 +9,7 @@
import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
import com.dy.pipIrrStatistics.client.qo.OpenCountQO;
import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
import com.dy.pipIrrStatistics.client.qo.*;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -176,4 +173,23 @@
        }
    }
    /**
     * 指定时间段内物理卡充值金额超过指定值的农户
     *
     * @param qo
     * @return
     */
    @GetMapping(path = "/getRechargeTotalGtValueClients")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoClientRechargeTotal>>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) {
        try {
            QueryResultVo<List<VoClientRechargeTotal>> res = clientSv.getRechargeTotalGtValueClients(qo);
            return BaseResponseUtils.buildSuccess(res);
        }catch (Exception e){
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -8,10 +8,7 @@
import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
import com.dy.pipIrrStatistics.client.qo.OpenCountQO;
import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
import com.dy.pipIrrStatistics.client.qo.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -297,4 +294,43 @@
        rsVo.obj = seCardOperateMapper.getRechargeTotalClients(params);
        return rsVo ;
    }
    /**
     * 指定时间段内物理卡充值金额超过指定值的农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClientRechargeTotal>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if (timeStart != null && timeStart != ""){
            timeStart = timeStart + " 00:00:00";
        }else {
            timeStart = LocalDate.now() + " 00:00:00";
        }
        if (timeStop != null && timeStop != ""){
            timeStop = timeStop + " 23:59:59";
        }else {
            timeStop = LocalDateTime.now().toString();
        }
        qo.setTimeStart(timeStart);
        qo.setTimeStop(timeStop);
        if (qo.getValue() == null || qo.getValue() < 0){
            qo.setValue(0.0);
        }
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
        Long itemTotal = seCardOperateMapper.getRechargeTotalGtValueClientsCount(params);
        QueryResultVo<List<VoClientRechargeTotal>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seCardOperateMapper.getRechargeTotalGtValueClients(params);
        return rsVo ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
New file
@@ -0,0 +1,21 @@
package com.dy.pipIrrStatistics.client.qo;
import com.alibaba.fastjson2.annotation.JSONField;
import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/9  11:36
 * @LastEditTime :2024/8/9  11:36
 * @Description
 */
@Data
public class RechargeTotalGtValueQo extends CommonQO {
    /**
     * 金额值
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    private Double value;
}