From 5320225880ad8446100c04a897a9208b03790c55 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期五, 02 二月 2024 21:00:13 +0800
Subject: [PATCH] 2024-02-02 朱宝民 重构IC卡操作表,调整补扣接口及充值记录查询接口,重构开卡明细记录查询接口

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java                    |    9 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java                     |   23 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml                                  |   11 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java    |   51 +++---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java            |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml                              |  269 ++++++++++++++++----------------------
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java  |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java         |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRecharge.java                         |    5 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java               |   16 -
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java |    6 
 11 files changed, 202 insertions(+), 203 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 89fa666..214c071 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
@@ -11,13 +11,13 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2024-01-18 19:28
- * @LastEditTime 2024-01-18 19:28
+ * @date 2024-02-02 16:00
+ * @LastEditTime 2024-02-02 16:00
  * @Description
  */
 
 @Mapper
-public interface SeCardOperateMapper extends BaseMapper {
+public interface SeCardOperateMapper extends BaseMapper<SeCardOperate> {
     int deleteByPrimaryKey(Long id);
 
     int insert(SeCardOperate record);
@@ -57,14 +57,8 @@
      * @param params
      * @return
      */
-    List<VoTransaction> getTransactions(Map<?, ?> params);
-
-    /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇璐按姹囨�诲拰璐崱姹囨�伙紝鑾峰彇浜ゆ槗鏄庣粏浣跨敤
-     * @param params
-     * @return
-     */
-    Map getTransactionSums(Map<?, ?> params);
+    /*List<VoTransaction> getTransactions(Map<?, ?> params);*/
+    List<VoTradeDetails> getTransactions(Map<?, ?> params);
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍鏁�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java
index 21e51cb..d35244d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeCardOperate.java
@@ -17,7 +17,7 @@
 /**
  * @author ZhuBaoMin
  * @date 2024-01-18 19:10
- * @LastEditTime 2024-01-18 19:10
+ * @LastEditTime 2024-02-02 16:00
  * @Description
  */
 
@@ -96,6 +96,13 @@
     private Float gift;
 
     /**
+     * 杩旇繕閲戦;琛ユ墸鎿嶄綔鏃惰繑杩樼殑閲戦
+     */
+    @Schema(description = "杩旇繕閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "杩旇繕閲戦涓嶅皬浜巤min}", min = 0)
+    private Float refundAmount;
+
+    /**
      * 闈炰氦鏄撻噾棰�;琛ュ崱閲戦銆佽ˉ鎵i噾棰濄�佸墿浣欓噾棰濓紙瑙i攣锛�
      */
     @Schema(description = "闈炰氦鏄撻噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRecharge.java
index f90ecf5..365a623 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRecharge.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRecharge.java
@@ -35,11 +35,14 @@
     @Schema(title = "鍏呭�奸噾棰�")
     private Float amount;
 
+    @Schema(title = "杩斿洖閲戦")
+    private Float refundAmount;
+
     @Schema(title = "鍏呭�煎悗閲戦")
     private Float afterRecharge;
 
     @Schema(title = "鏀粯鏂瑰紡")
-    private Integer paymentId;
+    private String paymentName;
 
     @Schema(title = "姘翠环")
     private Float price;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
index 7940161..3caef8d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
@@ -20,6 +20,15 @@
 public class VoTradeDetails implements BaseEntity {
     private static final long serialVersionUID = 202402012040001L;
 
+    @Schema(title = "鏀堕摱鍛業D")
+    private String cashierId;
+
+    @Schema(title = "鍖哄垝鍚嶇О涓�")
+    private String districtTitle;
+
+    @Schema(title = "鏉戝簞ID")
+    private String villageId;
+
     @Schema(title = "鍐滄埛濮撳悕")
     private String clientName;
 
@@ -35,11 +44,23 @@
     @Schema(title = "浜ゆ槗閲戦")
     private Double tradeAmount;
 
+    @Schema(title = "璐按閲戦")
+    private Double waterCost;
+
+    @Schema(title = "璐崱閲戦")
+    private Double cardCost;
+
+    @Schema(title = "璧犻�侀噾棰�")
+    private Double gift;
+
+    @Schema(title = "杩斿洖閲戦")
+    private Double refundAmount;
+
     @Schema(title = "浠樻鏂瑰紡")
     private String paymentName;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @Schema(title = "浜ゆ槗鏃堕棿")
-    private Date tradeDate;
+    private Date tradeTime;
 }
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 3e2189a..039aa34 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -13,8 +13,9 @@
     <result column="price" jdbcType="FLOAT" property="price" />
     <result column="card_cost" jdbcType="INTEGER" property="cardCost" />
     <result column="gift" jdbcType="FLOAT" property="gift" />
+    <result column="refund_amount" jdbcType="FLOAT" property="refundAmount" />
     <result column="no_trade_amount" jdbcType="FLOAT" property="noTradeAmount" />
-    <result column="operate_type_id" jdbcType="BIGINT" property="operateType" />
+    <result column="operate_type" jdbcType="TINYINT" property="operateType" />
     <result column="payment_id" jdbcType="BIGINT" property="paymentId" />
     <result column="remarks" jdbcType="VARCHAR" property="remarks" />
     <result column="operator" jdbcType="BIGINT" property="operator" />
@@ -23,7 +24,7 @@
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
     id, card_id, client_id, money, system_balance, trade_amount, price, card_cost, gift, 
-    no_trade_amount, operate_type_id, payment_id, remarks, `operator`, operate_dt
+    refund_amount, no_trade_amount, operate_type, payment_id, remarks, `operator`, operate_dt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -42,15 +43,15 @@
     insert into se_card_operate (id, card_id, client_id, 
       money, system_balance, trade_amount, 
       price, card_cost, gift, 
-      no_trade_amount, operate_type, payment_id,
-      remarks, `operator`, operate_dt
-      )
+      refund_amount, no_trade_amount, operate_type, 
+      payment_id, remarks, `operator`, 
+      operate_dt)
     values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
       #{money,jdbcType=FLOAT}, #{systemBalance,jdbcType=FLOAT}, #{tradeAmount,jdbcType=FLOAT}, 
       #{price,jdbcType=FLOAT}, #{cardCost,jdbcType=INTEGER}, #{gift,jdbcType=FLOAT}, 
-      #{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=BIGINT}, #{paymentId,jdbcType=BIGINT},
-      #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}
-      )
+      #{refundAmount,jdbcType=FLOAT}, #{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=TINYINT}, 
+      #{paymentId,jdbcType=BIGINT}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, 
+      #{operateDt,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
     <!--@mbg.generated-->
@@ -83,11 +84,14 @@
       <if test="gift != null">
         gift,
       </if>
+      <if test="refundAmount != null">
+        refund_amount,
+      </if>
       <if test="noTradeAmount != null">
         no_trade_amount,
       </if>
       <if test="operateType != null">
-        operate_type_id,
+        operate_type,
       </if>
       <if test="paymentId != null">
         payment_id,
@@ -130,11 +134,14 @@
       <if test="gift != null">
         #{gift,jdbcType=FLOAT},
       </if>
+      <if test="refundAmount != null">
+        #{refundAmount,jdbcType=FLOAT},
+      </if>
       <if test="noTradeAmount != null">
         #{noTradeAmount,jdbcType=FLOAT},
       </if>
       <if test="operateType != null">
-        #{operateType,jdbcType=BIGINT},
+        #{operateType,jdbcType=TINYINT},
       </if>
       <if test="paymentId != null">
         #{paymentId,jdbcType=BIGINT},
@@ -178,11 +185,14 @@
       <if test="gift != null">
         gift = #{gift,jdbcType=FLOAT},
       </if>
+      <if test="refundAmount != null">
+        refund_amount = #{refundAmount,jdbcType=FLOAT},
+      </if>
       <if test="noTradeAmount != null">
         no_trade_amount = #{noTradeAmount,jdbcType=FLOAT},
       </if>
       <if test="operateType != null">
-        operate_type_id = #{operateType,jdbcType=BIGINT},
+        operate_type = #{operateType,jdbcType=TINYINT},
       </if>
       <if test="paymentId != null">
         payment_id = #{paymentId,jdbcType=BIGINT},
@@ -210,8 +220,9 @@
       price = #{price,jdbcType=FLOAT},
       card_cost = #{cardCost,jdbcType=INTEGER},
       gift = #{gift,jdbcType=FLOAT},
+      refund_amount = #{refundAmount,jdbcType=FLOAT},
       no_trade_amount = #{noTradeAmount,jdbcType=FLOAT},
-      operate_type_id = #{operateType,jdbcType=BIGINT},
+      operate_type = #{operateType,jdbcType=TINYINT},
       payment_id = #{paymentId,jdbcType=BIGINT},
       remarks = #{remarks,jdbcType=VARCHAR},
       `operator` = #{operator,jdbcType=BIGINT},
@@ -226,8 +237,10 @@
     FROM se_card_operate ope
         INNER JOIN se_client_card card ON ope.card_id = card.id
         INNER JOIN se_client cli ON ope.client_id = cli.id
+        INNER JOIN ba_user us ON ope.operator = us.id
+        Left JOIN se_payment_method pay ON ope.payment_id = pay.id
     <where>
-      AND ope.operate_type = 2
+      AND ope.operate_type in(2, 5)
       <if test = "clientName != null and clientName !=''">
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
@@ -253,21 +266,25 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍏呭�艰褰�-->
   <select id="getRecharges" resultType="com.dy.pipIrrGlobal.voSe.VoRecharge">
     SELECT
-        CAST(ope.id AS char) AS id ,
+        CAST(ope.id AS char) AS id,
         cli.name AS clientName,
         cli.clientNum,
-        card.cardNum,
-        ope.trade_amount AS amount,
-        (ope.money + ope.trade_amount) AS afterRecharge,
-        ope.payment_id,
+        CAST(card.cardNum AS char) AS cardNum,
+        IFNULL(ope.trade_amount, 0) AS amount,
+        IFNULL(ope.refund_amount, 0) AS refundAmount,
+        (IFNULL(ope.money, 0) + IFNULL(ope.trade_amount, 0)) AS afterRecharge,
+        -- 	ope.payment_id AS paymentId,
+        pay.name AS paymentName,
         ope.price,
-        (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
+        us.name AS operator,
         ope.operate_dt
     FROM se_card_operate ope
-        INNER JOIN se_client_card card ON ope.card_id = card.id
+    INNER JOIN se_client_card card ON ope.card_id = card.id
         INNER JOIN se_client cli ON ope.client_id = cli.id
+        INNER JOIN ba_user us ON ope.operator = us.id
+        Left JOIN se_payment_method pay ON ope.payment_id = pay.id
     <where>
-      AND ope.operate_type = 2
+      AND ope.operate_type in(2, 5)
       <if test = "clientName != null and clientName !=''">
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
@@ -300,111 +317,53 @@
   <select id="getTransactionRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
         COUNT(*) AS recordCount
-    FROM se_card_operate ope
-        INNER JOIN se_client cli ON ope.client_id = cli.id
-        INNER JOIN se_client_card card ON ope.card_id = card.id
-        INNER JOIN ba_user user ON ope.operator = user.id
-        INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
+    FROM v_trade_details
     <where>
-      AND ope.operate_type IN(1,2,3,4)
       <if test = "villageId != null and villageId > 0">
-        AND cli.villageId = ${villageId}
-      </if>
-
-      <if test = "cardNum != null and cardNum >0">
-        AND card.cardNum = ${cardNum}
+        AND villageId = ${villageId}
       </if>
 
       <if test = "operateTimeStart != null and operateTimeStop != null">
-        AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+        AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+      </if>
+
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeTime != null">
+        AND tradeTime = #{tradeTime}
       </if>
     </where>
   </select>
 
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍-->
-  <select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTransaction">
-    SELECT
-        ope.id AS orderNumber,
-        cli.villageId,
-        cli.districtTitle,
-        cli.clientNum,
-        cli.`name`,
-        card.cardNum,
-        cli.idCard,
-        cli.phone,
-        (CASE operate_type
-            WHEN 1 THEN '寮�鍗�'
-            WHEN 2 THEN '鍏呭��'
-            WHEN 3 THEN '閿�鍗�'
-            WHEN 4 THEN '琛ュ崱'
-        END) AS operateType,
-        ope.operate_dt AS operateTime,
-        IFNULL(ope.money, 0) AS money,
-        IFNULL(ope.trade_amount, 0) AS waterCost,
-        IFNULL(ope.gift, 0) AS gift,
-        IFNULL(ope.card_cost, 0) AS cardCost,
-        pay.`name` paymentMethod,
-        user.name AS operatorName
-    FROM se_card_operate ope
-        INNER JOIN se_client cli ON ope.client_id = cli.id
-        INNER JOIN se_client_card card ON ope.card_id = card.id
-        INNER JOIN ba_user user ON ope.operator = user.id
-        INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
+  <select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTradeDetails">
+    SELECT * FROM v_trade_details
     <where>
-      AND ope.operate_type IN(1,2,3,4)
       <if test = "villageId != null and villageId > 0">
-        AND cli.villageId = ${villageId}
-      </if>
-
-      <if test = "cardNum != null and cardNum >0">
-        AND card.cardNum = ${cardNum}
+        AND villageId = ${villageId}
       </if>
 
       <if test = "operateTimeStart != null and operateTimeStop != null">
-        AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
+        AND tradeTime BETWEEN #{operateTimeStart} AND #{operateTimeStop}
       </if>
 
       <if test = "cashierId != null and cashierId > 0">
-        AND user.id = ${cashierId}
+        AND cashierId = ${cashierId}
       </if>
     </where>
-    ORDER BY ope.operate_dt
+    ORDER BY tradeTime
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${pageCurr}, ${pageSize}
     </if>
-  </select>
-
-  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇璐按姹囨�诲拰璐崱姹囨�伙紝鑾峰彇浜ゆ槗鏄庣粏浣跨敤-->
-  <select id="getTransactionSums" resultType="java.util.Map">
-    SELECT
-        IFNULL(SUM(trade_amount),0) AS waterCost,
-        IFNULL(SUM(card_cost),0) AS cardCost
-    FROM se_card_operate ope
-        INNER JOIN se_client cli ON ope.client_id = cli.id
-        INNER JOIN se_client_card card ON ope.card_id = card.id
-        INNER JOIN ba_user user ON ope.operator = user.id
-        INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
-    <where>
-      AND ope.operate_type IN(1,2,3,4)
-      <if test = "villageId != null and villageId > 0">
-        AND cli.villageId = ${villageId}
-      </if>
-
-      <if test = "cardNum != null and cardNum >0">
-        AND card.cardNum = ${cardNum}
-      </if>
-
-      <if test = "operateTimeStart != null and operateTimeStop != null">
-        AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
-      </if>
-    </where>
   </select>
 
 
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍鏁�-->
   <select id="getTransactionStatisticsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-        COUNT(*) AS recordCount
+    COUNT(*) AS recordCount
     FROM v_transactionstatistics
     <where>
       <if test = "operateTimeStart != null and operateTimeStop != null">
@@ -430,9 +389,9 @@
   <!--鏍瑰熀鎸囧畾鏉′欢鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�-->
   <select id="getTransactionStatisticsSums" resultType="java.util.Map">
     SELECT
-      SUM(count) AS totalCount,
-      SUM(received) AS totalReceived,
-      SUM(gift) AS totalGift
+    SUM(count) AS totalCount,
+    SUM(received) AS totalReceived,
+    SUM(gift) AS totalGift
     FROM v_transactionstatistics
     <where>
       <if test = "operateTimeStart != null and operateTimeStop != null">
@@ -444,7 +403,7 @@
   <!--鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁�-->
   <select id="getPaymentSums" resultType="java.lang.Float">
     SELECT
-      SUM(ope.trade_amount) AS tradeAmount
+    SUM(ope.trade_amount) AS tradeAmount
     FROM se_card_operate ope
     <where>
       <if test = "tradeDate != null and tradeDate !=''">
@@ -488,23 +447,23 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰�-->
   <select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCardNew">
     SELECT
-        CAST(ope.id AS char) AS id ,
-        cli.name AS clientName,
-        cli.clientNum AS clientNum,
-        card.cardNum AS cardNum,
-        card.state AS state,
-        (CASE
-          WHEN card.state = 1 THEN "姝e父"
-          WHEN card.state = 2 THEN "宸叉敞閿�"
-          WHEN card.state = 3 THEN "宸叉寕澶�"
-        END) AS stateName,
-        ope.card_cost AS cardCost,
-        ope.payment_id AS paymentId,
-        (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
-        ope.operate_dt AS operateDt
+    CAST(ope.id AS char) AS id ,
+    cli.name AS clientName,
+    cli.clientNum AS clientNum,
+    card.cardNum AS cardNum,
+    card.state AS state,
+    (CASE
+    WHEN card.state = 1 THEN "姝e父"
+    WHEN card.state = 2 THEN "宸叉敞閿�"
+    WHEN card.state = 3 THEN "宸叉寕澶�"
+    END) AS stateName,
+    ope.card_cost AS cardCost,
+    ope.payment_id AS paymentId,
+    (SELECT `name` FROM ba_user WHERE id =  ope.operator) AS operator,
+    ope.operate_dt AS operateDt
     FROM se_card_operate ope
-      INNER JOIN se_client_card card ON ope.card_id = card.id
-      INNER JOIN se_client cli ON ope.client_id = cli.id
+    INNER JOIN se_client_card card ON ope.card_id = card.id
+    INNER JOIN se_client cli ON ope.client_id = cli.id
     <where>
       AND ope.operate_type = 1
       <if test = "clientName != null and clientName !=''">
@@ -593,14 +552,14 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏀舵嵁鍒楄〃鏁�-->
   <select id="getReceiptsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-        COUNT(*) AS recordCount
+    COUNT(*) AS recordCount
     FROM se_card_operate ope
-      INNER JOIN se_client cli ON ope.client_id = cli.id
-      INNER JOIN se_client_card card ON ope.card_id = card.id
-      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
-      INNER JOIN ba_user us ON ope.operator = us.id
-      INNER JOIN ba_district vil ON cli.villageId = vil.id
-      INNER JOIN ba_district tow ON cli.townId = tow.id
+    INNER JOIN se_client cli ON ope.client_id = cli.id
+    INNER JOIN se_client_card card ON ope.card_id = card.id
+    INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
+    INNER JOIN ba_user us ON ope.operator = us.id
+    INNER JOIN ba_district vil ON cli.villageId = vil.id
+    INNER JOIN ba_district tow ON cli.townId = tow.id
     <where>
       AND ope.operate_type IN(1,2)
       <if test = "operateId != null and operateId > 0">
@@ -620,32 +579,32 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鏀舵嵁鍒楄〃-->
   <select id="getReceipts" resultType="com.dy.pipIrrGlobal.voSe.VoReceipt">
     SELECT
-      CAST(ope.id AS char) AS orderNumber,
-      tow.name AS townName,
-      vil.name AS villageName,
-      cli.`name`,
-      cli.phone,
-      CAST(cli.clientNum AS char) AS clientNum,
-      CAST(card.cardNum AS char) AS cardNum,
-      (CASE
-         WHEN ope.operate_type = 1 THEN '寮�鍗�'
-         WHEN ope.operate_type = 2 THEN '鍏呭��'
-      END) AS operateType,
-      IFNULL(ope.trade_amount,0) AS waterCost,
-      IFNULL(ope.card_cost,0) AS cardCost,
-      (IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS amount,
-      card.money,
-      pay.`name` AS paymentName,
-      us.`name` AS operatorName,
-      ope.operate_dt AS operateTime,
-      NOW() AS currentTime
+    CAST(ope.id AS char) AS orderNumber,
+    tow.name AS townName,
+    vil.name AS villageName,
+    cli.`name`,
+    cli.phone,
+    CAST(cli.clientNum AS char) AS clientNum,
+    CAST(card.cardNum AS char) AS cardNum,
+    (CASE
+    WHEN ope.operate_type = 1 THEN '寮�鍗�'
+    WHEN ope.operate_type = 2 THEN '鍏呭��'
+    END) AS operateType,
+    IFNULL(ope.trade_amount,0) AS waterCost,
+    IFNULL(ope.card_cost,0) AS cardCost,
+    (IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS amount,
+    card.money,
+    pay.`name` AS paymentName,
+    us.`name` AS operatorName,
+    ope.operate_dt AS operateTime,
+    NOW() AS currentTime
     FROM se_card_operate ope
-      INNER JOIN se_client cli ON ope.client_id = cli.id
-      INNER JOIN se_client_card card ON ope.card_id = card.id
-      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
-      INNER JOIN ba_user us ON ope.operator = us.id
-      INNER JOIN ba_district vil ON cli.villageId = vil.id
-      INNER JOIN ba_district tow ON cli.townId = tow.id
+    INNER JOIN se_client cli ON ope.client_id = cli.id
+    INNER JOIN se_client_card card ON ope.card_id = card.id
+    INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
+    INNER JOIN ba_user us ON ope.operator = us.id
+    INNER JOIN ba_district vil ON cli.villageId = vil.id
+    INNER JOIN ba_district tow ON cli.townId = tow.id
     <where>
       AND ope.operate_type IN(1,2)
       <if test = "operateId != null and operateId > 0">
@@ -673,12 +632,12 @@
     SELECT
     SUM(IFNULL(ope.trade_amount,0) + IFNULL(ope.card_cost,0)) AS totalAmount
     FROM se_card_operate ope
-      INNER JOIN se_client cli ON ope.client_id = cli.id
-      INNER JOIN se_client_card card ON ope.card_id = card.id
-      INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
-      INNER JOIN ba_user us ON ope.operator = us.id
-      INNER JOIN ba_district vil ON cli.villageId = vil.id
-      INNER JOIN ba_district tow ON cli.townId = tow.id
+    INNER JOIN se_client cli ON ope.client_id = cli.id
+    INNER JOIN se_client_card card ON ope.card_id = card.id
+    INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
+    INNER JOIN ba_user us ON ope.operator = us.id
+    INNER JOIN ba_district vil ON cli.villageId = vil.id
+    INNER JOIN ba_district tow ON cli.townId = tow.id
     <where>
       AND ope.operate_type IN(1,2)
       <if test = "operateId != null and operateId > 0">
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
index 3a9f834..6cee85f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
@@ -338,10 +338,15 @@
         AND cashierId = ${cashierId}
       </if>
 
-      <if test = "tradeDate != null">
-        AND tradeDate = #{tradeDate}
+      <if test = "tradeTime != null">
+        AND tradeTime = #{tradeTime}
       </if>
     </where>
-    ORDER BY tradeDate
+    ORDER BY tradeTime
+    <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/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index 1d3691f..5bfd02b 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
@@ -10,7 +10,10 @@
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.util.AmountToChinese;
 import com.dy.pipIrrGlobal.util.Constant;
-import com.dy.pipIrrGlobal.voSe.*;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import com.dy.pipIrrGlobal.voSe.VoActiveCardNew;
+import com.dy.pipIrrGlobal.voSe.VoRecharge;
+import com.dy.pipIrrGlobal.voSe.VoReissueCard;
 import com.dy.pipIrrSell.cardOperate.converter.RechargeDtoMapper;
 import com.dy.pipIrrSell.cardOperate.dto.*;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
@@ -666,7 +669,8 @@
         seCardOperate.setCardId(cardId);
         seCardOperate.setClientId(clientId);
         seCardOperate.setMoney(money);
-        seCardOperate.setNoTradeAmount(refund);
+        //seCardOperate.setNoTradeAmount(refund);
+        seCardOperate.setRefundAmount(refund);
         seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode());
         seCardOperate.setRemarks(remarks);
         seCardOperate.setOperator(operator);
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 85fdc52..a6aa80d 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
@@ -1,5 +1,6 @@
 package com.dy.pipIrrSell.cardOperate;
 
+import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.webUtil.BaseResponse;
@@ -8,6 +9,7 @@
 import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
 import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
 import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
+import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.voSe.*;
@@ -48,6 +50,9 @@
 
     @Autowired
     private ClientCardSv clientCardSv;
+
+    @Autowired
+    private SeGeneralMapper seGeneralMapper;
 
 
     /**
@@ -235,6 +240,7 @@
      * @return
      */
     public Map getTransactions(QoTransaction vo){
+        DecimalFormat df = new DecimalFormat("0.00");
         // 琛ラ綈鏌ヨ鏃堕棿
         String operateTimeStart = vo.operateTimeStart;
         String operateTimeStop = vo.operateTimeStop;
@@ -250,38 +256,33 @@
         // 鐢熸垚鏌ヨ鍙傛暟
         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
 
-        // 鑾峰彇姹囨�荤殑璐按閲戦銆佽喘鍗¢噾棰�
-        Float waterCost = 0f;
-        Float cardCost = 0f;
-        Map map_sum = Optional.ofNullable(seCardOperateMapper.getTransactionSums(params)).orElse(new HashMap());
-        if(map_sum.size() > 0) {
-            waterCost = Float.parseFloat(map_sum.get("waterCost").toString());
-            cardCost = Float.parseFloat(map_sum.get("cardCost").toString());
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(seCardOperateMapper.getTransactionRecordCount(params)).orElse(0L);
+
+        List<VoTradeDetails> list = seCardOperateMapper.getTransactions(params);
+        if(list.size() == 0) {
+            return new HashMap();
         }
 
-        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
-        Long itemTotal = seCardOperateMapper.getTransactionRecordCount(params);
+        // 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬昏喘姘撮噾棰濄�佽喘鍗¢噾棰�
+        Double totalWaterCost = 0.0;
+        Double totalCardCost = 0.0;
+        JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));
+        for(int i = 0; i < array.size(); i++) {
+            JSONObject job = array.getJSONObject(i);
+            Double waterCost = Optional.ofNullable(job.getDouble("waterCost")).orElse(0.0);
+            Double cardCost = Optional.ofNullable(job.getDouble("cardCost")).orElse(0.0);
+            totalWaterCost = totalWaterCost + waterCost;
+            totalCardCost = totalCardCost + cardCost;
+        }
 
-        Integer pageSize = vo.getPageSize();
-        // 璁$畻鎬婚〉鏁�
-        Integer pageTotal ;
-        pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
-
-        // 鏍规嵁褰撳墠椤电爜鍙婃瘡椤垫暟閲忚绠楀亸绉婚噺
-        Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
-        params.put("pageCurr", pageCurr);
-
-        List<VoTransaction> lit = seCardOperateMapper.getTransactions(params);
         Map map_record = new HashMap();
         map_record.put("itemTotal", itemTotal);
-        map_record.put("pageCurr", vo.pageCurr);
-        map_record.put("pageSize", pageSize);
-        map_record.put("pageTotal", pageTotal);
-        map_record.put("list", lit);
+        map_record.put("list", list);
 
         Map map_result = new HashMap();
-        map_result.put("waterCost", waterCost);
-        map_result.put("cardCost", cardCost);
+        map_result.put("waterCost", df.format(totalWaterCost));
+        map_result.put("cardCost", df.format(totalCardCost));
         map_result.put("records", map_record);
 
         return map_result;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java
index fbea65b..d76dc4c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java
@@ -22,8 +22,8 @@
     @Schema(description = "鏉慖D")
     public Long villageId;
 
-    @Schema(description = "姘村崱缂栧彿")
-    public Long cardNum;
+    //@Schema(description = "姘村崱缂栧彿")
+    //public Long cardNum;
 
     @Schema(description = "浜ゆ槗鏌ヨ璧峰鏃堕棿")
     public String operateTimeStart;
@@ -33,4 +33,6 @@
 
     @Schema(description = "鏀堕摱鍛業D")
     public Long cashierId;
+
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
index 21a1123..58eb1c7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
@@ -128,7 +128,7 @@
 
         // 鎺ユ敹浼犲叆鍙傛暟锛氭搷浣滄棩鏈熴�佹敹閾跺憳ID
         JSONArray array_paymentSums = new JSONArray();
-        String tradeDate = vo.getTradeDate();
+        String tradeDate = vo.getTradeTime();
         Long cashierId = vo.cashierId;
 
         // 鍒嗗埆璁$畻鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰�
@@ -216,9 +216,12 @@
         Map map_record = new HashMap();
         map_record.put("itemTotal", rsVo.itemTotal);
         map_record.put("pageCurr", rsVo.pageCurr);
+        map_record.put("pageSize", rsVo.pageSize);
+        map_record.put("pageTotal", rsVo.pageTotal);
         map_record.put("list", list);
 
         Map map_result = new HashMap();
+
         map_result.put("totalTradeAmount", df.format(totalTradeAmount));
         map_result.put("records", map_record);
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java
index 809a5ee..192927c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java
@@ -20,7 +20,7 @@
 @Schema(name = "寰呭鏍镐氦鏄撴眹鎬绘煡璇㈡潯浠�")
 public class QoToAudit extends QueryConditionVo {
     @Schema(description = "浜ゆ槗鏃堕棿")
-    public String tradeDate;
+    public String tradeTime;
 
     @Schema(description = "鏀堕摱鍛業D")
     public Long cashierId;

--
Gitblit v1.8.0