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/SpecialEquipmentRectificationServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRectificationServiceImpl.java b/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRectificationServiceImpl.java
index ae4dc00..eae9cf2 100644
--- a/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRectificationServiceImpl.java
+++ b/src/main/java/com/ruoyi/safe/specialequipment/service/impl/SpecialEquipmentRectificationServiceImpl.java
@@ -3,6 +3,10 @@
 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.SpecialEquipmentRectificationMapper;
 import com.ruoyi.safe.specialequipment.pojo.SpecialEquipmentRectification;
@@ -11,14 +15,20 @@
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.util.Collections;
+import java.util.List;
 
 @Service
 @RequiredArgsConstructor
 public class SpecialEquipmentRectificationServiceImpl extends ServiceImpl<SpecialEquipmentRectificationMapper, SpecialEquipmentRectification> implements SpecialEquipmentRectificationService {
     private final SpecialEquipmentRectificationMapper mapper;
+    private final FileUtil fileUtil;
 
     public IPage<SpecialEquipmentRectification> listPage(Page page, SpecialEquipmentRectification req) {
-        return mapper.listPage(page, req);
+        IPage<SpecialEquipmentRectification> result = mapper.listPage(page, req);
+        fillAttachments(result.getRecords());
+        return result;
     }
 
     public boolean save(SpecialEquipmentRectification entity) {
@@ -26,11 +36,46 @@
         entity.setCreateUser(SecurityUtils.getLoginUser().getUserId());
         entity.setCreateTime(LocalDateTime.now());
         entity.setRectificationStatus(entity.getRectificationStatus() == null ? 1 : entity.getRectificationStatus());
-        return super.save(entity);
+        boolean saved = super.save(entity);
+        syncAttachments(saved, entity);
+        return saved;
     }
 
     @Override
     public boolean updateById(SpecialEquipmentRectification entity) {
-        return super.updateById(entity);
+        if (entity.getRectificationStatus() != null && entity.getRectificationStatus() == 4 && entity.getClosedDate() == null) {
+            entity.setClosedDate(LocalDate.now());
+        }
+        boolean updated = super.updateById(entity);
+        syncAttachments(updated, entity);
+        return updated;
+    }
+
+    private void syncAttachments(boolean success, SpecialEquipmentRectification entity) {
+        if (!success || entity == null || entity.getId() == null || entity.getStorageBlobDTOs() == null) {
+            return;
+        }
+        fileUtil.saveStorageAttachment(
+                ApplicationTypeEnum.FILE,
+                RecordTypeEnum.SPECIAL_EQUIPMENT_RECTIFICATION,
+                entity.getId(),
+                entity.getStorageBlobDTOs()
+        );
+    }
+
+    private void fillAttachments(List<SpecialEquipmentRectification> records) {
+        if (records == null || records.isEmpty()) {
+            return;
+        }
+        records.forEach(record -> {
+            if (record.getId() == null) {
+                return;
+            }
+            List<StorageBlobVO> attachments = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(
+                    RecordTypeEnum.SPECIAL_EQUIPMENT_RECTIFICATION,
+                    record.getId()
+            );
+            record.setStorageBlobVOs(attachments == null ? Collections.emptyList() : attachments);
+        });
     }
 }

--
Gitblit v1.9.3