From 30a4a720cfdd57248514f50d141dfd51519aa75d Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 16 一月 2026 08:58:57 +0800
Subject: [PATCH] yys 销售指标,采购报表
---
src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
index a0a0b1f..6e4aee6 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesLedgerMapper.java
@@ -6,8 +6,11 @@
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;
@@ -45,4 +48,33 @@
* @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