zss
2026-04-24 a1454f4b28db363ca4c4a6ea182d3aab95dc9518
src/main/java/com/ruoyi/inspectiontask/service/impl/QrCodeScanRecordServiceImpl.java
@@ -5,13 +5,11 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.dto.StorageBlobDTO;
import com.ruoyi.basic.mapper.StorageAttachmentMapper;
import com.ruoyi.basic.mapper.StorageBlobMapper;
import com.ruoyi.basic.pojo.StorageAttachment;
import com.ruoyi.basic.pojo.StorageBlob;
import com.ruoyi.basic.service.StorageAttachmentService;
import com.ruoyi.common.utils.MinioUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.inspectiontask.dto.QrCodeScanRecordDto;
import com.ruoyi.inspectiontask.mapper.QrCodeMapper;
@@ -21,8 +19,8 @@
import com.ruoyi.inspectiontask.service.QrCodeScanRecordService;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -38,28 +36,21 @@
 */
@Service
@Slf4j
@RequiredArgsConstructor
public class QrCodeScanRecordServiceImpl extends ServiceImpl<QrCodeScanRecordMapper, QrCodeScanRecord> implements QrCodeScanRecordService {
    @Autowired
    private QrCodeScanRecordMapper qrCodeScanRecordMapper;
    private final QrCodeScanRecordMapper qrCodeScanRecordMapper;
    @Autowired
    private QrCodeMapper qrCodeMapper;
    private final QrCodeMapper qrCodeMapper;
    @Autowired
    private StorageAttachmentService storageAttachmentService;
    private final StorageAttachmentService storageAttachmentService;
    @Autowired
    private StorageBlobMapper storageBlobMapper;
    private final StorageBlobMapper storageBlobMapper;
    @Autowired
    private StorageAttachmentMapper storageAttachmentMapper;
    private final StorageAttachmentMapper storageAttachmentMapper;
    @Autowired
    private MinioUtils minioUtils;
    @Autowired
    private SysUserMapper sysUserMapper;
    private final SysUserMapper sysUserMapper;
    @Override
    public IPage<QrCodeScanRecordDto> selectQrCodeScanRecordList(Page<QrCodeScanRecord> page, QrCodeScanRecordDto qrCodeScanRecordDto) {
@@ -127,23 +118,24 @@
                    });
            // 6.2 设置附件信息
            dto.setStorageBlobDTO(
                    Optional.ofNullable(attachmentsMap.get(record.getId()))
                            .orElse(Collections.emptyList())
                            .stream()
                            .map(att -> {
                                StorageBlobDTO blobDTO = new StorageBlobDTO();
                                Optional.ofNullable(blobMap.get(att.getStorageBlobId()))
                                        .ifPresent(blob -> {
                                            BeanUtils.copyProperties(blob, blobDTO);
                                            blobDTO.setUrl(minioUtils.getPreviewUrls(blob.getBucketFilename(), blob.getBucketName(), true));
                                            blobDTO.setDownloadUrl(minioUtils.getDownloadUrls(blob.getBucketFilename(),blob.getBucketName(),blob.getOriginalFilename(),true));
                                        });
                                return blobDTO;
                            })
                            .filter(blobDTO -> blobDTO.getId() != null) // 过滤无效附件
                            .collect(Collectors.toList())
            );
            // todo fileChange
//            dto.setStorageBlobDTO(
//                    Optional.ofNullable(attachmentsMap.get(record.getId()))
//                            .orElse(Collections.emptyList())
//                            .stream()
//                            .map(att -> {
//                                StorageBlobDTO blobDTO = new StorageBlobDTO();
//                                Optional.ofNullable(blobMap.get(att.getStorageBlobId()))
//                                        .ifPresent(blob -> {
//                                            BeanUtils.copyProperties(blob, blobDTO);
//                                            blobDTO.setUrl(minioUtils.getPreviewUrls(blob.getBucketFilename(), blob.getBucketName(), true));
//                                            blobDTO.setDownloadUrl(minioUtils.getDownloadUrls(blob.getBucketFilename(),blob.getBucketName(),blob.getOriginalFilename(),true));
//                                        });
//                                return blobDTO;
//                            })
//                            .filter(blobDTO -> blobDTO.getId() != null) // 过滤无效附件
//                            .collect(Collectors.toList())
//            );
            return dto;
        }).collect(Collectors.toList());
@@ -166,18 +158,19 @@
            i = qrCodeScanRecordMapper.updateById(qrCodeScanRecord);
        }
        if (qrCodeScanRecordDto.getStorageBlobDTO() != null && !qrCodeScanRecordDto.getStorageBlobDTO().isEmpty()) {
        if (qrCodeScanRecordDto.getStorageBlobVO() != null && !qrCodeScanRecordDto.getStorageBlobVO().isEmpty()) {
            List<StorageAttachment> attachments = new ArrayList<>();
            for (StorageBlobDTO storageBlobDTO : qrCodeScanRecordDto.getStorageBlobDTO()) {
                StorageAttachment storageAttachment = new StorageAttachment(
                        StorageAttachmentFile,
                        (long) QrCodeScanRecords.ordinal(),
                        qrCodeScanRecord.getId()
                );
                storageAttachment.setStorageBlobDTO(storageBlobDTO);
                attachments.add(storageAttachment);
            }
            // todo fileChange
//            for (StorageBlobDTO storageBlobDTO : qrCodeScanRecordDto.getStorageBlobDTO()) {
//                StorageAttachment storageAttachment = new StorageAttachment(
//                        StorageAttachmentFile,
//                        (long) QrCodeScanRecords.ordinal(),
//                        qrCodeScanRecord.getId()
//                );
//                storageAttachment.setStorageBlobDTO(storageBlobDTO);
//                attachments.add(storageAttachment);
//            }
            storageAttachmentService.saveStorageAttachment(attachments, qrCodeScanRecord.getId(), QrCodeScanRecords, StorageAttachmentFile);
        }
        return i;