From 801854b46b8ad6b003fc767e0cf85367de8843eb Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 28 七月 2026 18:12:47 +0800
Subject: [PATCH] fix: 安全设施巡检修改

---
 src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRecordServiceImpl.java |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRecordServiceImpl.java b/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRecordServiceImpl.java
index ade0335..2665625 100644
--- a/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRecordServiceImpl.java
@@ -1,7 +1,12 @@
 package com.ruoyi.safe.specialequipment.service.impl;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.StorageBlobVO;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.safe.specialequipment.mapper.SpecialEquipmentLedgerMapper;
 import com.ruoyi.safe.specialequipment.mapper.SpecialEquipmentRecordMapper;
@@ -10,20 +15,30 @@
 import com.ruoyi.safe.specialequipment.service.SpecialEquipmentRecordService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+
 import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.List;
+
 @Service
 @RequiredArgsConstructor
 public class SpecialEquipmentRecordServiceImpl extends ServiceImpl<SpecialEquipmentRecordMapper, SpecialEquipmentRecord> implements SpecialEquipmentRecordService {
     private final SpecialEquipmentRecordMapper mapper;
     private final SpecialEquipmentLedgerMapper ledgerMapper;
+    private final FileUtil fileUtil;
 
-    public IPage<SpecialEquipmentRecord> listPage(Page page, SpecialEquipmentRecord req) { return mapper.listPage(page, req); }
+    public IPage<SpecialEquipmentRecord> listPage(Page page, SpecialEquipmentRecord req) {
+        IPage<SpecialEquipmentRecord> result = mapper.listPage(page, req);
+        fillAttachments(result.getRecords());
+        return result;
+    }
 
     public boolean save(SpecialEquipmentRecord entity) {
         entity.setTenantId(SecurityUtils.getLoginUser().getTenantId());
         entity.setCreateUser(SecurityUtils.getLoginUser().getUserId());
         entity.setCreateTime(LocalDateTime.now());
         boolean saved = super.save(entity);
+        syncAttachments(saved, entity);
         syncLedgerDate(entity);
         return saved;
     }
@@ -31,6 +46,7 @@
     @Override
     public boolean updateById(SpecialEquipmentRecord entity) {
         boolean updated = super.updateById(entity);
+        syncAttachments(updated, entity);
         syncLedgerDate(entity);
         return updated;
     }
@@ -52,4 +68,32 @@
         }
         ledgerMapper.updateById(ledger);
     }
+
+    private void syncAttachments(boolean success, SpecialEquipmentRecord entity) {
+        if (!success || entity == null || entity.getId() == null || entity.getStorageBlobDTOs() == null) {
+            return;
+        }
+        fileUtil.saveStorageAttachment(
+                ApplicationTypeEnum.FILE,
+                RecordTypeEnum.SPECIAL_EQUIPMENT_RECORD,
+                entity.getId(),
+                entity.getStorageBlobDTOs()
+        );
+    }
+
+    private void fillAttachments(List<SpecialEquipmentRecord> records) {
+        if (records == null || records.isEmpty()) {
+            return;
+        }
+        records.forEach(record -> {
+            if (record.getId() == null) {
+                return;
+            }
+            List<StorageBlobVO> attachments = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(
+                    RecordTypeEnum.SPECIAL_EQUIPMENT_RECORD,
+                    record.getId()
+            );
+            record.setStorageBlobVOs(attachments == null ? Collections.emptyList() : attachments);
+        });
+    }
 }

--
Gitblit v1.9.3