From 0ac445694a8ffc0e26e54d788d889b3797edf7a0 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期五, 26 六月 2026 09:48:33 +0800
Subject: [PATCH] feat: 添加备件领用记录功能,包括数据库表

---
 src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
index f527b11..4f3963e 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.device.service.DeviceMaintenanceFileService;
 import com.ruoyi.device.service.IDeviceMaintenanceService;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.measuringinstrumentledger.service.SparePartsRequisitionRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -32,6 +33,9 @@
 
     @Autowired
     private DeviceMaintenanceFileService deviceMaintenanceFileService;
+
+    @Autowired
+    private SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
 
     @Override
     public IPage<DeviceMaintenanceDto> queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto) {
@@ -63,8 +67,33 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenance deviceMaintenance) {
+        DeviceMaintenance existing = this.getById(deviceMaintenance.getId());
+        if (existing == null) {
+            return AjaxResult.error("淇濆吇璁板綍涓嶅瓨鍦�");
+        }
+        // 澶勭悊涓存椂鏂囦欢鍏宠仈
+        if (deviceMaintenance.getTempFileIds() != null && !deviceMaintenance.getTempFileIds().isEmpty()) {
+            for (String tempId : deviceMaintenance.getTempFileIds()) {
+                try {
+                    deviceMaintenanceFileService.bindFromTemp(tempId, deviceMaintenance.getId().intValue(), null);
+                } catch (Exception e) {
+                    return AjaxResult.error("鍏宠仈涓存椂鏂囦欢澶辫触: " + e.getMessage());
+                }
+            }
+        }
+
         if (this.updateById(deviceMaintenance)) {
+            if (deviceMaintenance.getSparePartsUseList() != null && !deviceMaintenance.getSparePartsUseList().isEmpty()) {
+                sparePartsRequisitionRecordService.processSparePartsUse(
+                        existing.getDeviceLedgerId(),
+                        existing.getDeviceName(),
+                        existing.getId(),
+                        1,
+                        "淇濆吇",
+                        deviceMaintenance.getSparePartsUseList());
+            }
             return AjaxResult.success();
         }
         return AjaxResult.error();

--
Gitblit v1.9.3