wuzeyu
2024-08-09 cf2ceec786652531974c39d573dfcb8d3f661e1e
指定时间内开物理卡农户
1个文件已添加
6个文件已修改
146 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrGlobal.voSt.VoClient;
import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -154,4 +156,18 @@
     * @return
     */
    Long getRechargeCountIcCardsCount(Map<String, Object> params);
    /**
     * 指定时间段内开物理卡农户数量
     * @param params
     * @return
     */
    Long getOpenIcCardClientsCount(Map<String, Object> params);
    /**
     * 指定时间段内开物理卡农户
     * @param params
     * @return
     */
    List<VoClientOpenCardCount> getOpenIcCardClients(Map<String, Object> params);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
@@ -33,7 +33,7 @@
    @Schema(description = "统计日期(yyyy-mm-dd)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private java.sql.Date dt;
    private java.util.Date dt;
    @Schema(description = "控制器最后上报数据日期时间(yyyy-mm-dd hh:mm:ss)", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java
New file
@@ -0,0 +1,18 @@
package com.dy.pipIrrGlobal.voSt;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/9  10:18
 * @LastEditTime :2024/8/9  10:18
 * @Description
 */
@Data
public class VoClientOpenCardCount extends VoClient{
    private static final long serialVersionUID = 202408091019001L;
    /**
     * 开卡次数
     */
    private Long openCardCount;
}
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
pipIrr:
    global:
        dev: false   #是否开发阶段,true或false
        dev: true   #是否开发阶段,true或false
        dsName: ym  #开发阶段,设置临时的数据库名称
    mw:
        webPort: 8070
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -720,4 +720,48 @@
    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>
</mapper>
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -5,6 +5,9 @@
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voSt.VoClient;
import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
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;
@@ -132,4 +135,23 @@
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 指定时间段内开物理卡农户
     *
     * @param qo
     * @return
     */
    @GetMapping(path = "/getOpenIcCardClients")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoClientOpenCardCount>>> getOpenIcCardClients(CommonQO qo) {
        try {
            QueryResultVo<List<VoClientOpenCardCount>> res = clientSv.getOpenIcCardClients(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
@@ -2,7 +2,11 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
import com.dy.pipIrrGlobal.voSt.VoClient;
import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
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;
@@ -13,6 +17,7 @@
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -29,6 +34,8 @@
public class ClientSv {
    @Autowired
    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
    @Autowired
    private SeCardOperateMapper seCardOperateMapper;
    /**
     * 获取指定时间段内开阀次数超过指定值的农户
@@ -219,4 +226,39 @@
        rsVo.obj = rmOpenCloseValveHistoryMapper.getLargeWaterDurationClients(params);
        return rsVo ;
    }
    /**
     * 指定时间段内开物理卡农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClientOpenCardCount>> getOpenIcCardClients(CommonQO 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);
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
        Long itemTotal = seCardOperateMapper.getOpenIcCardClientsCount(params);
        QueryResultVo<List<VoClientOpenCardCount>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seCardOperateMapper.getOpenIcCardClients(params);
        return rsVo ;
    }
}