| | |
| | | package com.ruoyi.basic.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.mapper.WorkShopFileMapper; |
| | | import com.ruoyi.basic.pojo.WorkShopFile; |
| | | import com.ruoyi.basic.mapper.*; |
| | | import com.ruoyi.basic.pojo.*; |
| | | import com.ruoyi.basic.service.WorkShopFileService; |
| | | import com.ruoyi.common.config.MinioConfig; |
| | | import com.ruoyi.common.utils.file.MinioUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @description 针对表【work_shop_file(车间附件名称)】的数据库操作Service实现 |
| | |
| | | @Service |
| | | public class WorkShopFileServiceImpl extends ServiceImpl<WorkShopFileMapper, WorkShopFile> implements WorkShopFileService { |
| | | |
| | | @Resource |
| | | private WorkShopFileMapper workShopFileMapper; |
| | | |
| | | @Resource |
| | | private ProductPartMapper productPartMapper; |
| | | |
| | | @Resource |
| | | private ProductMapper productMapper; |
| | | @Resource |
| | | private StructureTestObjectPartMapper structureTestObjectPartMapper; |
| | | |
| | | @Resource |
| | | private StructureTestObjectMapper structureTestObjectMapper; |
| | | |
| | | @Resource |
| | | private MinioUtils minioUtils; |
| | | |
| | | @Autowired |
| | | private MinioConfig minioConfig; |
| | | |
| | | @Override |
| | | public int delFile(Integer id) { |
| | | // 若 id 为空,直接返回 0,表示未删除任何记录 |
| | | if (id == null) { |
| | | return 0; |
| | | } |
| | | try { |
| | | // 查询要删除的文件信息 |
| | | WorkShopFile file = workShopFileMapper.selectById(id); |
| | | if (file != null && file.getFileUrl() != null) { |
| | | // 检查 MinIO 中文件是否存在 |
| | | if (minioUtils.objectExists(minioConfig.getBucketName(), file.getFileUrl())) { |
| | | // 先删除 MinIO 中的对象 |
| | | minioUtils.removeObjectsResult(minioConfig.getBucketName(), file.getFileUrl()); |
| | | } |
| | | } |
| | | // 执行数据库删除操作 |
| | | int deleteResult = workShopFileMapper.deleteById(id); |
| | | return deleteResult; |
| | | } catch (Exception e) { |
| | | // 处理异常,可根据实际情况记录日志或抛出自定义异常 |
| | | e.printStackTrace(); |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public IPage<WorkShopFile> partFileList(Page page, String partNo) { |
| | | StructureTestObject structureTestObject = findStructureTestObjectByPartNo(partNo); |
| | | if (structureTestObject != null && structureTestObject.getWorkShopId() != null) { |
| | | return workShopFileMapper.selectPage(page, new LambdaQueryWrapper<WorkShopFile>().eq(WorkShopFile::getWorkShopId, structureTestObject.getWorkShopId())); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<WorkShopFile> fileListById(Integer workShopId) { |
| | | List<WorkShopFile> workShopFiles = workShopFileMapper.selectList(new LambdaQueryWrapper<WorkShopFile>().eq(WorkShopFile::getWorkShopId, workShopId)); |
| | | return removeSuffixFromList(workShopFiles); |
| | | } |
| | | |
| | | public static List<WorkShopFile> removeSuffixFromList(List<WorkShopFile> list) { |
| | | for (WorkShopFile file : list) { |
| | | int dotIndex = file.getFileName().lastIndexOf('.'); |
| | | if (dotIndex != -1) { |
| | | file.setFileName(file.getFileName().substring(0, dotIndex)); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | private StructureTestObject findStructureTestObjectByPartNo(String partNo) { |
| | | ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper<ProductPart>().eq(ProductPart::getPartNo, partNo)); |
| | | if (productPart != null) { |
| | | Product product = productMapper.selectById(productPart.getProductId()); |
| | | if (product != null) { |
| | | return structureTestObjectMapper.selectById(product.getObjectId()); |
| | | } |
| | | } |
| | | StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper<StructureTestObjectPart>().eq(StructureTestObjectPart::getPartNo, partNo)); |
| | | if (structureTestObjectPart != null) { |
| | | return structureTestObjectMapper.selectById(structureTestObjectPart.getTestObjectId()); |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |