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 |   88 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 85 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
index 588e518..b4075df 100644
--- a/src/main/resources/mapper/device/DeviceLedgerMapper.xml
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -11,19 +11,32 @@
         dl.device_name,
         dl.device_model,
         dl.supplier_name,
+        dl.device_brand,
+        dl.storage_location,
         dl.unit,
         dl.number,
+        dl.status,
+        dl.plan_runtime_time,
+        dl.start_runtime_time,
+        dl.end_runtime_time,
+        dl.runtime_duration,
         dl.tax_including_price_unit,
         dl.tax_including_price_total,
         dl.tax_rate,
         dl.un_tax_including_price_total,
         dl.create_time,
         dl.update_time ,
-        su.user_name AS createUser,
+        su.nick_name AS createUser,
         dl.update_user,
-        dl.tenant_id
+        dl.tenant_id,
+        dl.is_depr,
+        dl.annual_depreciation_amount,
+        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 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 != ''">
@@ -55,15 +68,84 @@
                 AND update_user LIKE CONCAT('%', #{deviceLedger.updateUser}, '%')
             </if>
 
+            <if test="deviceLedger.entryDateStart != null and deviceLedger.entryDateStart != '' ">
+                AND dl.create_time &gt;= DATE_FORMAT(#{deviceLedger.entryDateStart},'%Y-%m-%d')
+            </if>
+            <if test="deviceLedger.entryDateEnd != null and deviceLedger.entryDateEnd != '' ">
+                AND dl.create_time &lt;= DATE_FORMAT(#{deviceLedger.entryDateEnd},'%Y-%m-%d')
+            </if>
+
             <!-- 绉熸埛ID -->
             <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>
+    <select id="selectById1" resultType="com.ruoyi.device.pojo.DeviceLedger">
+        select *
+        from device_ledger
+        where id = #{id}
+    </select>
+    <select id="getDeviceTypeDistributionByYear"
+            resultType="com.ruoyi.account.bean.dto.DeviceTypeDetail"
+            parameterType="java.lang.Integer">
+        SELECT
+            `type`,
+            SUM(`number`) AS `count`,
+            SUM(tax_including_price_unit) AS amount
+        FROM device_ledger
+        WHERE YEAR(create_time) = #{year}
+          AND type IS NOT NULL
+        GROUP BY type
+    </select>
+
 
 </mapper>

--
Gitblit v1.9.3