From 88e995ccceb33b970fa00b349dd6292e2848bd3d Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 16 一月 2026 09:09:43 +0800
Subject: [PATCH] yys 销售指标,采购报表
---
src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java | 67 +++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
index 9980acc..6e4aee6 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -1,8 +1,19 @@
package com.ruoyi.sales.mapper;
-import java.util.List;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.dto.SalesTrendDto;
+import com.ruoyi.sales.dto.StatisticsTableDto;
import com.ruoyi.sales.pojo.SalesLedger;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.math.BigDecimal;
+import java.util.List;
/**
@@ -12,4 +23,58 @@
* @date 2025-05-08
*/
public interface SalesLedgerMapper extends BaseMapper<SalesLedger> {
+ /**
+ * 鏌ヨ鎸囧畾鏃ユ湡鐨勬墍鏈夊悎鍚屽簭鍒楀彿
+ * @param datePart 鏃ユ湡閮ㄥ垎锛堟牸寮忥細yyyyMMdd锛�
+ * @return 搴忓垪鍙峰垪琛�
+ */
+ List<Integer> selectSequencesByDate(@Param("datePart") String datePart);
+
+ List getSalesNo();
+
+ <T> BigDecimal selectSum(LambdaQueryWrapper<T> wrapper, SFunction<T, BigDecimal> column);
+
+ /**
+ *
+ * @param salesLedgerDto
+ * @return
+ */
+ List<SalesLedger> selectSalesLedgerList(@Param("salesLedgerDto") SalesLedgerDto salesLedgerDto);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param page
+ * @param salesLedgerDto
+ * @return
+ */
+ IPage<SalesLedger> selectSalesLedgerListPage(Page page, @Param("salesLedgerDto") SalesLedgerDto salesLedgerDto);
+
+ /**
+ * 鎸夋湀浠界粺璁¤鍗曟暟銆侀攢鍞锛堟敮鎸佷骇鍝佸ぇ绫汇�佸鎴峰悕绉扮瓫閫夛級
+ * @param statisticsTableDto 缁熻鏌ヨ鍙傛暟DTO
+ * @return 閿�鍞秼鍔跨粺璁$粨鏋�
+ */
+ @Select("<script>" +
+ "SELECT " +
+ "DATE_FORMAT(sl.entry_date, '%Y-%m') AS month, " +
+ "COUNT(DISTINCT sl.id) AS order_count, " + // 鎬昏鍗曟暟
+ "SUM(slp.tax_inclusive_total_price) AS sales_amount, " + // 閿�鍞
+ // 鍙戣揣鐜� = 鍙戣揣璁㈠崟鏁� * 100 / 鎬昏鍗曟暟锛堜繚鐣�2浣嶅皬鏁帮紝閬垮厤闄�0鎶ラ敊锛�
+ "ROUND(IF(COUNT(DISTINCT sl.id) = 0, 0, " +
+ "SUM(CASE WHEN slp.approve_status = 2 THEN 1 ELSE 0 END) / COUNT(DISTINCT sl.id) * 100), 2) AS ship_rate " +
+ "FROM sales_ledger sl " +
+ "LEFT JOIN sales_ledger_product slp ON sl.id = slp.sales_ledger_id " +
+ "WHERE sl.entry_date BETWEEN #{statisticsTableDto.entryDateStart} AND #{statisticsTableDto.entryDateEnd} " +
+ // 浜у搧澶х被绛涢��
+ "<if test='statisticsTableDto.productCategory != null and statisticsTableDto.productCategory != \"\"'>" +
+ "AND slp.product_category = #{statisticsTableDto.productCategory} " +
+ "</if>" +
+ // 瀹㈡埛鍚嶇О绛涢��
+ "<if test='statisticsTableDto.customerName != null and statisticsTableDto.customerName != \"\"'>" +
+ "AND sl.customer_name = #{statisticsTableDto.customerName} " +
+ "</if>" +
+ "GROUP BY DATE_FORMAT(sl.entry_date, '%Y-%m') " +
+ "ORDER BY month" +
+ "</script>")
+ List<SalesTrendDto> statisticsTable(@Param("statisticsTableDto")StatisticsTableDto statisticsTableDto);
}
--
Gitblit v1.9.3