From ad45ebdf25cae54a3950bba33aa767fc7a8a43d8 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 22 五月 2026 21:26:13 +0800
Subject: [PATCH] feat: 设备台账新增附件图片上传

---
 src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index 4f6ebd6..154923d 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -12,6 +12,9 @@
 import com.ruoyi.device.execl.DeviceLedgerExeclDto;
 import com.ruoyi.device.mapper.DeviceLedgerMapper;
 import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.basic.dto.StorageAttachmentDTO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.service.StorageAttachmentService;
 import com.ruoyi.device.service.IDeviceLedgerService;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.project.system.domain.SysUser;
@@ -36,6 +39,7 @@
 
     private final DeviceLedgerMapper deviceLedgerMapper;
     private final SysUserMapper sysUserMapper;
+    private final StorageAttachmentService storageAttachmentService;
 
     @Override
     public IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger) {
@@ -44,25 +48,61 @@
     }
 
     @Override
-    public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
+    public AjaxResult saveDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
         LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedger.getDeviceName());
+        deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedgerDto.getDeviceName());
         if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
             return AjaxResult.error("璁惧鍚嶇О宸插瓨鍦�");
         }
+        DeviceLedger deviceLedger = new DeviceLedger();
+        BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
         boolean save = this.save(deviceLedger);
         if (save){
+            if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+                StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+                attachmentDTO.setApplication("image");
+                attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+                attachmentDTO.setRecordId(deviceLedger.getId());
+                attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+                storageAttachmentService.saveStorageAttachment(attachmentDTO);
+            }
             return AjaxResult.success();
         }
         return AjaxResult.error();
     }
 
     @Override
-    public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+    public AjaxResult updateDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
+        DeviceLedger deviceLedger = new DeviceLedger();
+        BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
         if (this.updateById(deviceLedger)) {
+            if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+                StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+                attachmentDTO.setApplication("image");
+                attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+                attachmentDTO.setRecordId(deviceLedger.getId());
+                attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+                storageAttachmentService.saveStorageAttachment(attachmentDTO);
+            }
             return AjaxResult.success();
         }
         return AjaxResult.error();
+    }
+
+    @Override
+    public DeviceLedgerDto getDeviceLedgerDetail(Long id) {
+        DeviceLedger deviceLedger = this.getById(id);
+        if (deviceLedger != null) {
+            DeviceLedgerDto deviceLedgerDto = new DeviceLedgerDto();
+            BeanUtils.copyProperties(deviceLedger, deviceLedgerDto);
+            StorageAttachmentDTO dto = new StorageAttachmentDTO();
+            dto.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+            dto.setRecordId(id);
+            dto.setApplication("image");
+            deviceLedgerDto.setStorageBlobVOs(storageAttachmentService.list(dto));
+            return deviceLedgerDto;
+        }
+        return null;
     }
 
     @Override
@@ -82,9 +122,7 @@
             util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鍙拌处瀵煎嚭");
         }else  {
             ArrayList<Long> arrayList = new ArrayList<>();
-            Arrays.stream(ids).map(id -> {
-                return arrayList.add( id);
-            });
+            Arrays.stream(ids).map(arrayList::add);
             List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(arrayList);
             ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
             supplierManageList.stream().forEach(deviceLedger -> {

--
Gitblit v1.9.3