From 7de25577335478f3f2a55ac41ace3360b8f56b46 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 25 一月 2024 21:18:18 +0800
Subject: [PATCH] 2024-01-25 朱宝民 财务对账审核页、财务对账明细页

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java                        |   35 +++--
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java                   |   32 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java                          |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml                                  |  137 ++++++++++++++++++----
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java          |   22 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java            |   78 ++++++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml                              |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java         |   27 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java |    3 
 9 files changed, 299 insertions(+), 44 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java
index c1de684..0e230af 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeGeneral;
 import com.dy.pipIrrGlobal.voSe.VoGeneral;
+import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,7 +13,7 @@
 /**
  * @author ZhuBaoMin
  * @date 2024-01-24 18:57
- * @LastEditTime 2024-01-24 18:57
+ * @LastEditTime 2024-01-25 15:55
  * @Description
  */
 
@@ -56,4 +57,33 @@
      * @return
      */
     List<VoGeneral> getGenerals(Map<?, ?> params);
+
+    /**
+     * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁勶紝璁板綍鏁�
+     * @param params
+     * @return
+     */
+    Long getToAuditRecordCount(Map<?, ?> params);
+
+    /**
+     * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�
+     * @param params
+     * @return
+     */
+    List<VoTransactionStatistics> getToAudit(Map<?, ?> params);
+
+    /**
+     * 鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁�
+     * @param tradeDate
+     * @param paymentId
+     * @return
+     */
+    Float getPaymentSums(@Param("tradeDate") String tradeDate, @Param("cashierId") Long cashierId, @Param("paymentId") Long paymentId);
+
+    /**
+     * 鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�
+     * @param params
+     * @return
+     */
+    Map getTransactionStatisticsSums(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java
index 7504a19..9301699 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java
@@ -33,51 +33,58 @@
     public static final long serialVersionUID = 202401241912001L;
 
     /**
-    * 涓婚敭
-    */
+     * 涓婚敭
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long id;
 
     /**
-    * 鏀堕摱鍛樺鍚�
-    */
+     * 鏀堕摱鍛業D
+     */
+    @Schema(description = "鏀堕摱鍛業D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鏀堕摱鍛業D涓嶈兘涓虹┖")
+    private Long cashierId;
+
+    /**
+     * 鏀堕摱鍛樺鍚�
+     */
     @Schema(description = "鏀堕摱鍛樺鍚�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotBlank(message = "鏀堕摱鍛樺鍚嶄笉鑳戒负绌�")
     private String cashierName;
 
     /**
-    * 瀹炴敹閲戦
-    */
+     * 瀹炴敹閲戦
+     */
     @Schema(description = "瀹炴敹閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotNull(message = "瀹炴敹閲戦涓嶈兘涓虹┖")
     private Double tradeAmount;
 
     /**
-    * 璧犻�侀噾棰�
-    */
+     * 璧犻�侀噾棰�
+     */
     @Schema(description = "璧犻�侀噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotNull(message = "璧犻�侀噾棰濅笉鑳戒负绌�")
     private Double gift;
 
     /**
-    * 鎬婚
-    */
+     * 鎬婚
+     */
     @Schema(description = "鎬婚", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotNull(message = "鎬婚涓嶈兘涓虹┖")
     private Double totalAmount;
 
     /**
-    * 浜ゆ槗鏃ユ湡
-    */
+     * 浜ゆ槗鏃ユ湡
+     */
     @Schema(description = "浜ゆ槗鏃ユ湡", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotNull(message = "浜ゆ槗鏃ユ湡涓嶈兘涓虹┖")
     private Date operateDate;
 
     /**
-    * 瀹℃牳鐘舵��;1-鏈鏍革紝2-鍚屾剰锛�3-椹冲洖
-    */
+     * 瀹℃牳鐘舵��;1-鏈鏍革紝2-鍚屾剰锛�3-椹冲洖
+     */
     @Schema(description = "瀹℃牳鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @Max(message = "瀹℃牳鐘舵�佹渶澶т负3", value = 3)
     @Min(message = "瀹℃牳鐘舵�佹渶灏忎负1",value = 1)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
index f1df434..b9fd28b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
@@ -17,7 +17,10 @@
     private static final long serialVersionUID = 202401241706001L;
 
     @Schema(title = "鎬昏处ID")
-    private Long generalId;
+    private String generalId;
+
+    @Schema(title = "鏀堕摱鍛業D")
+    private String cashierId;
 
     @Schema(title = "鏀堕摱鍛樺鍚�")
     private String cashierName;
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 e274a1a..903a820 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -361,6 +361,10 @@
       <if test = "operateTimeStart != null and operateTimeStop != null">
         AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
       </if>
+
+      <if test = "cashierId != null and cashierId > 0">
+        AND user.id = ${cashierId}
+      </if>
     </where>
     ORDER BY ope.operate_dt
     <if test="pageCurr != null and pageSize != null">
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 8e5ea53..5dbd371 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
@@ -5,6 +5,7 @@
     <!--@mbg.generated-->
     <!--@Table se_general-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="cashier_id" jdbcType="BIGINT" property="cashierId" />
     <result column="cashier_name" jdbcType="VARCHAR" property="cashierName" />
     <result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" />
     <result column="gift" jdbcType="FLOAT" property="gift" />
@@ -14,7 +15,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status
+    id, cashier_id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -30,12 +31,12 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
-    insert into se_general (id, cashier_name, trade_amount, 
-      gift, total_amount, operate_date, 
-      audit_status)
-    values (#{id,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, #{tradeAmount,jdbcType=FLOAT}, 
-      #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, #{operateDate,jdbcType=TIMESTAMP}, 
-      #{auditStatus,jdbcType=TINYINT})
+    insert into se_general (id, cashier_id, cashier_name, 
+      trade_amount, gift, total_amount, 
+      operate_date, audit_status)
+    values (#{id,jdbcType=BIGINT}, #{cashierId,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, 
+      #{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, 
+      #{operateDate,jdbcType=TIMESTAMP}, #{auditStatus,jdbcType=TINYINT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
@@ -43,6 +44,9 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="cashierId != null">
+        cashier_id,
       </if>
       <if test="cashierName != null">
         cashier_name,
@@ -66,6 +70,9 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+      <if test="cashierId != null">
+        #{cashierId,jdbcType=BIGINT},
       </if>
       <if test="cashierName != null">
         #{cashierName,jdbcType=VARCHAR},
@@ -91,6 +98,9 @@
     <!--@mbg.generated-->
     update se_general
     <set>
+      <if test="cashierId != null">
+        cashier_id = #{cashierId,jdbcType=BIGINT},
+      </if>
       <if test="cashierName != null">
         cashier_name = #{cashierName,jdbcType=VARCHAR},
       </if>
@@ -115,7 +125,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
     update se_general
-    set cashier_name = #{cashierName,jdbcType=VARCHAR},
+    set cashier_id = #{cashierId,jdbcType=BIGINT},
+      cashier_name = #{cashierName,jdbcType=VARCHAR},
       trade_amount = #{tradeAmount,jdbcType=FLOAT},
       gift = #{gift,jdbcType=FLOAT},
       total_amount = #{totalAmount,jdbcType=FLOAT},
@@ -135,14 +146,15 @@
   <!--鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級  -->
   <select id="getGeneralByOperateDate" resultType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     SELECT
-      us.`name` AS cashierName,
-      IFNULL(SUM(ope.trade_amount),0) AS tradeAmount,
-      IFNULL(SUM(ope.gift),0) AS gift,
-      IFNULL((SUM(ope.trade_amount) + SUM(ope.gift)),0) AS totalAmount,
-      Date(ope.operate_dt) AS operateDate,
-      1 AS auditStatus
+        us.id AS cashierId,
+        us.`name` AS cashierName,
+        IFNULL(SUM(ope.trade_amount),0) AS tradeAmount,
+        IFNULL(SUM(ope.gift),0) AS gift,
+        IFNULL((SUM(ope.trade_amount) + SUM(ope.gift)),0) AS totalAmount,
+        Date(ope.operate_dt) AS operateDate,
+        1 AS auditStatus
     FROM se_card_operate ope
-      INNER JOIN ba_user us ON ope.operator = us.id
+        INNER JOIN ba_user us ON ope.operator = us.id
     WHERE Date(ope.operate_dt) = #{operateDate}
     GROUP BY ope.operator, Date(ope.operate_dt)
   </select>
@@ -150,7 +162,7 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍鏁�-->
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-        COUNT(*) AS recordCount
+    COUNT(*) AS recordCount
     FROM se_general
     <where>
       <if test = "cashierName != null and cashierName !=''">
@@ -170,16 +182,17 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍-->
   <select id="getGenerals" resultType="com.dy.pipIrrGlobal.voSe.VoGeneral">
     SELECT
-      id AS generalId,
-      cashier_name AS cashierName,
-      trade_amount AS tradeAmount,
-      gift,
-      total_amount AS totalAmount,
-      Date(operate_date) AS operateDate,
-      (CASE
-         WHEN audit_status = 1 THEN "鏈鏍�"
-         WHEN audit_status = 2 THEN "鍚屾剰"
-         WHEN audit_status = 3 THEN "椹冲洖"
+        CAST(id AS  char) AS generalId,
+        CAST(cashier_id AS char) AS cashierId,
+        cashier_name AS cashierName,
+        trade_amount AS tradeAmount,
+        gift,
+        total_amount AS totalAmount,
+        Date(operate_date) AS operateDate,
+        (CASE
+          WHEN audit_status = 1 THEN "鏈鏍�"
+          WHEN audit_status = 2 THEN "鍚屾剰"
+          WHEN audit_status = 3 THEN "椹冲洖"
         END) AS auditStatus
     FROM se_general
     <where>
@@ -201,4 +214,76 @@
     </if>
   </select>
 
+  <!--鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁�-->
+  <select id="getPaymentSums" resultType="java.lang.Float">
+    SELECT
+    SUM(ope.trade_amount) AS tradeAmount
+    FROM se_card_operate ope
+    <where>
+      <if test = "tradeDate != null and tradeDate !=''">
+        AND Date(ope.operate_dt) = #{tradeDate}
+      </if>
+
+      <if test = "paymentId != null and paymentId >0">
+        AND ope.payment_id = ${paymentId}
+      </if>
+
+      <if test = "cashierId != null and cashierId >0">
+        AND ope.operator = ${cashierId}
+      </if>
+    </where>
+    GROUP BY ope.payment_id,  Date(ope.operate_dt)
+  </select>
+
+  <!--鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�-->
+  <select id="getTransactionStatisticsSums" resultType="java.util.Map">
+    SELECT
+      SUM(count) AS totalCount,
+      SUM(received) AS totalReceived,
+      SUM(gift) AS totalGift
+    FROM v_transactionstatistics2
+    <where>
+      <if test = "tradeDate != null and tradeDate !=''">
+        AND tradeDate = #{tradeDate}
+      </if>
+
+      <if test = "cashierId != null and cashierId >0">
+        AND cashierId = ${cashierId}
+      </if>
+    </where>
+  </select>
+
+  <!--  璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁勶紝璁板綍鏁�-->
+  <select id="getToAuditRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM v_transactionstatistics2
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+  </select>
+
+  <!--璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�-->
+  <select id="getToAudit" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics">
+    SELECT * FROM v_transactionstatistics2
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+    ORDER BY tradeDate
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${pageCurr}, ${pageSize}
+    </if>
+  </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/qo/QoTransaction.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/qo/QoTransaction.java
index 9e83b62..fbea65b 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
@@ -30,4 +30,7 @@
 
     @Schema(description = "浜ゆ槗鏌ヨ鎴鏃堕棿")
     public String operateTimeStop;
+
+    @Schema(description = "鏀堕摱鍛業D")
+    public Long cashierId;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
index 6452465..dabaf7f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
@@ -11,6 +11,7 @@
 import com.dy.pipIrrGlobal.voSe.VoGeneral;
 import com.dy.pipIrrSell.general.dto.DtoGeneral;
 import com.dy.pipIrrSell.general.qo.QoGeneral;
+import com.dy.pipIrrSell.general.qo.QoToAudit;
 import com.dy.pipIrrSell.result.SellResultCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -164,4 +165,25 @@
 
         return BaseResponseUtils.buildSuccess() ;
     }
+
+    @Operation(summary = "鑾峰緱寰呭鏍镐氦鏄撴眹鎬昏褰�", description = "杩斿洖寰呭鏍镐氦鏄撴眹鎬昏褰�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaClient.class))}
+            )
+    })
+    @GetMapping(path = "getToAudit")
+    @SsoAop()
+    public BaseResponse<Map> getToAudit(QoToAudit vo){
+        try {
+            Map res = generalSv.getToAudit(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }
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 8e4279e..8f9832c 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
@@ -1,19 +1,23 @@
 package com.dy.pipIrrSell.general;
 
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoSe.SeAuditsMapper;
+import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
 import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeAudits;
 import com.dy.pipIrrGlobal.pojoSe.SeGeneral;
 import com.dy.pipIrrGlobal.voSe.VoGeneral;
+import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics;
 import com.dy.pipIrrSell.general.qo.QoGeneral;
+import com.dy.pipIrrSell.general.qo.QoToAudit;
 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.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -30,6 +34,9 @@
 
     @Autowired
     private SeAuditsMapper seAuditsMapper;
+
+    @Autowired
+    private SeCardOperateMapper seCardOperateMapper;
 
     /**
      * 鑾峰彇鏈敓鎴愭�昏处鐨勪氦鏄撴棩鏈熷垪琛紙褰撳ぉ鐨勪氦鏄撹褰曚笉鐢熸垚鎬昏处锛�
@@ -112,4 +119,71 @@
     public Integer addAudits(SeAudits po) {
         return seAuditsMapper.insert(po);
     }
+
+    /**
+     * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�
+     * @param vo
+     * @return
+     */
+    public Map getToAudit(QoToAudit vo) {
+        /**
+         * 鍙栧嚭鎸囧畾鏃ユ湡涓夌鏀粯鏂瑰紡锛堢幇閲戙�佹壂鐮併�佽浆璐︼級瀹炴敹閲戦
+         */
+        JSONArray array_paymentSums = new JSONArray();
+        String tradeDate = vo.getTradeDate();
+        Long cashierId = vo.cashierId;
+
+        Float receivedCash = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 1L)).orElse(0f);
+        Float receivedQRCode = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId,2L)).orElse(0f);
+        Float receivedTransfer = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 3L)).orElse(0f);
+        JSONObject job = new JSONObject();
+        job.put("tradeDate", tradeDate);
+        job.put("receivedCash", receivedCash);
+        job.put("receivedQRCode", receivedQRCode);
+        job.put("receivedTransfer", receivedTransfer);
+        array_paymentSums.add(job);
+
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
+
+        //鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�
+        Integer totalCount = 0;
+        Float totalReceived = 0f;
+        Float totalGift = 0f;
+        Map map_sum = Optional.ofNullable(seGeneralMapper.getTransactionStatisticsSums(params)).orElse(new HashMap());
+        if(map_sum.size() > 0) {
+            totalCount = Integer.parseInt(map_sum.get("totalCount").toString());
+            totalReceived = Float.parseFloat(map_sum.get("totalReceived").toString());
+            totalGift = Float.parseFloat(map_sum.get("totalGift").toString());
+        }
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = seGeneralMapper.getToAuditRecordCount(params);
+
+        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<VoTransactionStatistics> list = seGeneralMapper.getToAudit(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", list);
+
+        Map map_result = new HashMap();
+        map_result.put("totalCount", totalCount);
+        map_result.put("totalReceived", totalReceived);
+        map_result.put("totalGift", totalGift);
+        map_result.put("records", map_record);
+        map_result.put("paymentSums", array_paymentSums);
+
+        return map_result;
+    }
 }
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
new file mode 100644
index 0000000..809a5ee
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrSell.general.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-25 20:13
+ * @LastEditTime 2024-01-25 20:13
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "寰呭鏍镐氦鏄撴眹鎬绘煡璇㈡潯浠�")
+public class QoToAudit extends QueryConditionVo {
+    @Schema(description = "浜ゆ槗鏃堕棿")
+    public String tradeDate;
+
+    @Schema(description = "鏀堕摱鍛業D")
+    public Long cashierId;
+}

--
Gitblit v1.8.0