From 2e021dbbcaee9c2af592ca639831eac66a4edd07 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 24 五月 2026 10:46:44 +0800
Subject: [PATCH] fix: 根据保养的状态进行排序

---
 src/main/resources/mapper/device/DeviceMaintenanceMapper.xml |   36 +++++++++++++++++++++++-------------
 1 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
index e21669f..99b9bbc 100644
--- a/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
+++ b/src/main/resources/mapper/device/DeviceMaintenanceMapper.xml
@@ -26,31 +26,41 @@
         left join device_ledger dl on dm.device_ledger_id = dl.id
         left join sys_user su on dm.create_user = su.user_id
         <where>
-            1 = 1
-            <if test="deviceMaintenanceDto.deviceName != null">
-                and dl.device_name like concat('%',#{deviceMaintenanceDto.deviceName},'%')
+            <if test="deviceMaintenanceDto.deviceName != null and deviceMaintenanceDto.deviceName != ''">
+                and dl.device_name like concat('%', #{deviceMaintenanceDto.deviceName}, '%')
             </if>
-            <if test="deviceMaintenanceDto.deviceModel != null">
-                and dl.device_model like concat('%',#{deviceMaintenanceDto.deviceModel},'%')
+            <if test="deviceMaintenanceDto.deviceModel != null and deviceMaintenanceDto.deviceModel != ''">
+                and dl.device_model like concat('%', #{deviceMaintenanceDto.deviceModel}, '%')
             </if>
             <if test="deviceMaintenanceDto.status != null">
                 and dm.status = #{deviceMaintenanceDto.status}
             </if>
-            <if test="deviceMaintenanceDto.maintenanceActuallyName != null">
-                and dm.maintenance_actually_name like concat('%',#{deviceMaintenanceDto.maintenanceActuallyName},'%')
+            <if test="deviceMaintenanceDto.maintenanceActuallyName != null and deviceMaintenanceDto.maintenanceActuallyName != ''">
+                and dm.maintenance_actually_name like concat('%', #{deviceMaintenanceDto.maintenanceActuallyName}, '%')
             </if>
             <if test="deviceMaintenanceDto.maintenancePlanTime != null">
-                and dm.maintenance_plan_time like concat('%',#{deviceMaintenanceDto.maintenancePlanTime},'%')
+                and dm.maintenance_plan_time = #{deviceMaintenanceDto.maintenancePlanTime}
             </if>
             <if test="deviceMaintenanceDto.maintenanceActuallyTime != null">
-                and dm.maintenance_actually_time like concat('%',#{deviceMaintenanceDto.maintenanceActuallyTime},'%')
-            </if>
-            <if test="deviceMaintenanceDto.maintenanceActuallyTime != null">
-                and dm.maintenance_actually_time >= str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d')
-                and dm.maintenance_actually_time &lt; date_add(str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d'), interval 1 day)
+                and dm.maintenance_actually_time &gt;= str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime},
+                '%Y-%m-%d')
+                and dm.maintenance_actually_time &lt;
+                date_add(str_to_date(#{deviceMaintenanceDto.maintenanceActuallyTime}, '%Y-%m-%d'), interval 1 day)
             </if>
         </where>
+        order by
+        <!--    寰呬繚鍏�(0)浼樺厛鎺掑湪涓婇潰锛屽凡瀹岀粨(1)鍦ㄤ笅闈� -->
+        dm.status asc,
+        case
+        <!-- 褰撶姸鎬佹槸 0锛堝緟淇濆吇锛夋椂锛屾寜璁″垝鏃堕棿鍗囧簭锛屽嵆鏃堕棿鏈�杩滅殑鍗曞瓙鍦ㄦ渶涓婇潰 -->
+        when dm.status = 0 then dm.maintenance_plan_time
+        end asc,
+        case
+        <!-- 褰撶姸鎬佹槸 1锛堝凡瀹岀粨锛夋椂锛屾寜瀹為檯淇濆吇鏃堕棿闄嶅簭锛屾渶杩戝垰淇濆吇瀹岀殑鍗曞瓙鍦ㄥ凡瀹岀粨閲屾帓鏈�鍓� -->
+        when dm.status = 1 then dm.maintenance_actually_time
+        end desc
     </select>
+
     <select id="detailById" resultType="com.ruoyi.device.vo.DeviceMaintenanceVo">
         select dm.id,
                dm.device_ledger_id,

--
Gitblit v1.9.3