From e2079ea034c7f6bb5fc096fd4d83ed9b2cc3ff13 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 21 六月 2026 10:38:31 +0800
Subject: [PATCH] fix: 导入销售订单汇总修改

---
 src/main/resources/mapper/sales/SalesLedgerMapper.xml |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 56 insertions(+), 15 deletions(-)

diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 01e269c..b2d6781 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -31,7 +31,11 @@
         T1.execution_date,
         T2.nick_name AS entry_person_name,
         T1.payment_method,
-        DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff
+        DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
+        T1.delivery_status AS deliveryStatus,
+        T1.order_status AS orderStatus,
+        T1.label_print_count AS labelPrintCount,
+        T1.document_print_count AS documentPrintCount
         FROM
         sales_ledger T1
         LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
@@ -43,7 +47,8 @@
     </select>
 
     <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.pojo.SalesLedger">
-        SELECT T1.id,
+        SELECT
+        T1.id,
         T1.sales_contract_no,
         T1.customer_contract_no,
         T1.project_name,
@@ -53,6 +58,7 @@
         T1.customer_name,
         T1.entry_person,
         T1.remarks,
+        T1.customer_remarks,
         T1.attachment_materials,
         T1.tenant_id,
         T1.contract_amount,
@@ -61,21 +67,20 @@
         T2.nick_name AS entry_person_name,
         T1.payment_method,
         T1.delivery_date,
+        T1.stock_status,
         DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
-        CASE
-        WHEN shipping_status_counts.total_count = 0 THEN false
-        WHEN shipping_status_counts.unshipped_count = 0 THEN true
-        ELSE false
-        END AS is_fh
+        T1.delivery_status AS deliveryStatus,
+        T1.review_status AS reviewStatus,
+        T1.counter_review_time AS counterReviewTime,
+        T1.counter_review_person AS counterReviewPerson,
+        T1.counter_review_person_id AS counterReviewPersonId,
+        T1.counter_review_type AS counterReviewType,
+        T1.counter_review_desc AS counterReviewDesc,
+        T1.order_status AS orderStatus,
+        T1.label_print_count AS labelPrintCount,
+        T1.document_print_count AS documentPrintCount
         FROM sales_ledger T1
         LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
-        LEFT JOIN (
-        SELECT sales_ledger_id,
-        COUNT(*) as total_count,
-        SUM(CASE WHEN status != '宸插彂璐�' THEN 1 ELSE 0 END) as unshipped_count
-        FROM shipping_info
-        GROUP BY sales_ledger_id
-        ) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id
         <where>
             <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
                 AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
@@ -95,8 +100,44 @@
             <if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
                 AND T1.entry_date &lt;= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
             </if>
+
+            <if test="salesLedgerDto.deliveryStatus != null">
+                AND T1.delivery_status = #{salesLedgerDto.deliveryStatus}
+            </if>
+            <if test="salesLedgerDto.stockStatus != null">
+                AND T1.stock_status = #{salesLedgerDto.stockStatus}
+            </if>
+            <if test="salesLedgerDto.reviewStatus != null">
+                AND T1.review_status = #{salesLedgerDto.reviewStatus}
+            </if>
+            <if test="salesLedgerDto.reviewStatusList != null and salesLedgerDto.reviewStatusList.size() > 0">
+                AND (
+                    T1.review_status IN
+                    <foreach collection="salesLedgerDto.reviewStatusList" item="status" open="(" separator="," close=")">
+                        #{status}
+                    </foreach>
+                    OR T1.review_status IS NULL
+                )
+            </if>
+            <if test="salesLedgerDto.orderStatus != null">
+                AND T1.order_status = #{salesLedgerDto.orderStatus}
+            </if>
+            <if test="salesLedgerDto.width != null or salesLedgerDto.height != null">
+                AND EXISTS (
+                SELECT 1
+                FROM sales_ledger_product SLP
+                WHERE SLP.sales_ledger_id = T1.id
+                AND SLP.type = 1
+                <if test="salesLedgerDto.width != null">
+                    AND SLP.width = #{salesLedgerDto.width}
+                </if>
+                <if test="salesLedgerDto.height != null">
+                    AND SLP.height = #{salesLedgerDto.height}
+                </if>
+                )
+            </if>
         </where>
-        order by T1.entry_date desc
+        ORDER BY T1.entry_date DESC,T1.id DESC
     </select>
 
     <select id="selectIncomeStats" resultType="com.ruoyi.home.dto.IncomeExpenseAnalysisDto">

--
Gitblit v1.9.3