From cf2ceec786652531974c39d573dfcb8d3f661e1e Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 09 八月 2024 10:37:26 +0800
Subject: [PATCH] 指定时间内开物理卡农户

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java               |   18 ++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml                               |   44 ++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java   |   42 ++++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java                |   16 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java                           |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                       |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java |   22 +++++++
 7 files changed, 144 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
index 20696bf..c12558c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
+++ b/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);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
index d8a03ec..8af231c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoLossDay.java
+++ b/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")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java
new file mode 100644
index 0000000..c6851b7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java
@@ -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;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index 682d4eb..6d2c24c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -72,7 +72,7 @@
 
 pipIrr:
     global:
-        dev: false   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+        dev: true   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     mw:
         webPort: 8070
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
index deac89d..9a196ce 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
index 84ec52e..29bc05f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
+++ b/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());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
index f86b5db..8376e28 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
+++ b/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 ;
+    }
 }

--
Gitblit v1.8.0