From 4d6f344319654bb50aa58a366517630b99615398 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 18 九月 2024 15:27:43 +0800
Subject: [PATCH] 2024-09-18 朱宝民 获取消费记录接口、获取返还记录接口

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java       |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                   |   59 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java   |   43 +++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml                             |   59 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java |   35 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java                          |   70 +++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java              |   12 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java    |   15 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java                          |   61 ++++++++++
 9 files changed, 355 insertions(+), 1 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
index 6002ef3..21ec5bd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOpenCloseValveHistory;
+import com.dy.pipIrrGlobal.voRm.VoExpend;
 import com.dy.pipIrrGlobal.voRm.VoOpenCloseValve;
 import com.dy.pipIrrGlobal.voSt.VoClient;
 import com.dy.pipIrrGlobal.voSt.VoIntake;
@@ -263,4 +264,18 @@
      * @return
      */
     List<VoIntake> getNoOpenHaveCloseIntakes(Map<String, Object> params);
+
+    /**
+     * 鑾峰彇姘村崱娑堣垂璁板綍鏁伴噺锛岀鐞嗗钩鍙颁娇鐢�
+     * @param params
+     * @return
+     */
+    Long getExpendsCount(Map<String, Object> params);
+
+    /**
+     * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�
+     * @param params
+     * @return
+     */
+    List<VoExpend> getExpends(Map<String, Object> params);
 }
\ No newline at end of file
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 dca9467..93d6b74 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
@@ -59,6 +59,18 @@
      */
     List<VoRechargeNew> getRechargesNew(Map<?, ?> params);
 
+    /**
+     * 鑾峰彇杩旇繕璁板綍鏁伴噺锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�
+     * @param params
+     * @return
+     */
+    Long getRefundsCount(Map<?, ?> params);
+    /**
+     * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�
+     * @param params
+     * @return
+     */
+    List<VoRefund> getRefunds(Map<?, ?> params);
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍鏁�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java
new file mode 100644
index 0000000..92eed8d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoExpend.java
@@ -0,0 +1,70 @@
+package com.dy.pipIrrGlobal.voRm;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-09-14 17:17
+ * @LastEditTime 2024-09-14 17:17
+ * @Description 娑堣�楄鍥惧璞★紝姘村崱娑堣�楄褰�
+ */
+@Data
+@JsonPropertyOrder({"clientName", "clientNum", "cardNum", "intakeName", "rtuAddr", "moneyAmount", "waterAmount", "duration", "operateTime"})
+public class VoExpend {
+    private static final long serialVersionUID = 202409141721001L;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    private String clientName;
+
+    /**
+     * 鍐滄埛缂栧彿
+     */
+    private String clientNum;
+
+    /**
+     * 姘村崱缂栧彿
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long cardNum;
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    private String intakeName;
+
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
+    private String rtuAddr;
+
+    /**
+     * 鏈鑺辫垂閲戦
+     */
+    private Float moneyAmount;
+
+    /**
+     * 鏈鐢ㄦ按閲�
+     */
+    private Float waterAmount;
+
+    /**
+     * 鏈鐢ㄦ按鏃堕暱
+     */
+    private Integer duration;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operateTime;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java
new file mode 100644
index 0000000..b38e4ad
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRefund.java
@@ -0,0 +1,61 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-09-18 15:04
+ * @LastEditTime 2024-09-18 15:04
+ * @Description 杩旇繕瑙嗗浘瀵硅薄
+ */
+
+@Data
+@JsonPropertyOrder({"clientName", "clientNum", "cardNum", "money", "refundAmount", "operator", "operateTime"})
+public class VoRefund {
+    private static final long serialVersionUID = 202409181505001L;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    private String clientName;
+
+    /**
+     * 鍐滄埛缂栧彿
+     */
+    private String clientNum;
+
+    /**
+     * 姘村崱缂栧彿
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long cardNum;
+
+    /**
+     * 杩旇繕鍓嶄綑棰�
+     */
+    private Float money;
+
+    /**
+     * 杩旇繕閲戦
+     */
+    private Float refundAmount;
+
+    /**
+     * 鎿嶄綔浜�
+     */
+    private String operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operateTime;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index cb816f9..e852f5b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -1054,4 +1054,63 @@
             </if>
         </trim>
     </select>
+
+    <!--鑾峰彇姘村崱娑堣垂璁板綍鏁伴噺锛岀鐞嗗钩鍙颁娇鐢�-->
+    <select id="getExpendsCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM rm_open_close_valve_history och
+            INNER JOIN se_client cli ON cli.id = och.client_id
+            INNER JOIN pr_intake inta ON inta.id = och.intake_id
+        <where>
+            AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL
+            <if test = "clientName != null and clientName !=''">
+                AND cli.name like CONCAT('%',#{clientName},'%')
+            </if>
+
+            <if test = "clientNum != null and clientNum > 0">
+                AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+            </if>
+
+            <if test = "cardNum != null and cardNum !=''">
+                AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%')
+            </if>
+        </where>
+    </select>
+
+    <!--鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�-->
+    <select id="getExpends" resultType="com.dy.pipIrrGlobal.voRm.VoExpend">
+        SELECT
+            cli.name AS clientName,
+            cli.clientNum,
+            och.cl_ic_card_no AS cardNum,
+            inta.name AS intakeName,
+            och.rtu_addr AS rtuAddr,
+            och.cl_this_money AS moneyAmount,
+            och.cl_this_amount AS waterAmount,
+            och.cl_this_time AS duration,
+            och.cl_dt AS operateTime
+        FROM rm_open_close_valve_history och
+            INNER JOIN se_client cli ON cli.id = och.client_id
+            INNER JOIN pr_intake inta ON inta.id = och.intake_id
+        <where>
+            AND och.cl_ic_card_no IS NOT NULL AND och.client_id IS NOT NULL
+            <if test = "clientName != null and clientName !=''">
+                AND cli.name like CONCAT('%',#{clientName},'%')
+            </if>
+
+            <if test = "clientNum != null and clientNum > 0">
+                AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+            </if>
+
+            <if test = "cardNum != null and cardNum !=''">
+                AND och.cl_ic_card_no like CONCAT('%',#{cardNum},'%')
+            </if>
+        </where>
+        ORDER BY och.cl_dt 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-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
index 376c5ab..77b6343 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -943,4 +943,63 @@
       </if>
     </trim>
   </select>
+
+  <!--鑾峰彇杩旇繕璁板綍鏁伴噺锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�-->
+  <select id="getRefundsCount" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount
+    FROM se_client_card card
+        INNER JOIN se_client cli ON cli.id = card.clientId
+        LEFT JOIN se_card_operate ope ON ope.card_id = card.id
+        INNER JOIN ba_user us ON us.id = ope.operator
+    <where>
+      AND ope.operate_type = 5
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
+
+      <if test = "clientNum != null and clientNum > 0">
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
+      </if>
+    </where>
+  </select>
+
+  <!--鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�-->
+  <select id="getRefunds" resultType="com.dy.pipIrrGlobal.voSe.VoRefund">
+    SELECT
+        cli.name AS clientName,
+        cli.clientNum,
+        card.cardNum,
+        IFNULL(ope.money, 0) AS money,
+        IFNULL(ope.refund_amount, 0) AS refundAmount,
+        us.name AS operator,
+        ope.operate_dt AS operateTime
+    FROM se_client_card card
+        INNER JOIN se_client cli ON cli.id = card.clientId
+        LEFT JOIN se_card_operate ope ON ope.card_id = card.id
+        INNER JOIN ba_user us ON us.id = ope.operator
+    <where>
+      AND ope.operate_type = 5
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
+
+      <if test = "clientNum != null and clientNum > 0">
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
+      </if>
+    </where>
+    ORDER BY ope.operate_dt 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-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
index 7c4e317..3553183 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
@@ -27,7 +27,7 @@
                 })
         }
 )
-@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoPr"})
+@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa", "com.dy.pipIrrGlobal.daoPr", "com.dy.pipIrrGlobal.daoRm"})
 public class PipIrrSellApplication {
 
     public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index b67e8ba..0556ce3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -11,6 +11,7 @@
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.pojoSe.SeManagerCard;
 import com.dy.pipIrrGlobal.util.AmountToChinese;
+import com.dy.pipIrrGlobal.voRm.VoExpend;
 import com.dy.pipIrrGlobal.voSe.*;
 import com.dy.pipIrrSell.cardOperate.dto.*;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
@@ -869,6 +870,40 @@
     }
 
     /**
+     * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�
+     * @param vo
+     * @return
+     */
+    @GetMapping(path = "/refunds")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoRefund>>> getRefunds(QoRecharge vo){
+        try {
+            QueryResultVo<List<VoRefund>> res = cardOperateSv.getRefunds(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇杩旇繕璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    /**
+     * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�
+     * @param vo
+     * @return
+     */
+    @GetMapping(path = "/expends")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoExpend>>> getExpends(QoRecharge vo){
+        try {
+            QueryResultVo<List<VoExpend>> res = cardOperateSv.getExpends(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇娑堣垂璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗鏄庣粏
      * @param vo
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
index 1e09c0a..8dc78b3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -7,8 +7,10 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
 import com.dy.pipIrrGlobal.daoSe.*;
 import com.dy.pipIrrGlobal.pojoSe.*;
+import com.dy.pipIrrGlobal.voRm.VoExpend;
 import com.dy.pipIrrGlobal.voSe.*;
 import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
@@ -61,6 +63,9 @@
 
     @Autowired
     private SeRechargeHistoryMapper seRechargeHistoryMapper;
+
+    @Autowired
+    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
 
     @Value("${project.projectNo}")
     private Integer projectNo;
@@ -325,6 +330,44 @@
     }
 
     /**
+     * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢�
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoRefund>> getRefunds(QoRecharge queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = seCardOperateMapper.getRefundsCount(params);
+
+        QueryResultVo<List<VoRefund>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = queryVo.pageSize ;
+        rsVo.pageCurr = queryVo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = seCardOperateMapper.getRefunds(params);
+        return rsVo ;
+    }
+
+    /**
+     * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢�
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoExpend>> getExpends(QoRecharge queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = rmOpenCloseValveHistoryMapper.getExpendsCount(params);
+
+        QueryResultVo<List<VoExpend>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = queryVo.pageSize ;
+        rsVo.pageCurr = queryVo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOpenCloseValveHistoryMapper.getExpends(params);
+        return rsVo ;
+    }
+
+    /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍
      * @param vo
      * @return

--
Gitblit v1.8.0