From 7aad06fedc12f0183734088fa44c929ac6ff42b3 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 10 十月 2026 11:54:01 +0800
Subject: [PATCH] feat: 增加多个查询的排序功能以优化数据检索

---
 src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml b/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
index bcf4b64..42e67a2 100644
--- a/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
+++ b/src/main/resources/mapper/production/SalesLedgerSchedulingMapper.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+锘�<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.production.mapper.SalesLedgerSchedulingMapper">
 
@@ -15,13 +15,14 @@
         T2.quantity,
         T2.product_category,
         T2.specification_model,
+        T2.speculative_trading_name,
         T2.unit
         FROM
         sales_ledger_product T2
         LEFT join sales_ledger_scheduling t3 on T2.id = t3.sales_ledger_product_id
         LEFT JOIN sales_ledger T1 ON T1.id = T2.sales_ledger_id
         <where>
-            T1.id is not null
+            T1.id is not null and T2.type = 1
             <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
                 AND  T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
             </if>
@@ -42,6 +43,10 @@
             </if>
         </where>
         GROUP BY T2.id
+        <if test="salesLedgerDto.status != null and salesLedgerDto.status.equals('true')">
+            HAVING quantity - schedulingNum > 0
+        </if>
+        order by T1.entry_date desc
     </select>
     <select id="list" resultType="com.ruoyi.production.dto.SalesLedgerSchedulingDto">
         SELECT
@@ -60,8 +65,9 @@
             sales_ledger_product T2
                 LEFT JOIN sales_ledger T1 ON T1.id = T2.sales_ledger_id
                 LEFT join sales_ledger_scheduling t3 on T1.id = t3.sales_ledger_id
-        where T1.id is not null
+        where T1.id is not null and T2.type = 1
         GROUP BY T2.id
+        ORDER BY T2.id DESC
     </select>
     <select id="listPageProcess" resultType="com.ruoyi.production.dto.SalesLedgerSchedulingProcessDto">
         SELECT
@@ -71,21 +77,24 @@
         T2.status,
         T2.scheduling_user_id,
         T2.scheduling_user_name,
+        T2.speculative_trading_name,
         T2.scheduling_date,
         ifNull(T2.scheduling_num,0) AS schedulingNum,
+        ifNull(T2.finished_num,0) AS successNum,
         T1.sales_contract_no,
         T1.customer_contract_no,
         T1.project_name,
         T1.customer_name,
         t3.product_category,
         t3.specification_model,
-        t3.unit
+        t3.unit,
+        T2.production_line
         FROM
         sales_ledger_scheduling T2
         LEFT JOIN sales_ledger T1 ON T1.id = T2.sales_ledger_id
-        left join sales_ledger_product t3 on T2.sales_ledger_product_id = t3.id
+        left join sales_ledger_product t3 on T2.sales_ledger_product_id = t3.id and t3.type = 1
         <where>
-            1 = 1
+            t3.type = 1
             <if test="salesLedgerDto.status != null and salesLedgerDto.status != '' ">
                 AND  T2.status = #{salesLedgerDto.status}
             </if>
@@ -101,13 +110,13 @@
             <if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' ">
                 AND T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%')
             </if>
-            <if test="salesLedgerDto.schedulingDateStart != null and salesLedgerDto.schedulingDateStart != '' ">
+            <if test="salesLedgerDto.entryDateStart != null and salesLedgerDto.entryDateStart != '' ">
                 AND T2.scheduling_date &gt;= DATE_FORMAT(#{salesLedgerDto.entryDateStart},'%Y-%m-%d')
             </if>
-            <if test="salesLedgerDto.schedulingDateEnd != null and salesLedgerDto.schedulingDateEnd != '' ">
+            <if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
                 AND  T2.scheduling_date &lt;= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
             </if>
         </where>
-        order by T2.update_time desc
+        order by T2.scheduling_date desc
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3