From b167a4203201dee255c57afa5c96a01842889f42 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 13 十月 2025 18:46:41 +0800
Subject: [PATCH] 资产盘点任务接口

---
 ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml |  132 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 132 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml
index d20566f..61d57b7 100644
--- a/ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/AssetInventoryTaskMapper.xml
@@ -23,4 +23,136 @@
         id, user_id, dept_id, task_name, execute_date, status, remarks, create_time, create_by, update_time, update_by, disabled
     </sql>
 
+    <!-- 获取盘点任务详情中的资产列表 -->
+    <select id="getAssetMainInventoryList" resultType="com.ruoyi.system.vo.asset.AssetMainInventoryVO">
+        SELECT
+            am.id,
+            am.asset_code,
+            am.asset_name,
+            at2.type_name AS asset_type_name,
+            at1.type_name AS parent_asset_type,
+            am.specification_model,
+            am.category,
+            am.measurement_unit,
+            am.quantity,
+            am.unit_price,
+            ( am.quantity * am.unit_price ) AS total_value,
+            am.accounting_voucher_no,
+            am.accounting_subject,
+            am.accounting_status,
+            am.accounting_amount,
+            am.accounting_date,
+            am.asset_status,
+            od.dept_name AS ownership_dept_name,
+            am.ownership_dept_id,
+            am.asset_type_id,
+            am.address_type,
+            am.use_dept_id,
+            am.warehouse_id,
+            od2.dept_name AS use_dept_name,
+            su.nick_name AS user_name,
+            aiti.result_status AS inventory_status,
+            aiti.real_dept_name,
+            aiti.real_user_name
+        FROM
+            asset_inventory_task_item aiti
+        INNER JOIN
+            asset_main am ON aiti.asset_main_id = am.id
+        LEFT JOIN
+            asset_type at2 ON am.asset_type_id = at.id
+        LEFT JOIN
+            asset_type at1 ON at1.id = (CASE WHEN at2.level = 2 THEN at2.parent_id ELSE at2.id END)
+        LEFT JOIN
+            sys_dept od ON am.ownership_dept_id = od.dept_id
+        LEFT JOIN
+            sys_user su ON aiti.user_id = su.user_id
+        LEFT JOIN sys_dept od2 ON am.address_type = 0 AND am.use_dept_id = od2.id
+        WHERE
+            aiti.inventory_task_id = #{taskId}
+        ORDER BY
+            am.asset_code
+    </select>
+
+    <!-- 获取盘点任务中的所有盘点人姓名(去重) -->
+    <select id="getInventoryUserNames" resultType="java.lang.String">
+        SELECT DISTINCT su.nick_name
+        FROM
+            asset_inventory_task_item aiti
+        INNER JOIN
+            sys_user su ON aiti.user_id = su.user_id
+        WHERE
+            aiti.inventory_task_id = #{taskId}
+            AND su.nick_name IS NOT NULL
+            AND su.nick_name != ''
+        ORDER BY
+            su.nick_name
+    </select>
+    <select id="getAssetMainInventoryPageList" resultType="com.ruoyi.system.vo.asset.AssetMainInventoryVO">
+
+        SELECT
+        am.id,
+        am.asset_code,
+        am.asset_name,
+        at.type_name AS asset_type_name,
+        am.specification_model,
+        am.category,
+        am.measurement_unit,
+        am.quantity,
+        am.unit_price,
+        ( am.quantity * am.unit_price ) AS total_value,
+        am.accounting_voucher_no,
+        am.accounting_subject,
+        am.accounting_status,
+        am.accounting_amount,
+        am.accounting_date,
+        am.asset_status,
+        od.dept_name AS ownership_dept_name,
+        am.ownership_dept_id,
+        am.asset_type_id,
+        am.address_type,
+        am.use_dept_id,
+        am.warehouse_id,
+        od2.dept_name AS use_dept_name,
+        su.nick_name AS user_name,
+        aiti.result_status AS inventory_status,
+        aiti.real_dept_name,
+        aiti.real_user_name
+        FROM
+        asset_inventory_task_item aiti
+        INNER JOIN
+        asset_main am ON aiti.asset_main_id = am.id
+        LEFT JOIN
+        asset_type at ON am.asset_type_id = at.id
+        LEFT JOIN
+        sys_dept od ON am.ownership_dept_id = od.dept_id
+        LEFT JOIN
+        sys_user su ON aiti.user_id = su.user_id
+        LEFT JOIN sys_dept od2 ON am.address_type = 0 AND am.use_dept_id = od2.id
+        <where>
+            aiti.inventory_task_id = #{query.id}
+            <if test="query.keyword != null and query.keyword != ''">
+                AND (am.asset_name LIKE CONCAT('%',#{query.keyword},'%') OR
+                am.asset_code LIKE CONCAT('%',#{query.keyword},'%'))
+            </if>
+            <if test="query.resultStatus != null">
+                AND aiti.result_status = #{query.reslutStatus}
+            </if>
+        </where>
+        ORDER BY
+            am.asset_code
+    </select>
+
+    <!-- 获取盘点任务统计数据 -->
+    <select id="getInventoryTaskStatistics" resultType="com.ruoyi.system.vo.asset.InventoryTaskStatisticsVO">
+        SELECT
+            COALESCE(SUM(CASE WHEN result_status = 0 THEN 1 ELSE 0 END), 0) as pendingCount,
+            COALESCE(SUM(CASE WHEN result_status = 1 THEN 1 ELSE 0 END), 0) as normalCount,
+            COALESCE(SUM(CASE WHEN result_status = 2 THEN 1 ELSE 0 END), 0) as abnormalCount,
+            COALESCE(COUNT(*), 0) as totalCount
+        FROM
+            asset_inventory_task_item
+        WHERE
+            inventory_task_id = #{taskId}
+    </select>
+
 </mapper>

--
Gitblit v1.7.1