package com.ruoyi.inspect.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.MinioResult; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.file.MinioUtils; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.dto.InspectionPurchasedDto; import com.ruoyi.inspect.mapper.InspectionPurchasedMapper; import com.ruoyi.inspect.pojo.InspectionPurchased; import com.ruoyi.inspect.service.InspectionPurchasedService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** *

* 外购件检验 服务实现类 *

* * @author ld * @since 2025-03-25 11:22:56 */ @Service public class InspectionPurchasedServiceImpl extends ServiceImpl implements InspectionPurchasedService { @Resource private InspectionPurchasedMapper inspectionPurchasedMapper; @Resource private MinioUtils minioUtils; @Value("${minio.bucketName}") private String bucketName; @Override public int addOrUpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) { if (inspectionPurchasedDto.getId() == null) { inspectionPurchasedDto.setInspectionStatus(String.valueOf(0)); return inspectionPurchasedMapper.insert(inspectionPurchasedDto); } else { return inspectionPurchasedMapper.updateById(inspectionPurchasedDto); } } @Override public int delInspection(Integer id) { return inspectionPurchasedMapper.deleteById(id); } @Override public IPage selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto) { return inspectionPurchasedMapper.selectPage(page, QueryWrappers.queryWrappers(inspectionPurchasedDto)); } @Override public int UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception { int insertResult = 0; InspectionPurchased inspectionPurchased = inspectionPurchasedMapper.selectById(inspectionPurchasedDto.getId()); if (ObjectUtils.isNotEmpty(inspectionPurchasedDto.getFile())) { if (ObjectUtils.isNotEmpty(inspectionPurchased.getFileUrl())){ if (inspectionPurchased != null && inspectionPurchased.getFileUrl() != null) { // 检查 MinIO 中文件是否存在 if (minioUtils.objectExists(bucketName, inspectionPurchased.getFileUrl())) { // 先删除 MinIO 中的对象 minioUtils.removeObjectsResult(bucketName, inspectionPurchased.getFileUrl()); } } } try { String contentType = inspectionPurchasedDto.getFile().getContentType(); String category = contentType != null && contentType.startsWith("image/") ? "images" : "docs"; MinioResult upload = minioUtils.upload(bucketName, inspectionPurchasedDto.getFile(), true); // 记录存储路径 inspectionPurchased.setFileUrl(upload.getBucketFileName()); inspectionPurchased.setFilePreviewUrl(upload.getPreviewExpiry()); inspectionPurchased.setType(category.equals("images") ? 1 : 2); // 数据库操作 insertResult = inspectionPurchasedMapper.updateById(inspectionPurchased); if (insertResult <= 0) { throw new ErrorException("数据库插入失败"); } return insertResult; } catch (Exception e) { throw new Exception("系统异常: ", e); } } return insertResult; } }