From 55d694aaae4e421b5e55cd941500e08f85cb5d4d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 27 八月 2026 18:21:33 +0800
Subject: [PATCH] feat(sales): 添加框架合同订单功能并优化销售台账管理

---
 src/main/resources/mapper/device/DeviceLedgerMapper.xml |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
index c980120..b4075df 100644
--- a/src/main/resources/mapper/device/DeviceLedgerMapper.xml
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -31,9 +31,12 @@
         dl.tenant_id,
         dl.is_depr,
         dl.annual_depreciation_amount,
-        dl.type
+        dl.type,
+        dl.area_id,
+        da.name AS area_name
         FROM device_ledger dl
         left join sys_user su on dl.create_user = su.user_id
+        left join device_area da on dl.area_id = da.id
         <where>
             <!-- 璁惧鍚嶇О -->
             <if test="deviceLedger.deviceName != null and deviceLedger.deviceName != ''">
@@ -76,9 +79,53 @@
             <if test="deviceLedger.tenantId != null">
                 AND tenant_id = #{deviceLedger.tenantId}
             </if>
+
+            <!-- 鍖哄煙ID锛氬惈璇ュ尯鍩熷強鍏舵墍鏈夊瓙绾э紙閫氳繃绁栫骇璺緞鍖归厤锛� -->
+            <if test="deviceLedger.areaId != null">
+                AND (
+                    dl.area_id = #{deviceLedger.areaId}
+                    OR EXISTS (
+                        SELECT 1 FROM device_area da2
+                        WHERE da2.id = dl.area_id
+                          AND (da2.ancestors = #{deviceLedger.areaId}
+                               OR da2.ancestors LIKE CONCAT(#{deviceLedger.areaId}, ',%')
+                               OR da2.ancestors LIKE CONCAT('%,', #{deviceLedger.areaId}, ',%')
+                               OR da2.ancestors LIKE CONCAT('%,', #{deviceLedger.areaId}))
+                    )
+                )
+            </if>
         </where>
         ORDER BY create_time DESC
     </select>
+    <select id="selectDeviceOptions" resultType="com.ruoyi.device.dto.DeviceLedgerDto">
+        SELECT
+        dl.id,
+        dl.device_name,
+        dl.device_model,
+        dl.device_brand,
+        dl.type,
+        dl.area_id,
+        da.name AS area_name
+        FROM device_ledger dl
+        left join device_area da on dl.area_id = da.id
+        <where>
+            <if test="areaId != null">
+                AND (
+                    dl.area_id = #{areaId}
+                    OR EXISTS (
+                        SELECT 1 FROM device_area da2
+                        WHERE da2.id = dl.area_id
+                          AND (da2.ancestors = #{areaId}
+                               OR da2.ancestors LIKE CONCAT(#{areaId}, ',%')
+                               OR da2.ancestors LIKE CONCAT('%,', #{areaId}, ',%')
+                               OR da2.ancestors LIKE CONCAT('%,', #{areaId}))
+                    )
+                )
+            </if>
+        </where>
+        ORDER BY dl.create_time DESC
+    </select>
+
     <select id="deviceLedgerExportList" resultType="com.ruoyi.device.execl.DeviceLedgerExeclDto">
 
     </select>
@@ -88,7 +135,7 @@
         where id = #{id}
     </select>
     <select id="getDeviceTypeDistributionByYear"
-            resultType="com.ruoyi.account.dto.DeviceTypeDetail"
+            resultType="com.ruoyi.account.bean.dto.DeviceTypeDetail"
             parameterType="java.lang.Integer">
         SELECT
             `type`,

--
Gitblit v1.9.3