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 ; } }