| | |
| | | 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.dto.StorageBlobVO; |
| | | import com.ruoyi.basic.enums.ApplicationTypeEnum; |
| | | import com.ruoyi.basic.enums.RecordTypeEnum; |
| | | 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.basic.utils.FileUtil; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import com.ruoyi.inspectiontask.dto.QrCodeScanRecordDto; |
| | | import com.ruoyi.inspectiontask.mapper.QrCodeMapper; |
| | |
| | | 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.*; |
| | |
| | | */ |
| | | @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; |
| | | |
| | | private final FileUtil fileUtil; |
| | | |
| | | @Override |
| | | public IPage<QrCodeScanRecordDto> selectQrCodeScanRecordList(Page<QrCodeScanRecord> page, QrCodeScanRecordDto qrCodeScanRecordDto) { |
| | |
| | | }); |
| | | |
| | | // 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()); |
| | | |
| | |
| | | i = qrCodeScanRecordMapper.updateById(qrCodeScanRecord); |
| | | } |
| | | |
| | | if (qrCodeScanRecordDto.getStorageBlobDTO() != null && !qrCodeScanRecordDto.getStorageBlobDTO().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); |
| | | if (qrCodeScanRecordDto.getStorageBlobVO() != null && !qrCodeScanRecordDto.getStorageBlobVO().isEmpty()) { |
| | | // vo 转 dto |
| | | List<StorageBlobDTO> storageBlobDTOs = new ArrayList<>(); |
| | | for (StorageBlobVO storageBlobVO : qrCodeScanRecordDto.getStorageBlobVO()) { |
| | | StorageBlobDTO storageBlobDTO = new StorageBlobDTO(); |
| | | BeanUtils.copyProperties(storageBlobVO, storageBlobDTO); |
| | | storageBlobDTOs.add(storageBlobDTO); |
| | | } |
| | | storageAttachmentService.saveStorageAttachment(attachments, qrCodeScanRecord.getId(), QrCodeScanRecords, StorageAttachmentFile); |
| | | |
| | | fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QR_CODE_SCAN_RECORDS, qrCodeScanRecord.getId(), storageBlobDTOs); |
| | | } |
| | | return i; |
| | | } |
| | |
| | | return qrCodeScanRecordMapper.deleteBatchIds(Arrays.asList(ids)); |
| | | } |
| | | |
| | | } |
| | | } |