From fe031e01cc1737c2f05a133fde7c36c7a2a7b4b4 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期三, 21 一月 2026 17:38:32 +0800
Subject: [PATCH] 2026.1.21 1. 新增完善台账复制逻辑

---
 src/main/resources/mapper/UserSettingMapper.xml |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/src/main/resources/mapper/UserSettingMapper.xml b/src/main/resources/mapper/UserSettingMapper.xml
index 8c70f93..554486c 100644
--- a/src/main/resources/mapper/UserSettingMapper.xml
+++ b/src/main/resources/mapper/UserSettingMapper.xml
@@ -47,4 +47,61 @@
     -->
     sp_promise_content
   </sql>
+
+  <!-- 琛屾斂鍖哄垝鏈�鍖归厤鏌ヨ鏉′欢 -->
+  <select id="selectBestConfig" resultMap="ResultMapWithBLOBs">
+    select
+    <include refid="Base_Column_List" />, <include refid="Blob_Column_List" />
+    FROM sm_t_setting
+    <where>
+      <if test="userTypeId != null">
+        AND User_Type_Id = #{userTypeId}
+      </if>
+      <if test="sceneTypeId != null">
+        AND (scene_type_id = #{sceneTypeId} OR scene_type_id IS NULL)
+      </if>
+      <if test="provinceName != null">
+        AND (Province_Name = #{provinceName} OR Province_Name IS NULL)
+      </if>
+      <if test="cityName != null">
+        AND (City_Name = #{cityName} OR City_Name IS NULL)
+      </if>
+      <if test="districtName != null">
+        AND (District_Name = #{districtName} OR District_Name IS NULL)
+      </if>
+      <if test="townName != null">
+        AND (Town_Name = #{townName} OR Town_Name IS NULL)
+      </if>
+      <if test="area != null">
+        AND (Area = #{area} OR Area IS NULL)
+      </if>
+      <if test="managementCompany != null">
+        AND (Management_Company = #{managementCompany} OR Management_Company IS NULL)
+      </if>
+    </where>
+    ORDER BY
+      CASE
+        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
+          AND District_Name = #{districtName} AND Town_Name = #{townName} THEN 1
+        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
+          AND District_Name = #{districtName} AND Town_Name IS NULL THEN 2
+        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
+          AND District_Name IS NULL AND Town_Name IS NULL THEN 3
+        WHEN Province_Name = #{provinceName} AND City_Name IS NULL
+          AND District_Name IS NULL AND Town_Name IS NULL THEN 4
+      END,
+      CASE
+        WHEN Area = #{area} THEN 1
+        WHEN Area IS NULL THEN 2
+      END,
+      CASE
+        WHEN Management_Company = #{managementCompany} THEN 1
+        WHEN Management_Company IS NULL THEN 2
+      END,
+      CASE
+        WHEN scene_type_id = #{sceneTypeId} THEN 1
+        WHEN scene_type_id IS NULL THEN 2
+      END
+    LIMIT 1;
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3