From 70d7a48cef4ebe004eb2ca411de4667e3d30f1ac Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 09 八月 2024 15:38:49 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java      |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml                                              |  134 ++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java                  |  119 +++++++++++++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java                      |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealVirCardState.java         |   40 ++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java     |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java                               |   45 +++++
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java          |   36 +--
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java                |   64 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientOpenCardCount.java                              |   18 ++
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java                       |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                               |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientRechargeTotal.java                              |   18 ++
 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/qo/RechargeTotalGtValueQo.java |   21 ++
 16 files changed, 489 insertions(+), 30 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java
index 97fec82..8ef331f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataCdC0Vo.java
@@ -3,7 +3,7 @@
 import lombok.Data;
 
 /**
- * 閬ユ祴绔欒嚜鎶ュ疄鏃舵暟鎹�
+ * 閬ユ祴绔欒嚜鎶�(鏁寸偣)瀹炴椂鏁版嵁
  */
 @Data
 public class DataCdC0Vo {
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
index 096404e..4a733f3 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/upVos/DataStateVo.java
@@ -4,6 +4,9 @@
 
 @Data
 public class DataStateVo  {
+    public static final byte ValveOpenState = 0 ;
+    public static final byte ValveCloseState = 1 ;
+
     public Byte icCard;// IC鍗″姛鑳�
     public Byte valveState;//闃�闂ㄧ姸鎬�
     public Byte powerType ;//鐢垫簮鐘舵�侊紙0锛�220V渚涚數锛�1锛氱暅鐢垫睜渚涚數锛�
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..0bbc69e 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,9 @@
 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 com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -154,4 +157,46 @@
      * @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);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴姣忎釜鍐滄埛鍏呭�煎悎璁� 鍐滄埛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getRechargeTotalClientsCount(Map<String, Object> params);
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴姣忎釜鍐滄埛鍏呭�煎悎璁�
+     * @param params
+     * @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);
 }
\ 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/java/com/dy/pipIrrGlobal/voSt/VoClientRechargeTotal.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientRechargeTotal.java
new file mode 100644
index 0000000..60bea2d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoClientRechargeTotal.java
@@ -0,0 +1,18 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/8/9  10:58
+ * @LastEditTime :2024/8/9  10:58
+ * @Description
+ */
+@Data
+public class VoClientRechargeTotal extends VoClient{
+
+    /**
+     *鍏呭�兼�婚噺
+     */
+    private Double rechargeTotal;
+}
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..401848d 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,138 @@
     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) &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>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index ccb127c..b782f60 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -50,7 +50,11 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1_0_1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
-                            this.updateVirCardNoUseState(sv, controller, dataCd81Vo.stateVo) ;
+                            if(dataCd81Vo.stateVo != null && dataCd81Vo.stateVo.valveState != null && dataCd81Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
+                                if(controller != null && controller.getIntakeId() != null){
+                                    this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
+                                }
+                            }
                         }
                     } else if (cdObj instanceof DataCd84Vo) {
                         DataCd84Vo dataCd84Vo = (DataCd84Vo)cdObj ;
@@ -60,7 +64,12 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCd84Vo.rtuDt, dV1_0_1, dataCd84Vo.alarmVo, dataCd84Vo.stateVo);
-                            this.updateVirCardNoUseState(sv, controller, dataCd84Vo.stateVo) ;
+                            /** 闃�寮�宸ヤ綔鎶ワ紝闃�闂ㄧ姸鎬佷竴瀹氭槸鎵撳紑鐘舵�侊紝鎵�浠ヤ笉璁剧疆涓嬮潰鏁版嵁浠ュ鍚庣画浠诲姟璁剧疆铏氭嫙鍗$姸鎬�
+                            if(dataCd84Vo.stateVo != null && dataCd84Vo.stateVo.valveState != null && dataCd84Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
+                                if(controller != null && controller.getIntakeId() != null){
+                                    this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
+                                }
+                            }*/
                         }
                     } else if (cdObj instanceof DataCdC0Vo) {
                         DataCdC0Vo dataCdC0Vo = (DataCdC0Vo)cdObj ;
@@ -70,7 +79,11 @@
                             PrController controller = (PrController) objs[1];
                             this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
                             this.saveHistory(sv, controller, d.getRtuAddr(), dataCdC0Vo.rtuDt, dV1_0_1, dataCdC0Vo.alarmVo, dataCdC0Vo.stateVo);
-                            this.updateVirCardNoUseState(sv, controller, dataCdC0Vo.stateVo) ;
+                            if(dataCdC0Vo.stateVo != null && dataCdC0Vo.stateVo.valveState != null && dataCdC0Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
+                                if(controller != null && controller.getIntakeId() != null){
+                                    this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
+                                }
+                            }
                         }
                     }
                 } catch (Exception e) {
@@ -151,23 +164,6 @@
     }
 
 
-    /**
-     * 铏氭嫙鍗″湪鍙栨按鍙d笂鐨勫崰鐢ㄧ姸鎬佹敼涓洪潪搴旂敤鐘舵��
-     */
-    private void updateVirCardNoUseState(DbSv sv,
-                                         PrController controller,
-                                         DataStateVo stateVo){
-        if(stateVo != null){
-            if(stateVo.valveState != null && stateVo.valveState.byteValue() == 0){
-                //闃�闂ㄥ叧闂姸鎬�
-                if(controller != null && controller.getIntakeId() != null){
-                    //铏氭嫙鍗″湪鍙栨按涓殑鍗犵敤鐘舵�佹敼涓洪潪搴旂敤鐘舵��
-                    sv.updateVirCardNoUseState(controller.getIntakeId());
-                }
-            }
-        }
-
-    }
 
     /**
      * 鍚戦拤閽夊彂閫佹秷鎭�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index cfe155c..42471f3 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -168,8 +168,10 @@
         }
     }
 
+    /**
+     * 澶勭悊琛ユ姤锛屾殏鏃舵棤閫昏緫
+     */
     private void dealSupplyReport(){
-
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index bf4f33d..1baf103 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -123,8 +123,10 @@
         }
     }
 
+    /**
+     * 澶勭悊琛ユ姤锛屾殏鏃舵棤閫昏緫
+     */
     private void dealSupplyReport(){
-
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealVirCardState.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealVirCardState.java
new file mode 100644
index 0000000..d3bc73c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealVirCardState.java
@@ -0,0 +1,40 @@
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
+
+import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataStateVo;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/8/9 9:49
+ * @Description
+ */
+public class TkDealVirCardState  extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealVirCardState.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealVirCardState" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氳櫄鎷熷崱鍦ㄥ彇姘村彛涓婄殑鍗犵敤鐘舵�佹敼涓洪潪鍗犵敤鐘舵��
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Object[] objs = this.getTaskResults(TkDealAlarmStatus.taskId);
+        if(objs != null && objs.length >= 2){
+            Long intakeId = (Long)objs[0] ;
+            Byte valveState = (Byte)objs[1] ;
+            if(intakeId != null && valveState.byteValue() == DataStateVo.ValveCloseState){
+                objs = this.getTaskResults(TkPreGenObjs.taskId);
+                DbSv sv = (DbSv) objs[0];
+                //铏氭嫙鍗″湪鍙栨按鍙d笂鐨勫崰鐢ㄧ姸鎬佹敼涓洪潪鍗犵敤鐘舵��
+                sv.updateVirCardNoUseState(intakeId);
+            }
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
index c46cc46..5068328 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -15,7 +15,9 @@
 					<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
 						<!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� -->
 						<task id="TkFindReport" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport">
-							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
+							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佸強鍚戦拤閽夊彂閫佹姤璀︿俊鎭�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus">
+								<task id="TkDealVirCardState" name="铏氭嫙鍗″崰鐢ㄧ姸鎬佹仮澶�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealVirCardState" />
+							</task>
 							<task id="TkDealOnHourReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級(鍔熻兘鐮丆0)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOnHourReport" />
 							<task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤(鍔熻兘鐮�84)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
 							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤(鍔熻兘鐮�83)" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
@@ -27,8 +29,7 @@
 						</task>
 						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
 						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">
-							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" >
-							</task>
+							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" />
 						</task>
 					</task>
 				</task>
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 b0dd80b..8884740 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,11 @@
 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.VoClientRechargeTotal;
+import com.dy.pipIrrGlobal.voSt.VoICCard;
+import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
+import com.dy.pipIrrStatistics.client.qo.*;
 import com.dy.pipIrrGlobal.voSt.VoDayClient;
 import com.dy.pipIrrGlobal.voSt.VoMonthClient;
 import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
@@ -175,4 +180,63 @@
             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());
+        }
+    }
+
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴姣忎釜鍐滄埛鍏呭�煎悎璁★紙鐗╃悊鍗★級
+     *
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getRechargeTotalClients")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoClientRechargeTotal>>> getRechargeTotalClients(CommonQO qo) {
+        try {
+            QueryResultVo<List<VoClientRechargeTotal>> res = clientSv.getRechargeTotalClients(qo);
+            return BaseResponseUtils.buildSuccess(res);
+        }catch (Exception e){
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴鐗╃悊鍗″厖鍊奸噾棰濊秴杩囨寚瀹氬�肩殑鍐滄埛
+     *
+     * @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());
+        }
+    }
+
 }
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 3314c6b..04cdb21 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
@@ -3,6 +3,7 @@
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper;
 import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
+import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
 import com.dy.pipIrrGlobal.voSt.VoClient;
 import com.dy.pipIrrGlobal.voSt.VoDayClient;
 import com.dy.pipIrrGlobal.voSt.VoMonthClient;
@@ -11,14 +12,17 @@
 import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
 import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
 import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO;
+import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
+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.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.text.ParseException;
 import java.time.LocalDate;
-import java.util.Calendar;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -35,6 +39,8 @@
 public class ClientSv {
     @Autowired
     private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
+    @Autowired
+    private SeCardOperateMapper seCardOperateMapper;
 
     @Autowired
     private RmClientAmountDayLastMapper rmClientAmountDayLastMapper;
@@ -230,6 +236,115 @@
     }
 
     /**
+     * 鎸囧畾鏃堕棿娈靛唴寮�鐗╃悊鍗″啘鎴�
+     * @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 ;
+    }
+
+    /**
+     * 鎸囧畾鏃堕棿娈靛唴姣忎釜鍐滄埛鍏呭�煎悎璁★紙鐗╃悊鍗★級
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoClientRechargeTotal>> getRechargeTotalClients(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.getRechargeTotalClientsCount(params);
+
+        QueryResultVo<List<VoClientRechargeTotal>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        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 ;
+    }
+
+    /**
      * 缁熻鎸囧畾鏈堜唤鍚勫啘鎴峰悇澶╃敤姘撮噺鍙婃秷璐归噾棰�
      * @param qo
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
new file mode 100644
index 0000000..f0a0745
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/qo/RechargeTotalGtValueQo.java
@@ -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;
+}

--
Gitblit v1.8.0