basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java
@@ -34,7 +34,7 @@ return Result.success(workShopService.addWorkShop(workShopDto)); } @ApiOperation(value = "å 餿£éªå模æ¿") @ApiOperation(value = "å é¤è½¦é´åç§°æ°æ®") @DeleteMapping("/delWorkShop") public Result<?> delWorkShop(Integer id) { return Result.success(workShopService.delWorkShop(id)); @@ -57,4 +57,10 @@ public Result<?> delFile(Integer id) { return Result.success(workShopFileService.delFile(id)); } @ApiOperation(value = "æ¥è¯¢éä»¶å表") @GetMapping("/partFileList") public Result partFileList(Page page,@RequestParam("partNo") String partNo) { return Result.success(workShopFileService.partFileList(page,partNo)); } } basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java
@@ -1,5 +1,6 @@ package com.ruoyi.basic.pojo; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; @@ -21,38 +22,47 @@ @TableId(type = IdType.AUTO) private Integer id; @ExcelProperty("é¢å") private String field; @ExcelProperty("æ£éªå¯¹è±¡") @ApiModelProperty("æ£éªå¯¹è±¡") private String structureTestObjectId; /** * æ åç¼å· */ @ExcelProperty("æ åç¼å·") @ApiModelProperty(value = "æ åç¼å·") private String code; /** * æ åæ¹æ³ */ @ExcelProperty("æ åæè¿°") @ApiModelProperty(value = "æ åæè¿°") private String name; @ExcelProperty("æ åæè¿°EN") @ApiModelProperty(value = "æ åæè¿°EN") private String nameEn; /** * 夿³¨ */ @ExcelProperty("夿³¨") @ApiModelProperty(value = "夿³¨") private String remark; @ExcelProperty("èµè´¨") @ApiModelProperty(value = "èµè´¨") private String qualificationId; @ExcelProperty("æ¯å¦äº§åæ å") @ApiModelProperty(value = "æ¯å¦äº§åæ å") private Integer isProduct; @ExcelProperty("æ¯å¦å¯ç¨") @ApiModelProperty(value = "æ¯å¦å¯ç¨") private Integer isUse; basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java
@@ -1,6 +1,8 @@ package com.ruoyi.basic.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.basic.pojo.WorkShopFile; @@ -11,4 +13,6 @@ public interface WorkShopFileService extends IService<WorkShopFile> { int delFile(Integer id); IPage<WorkShopFile> partFileList(Page page,String partNo); } basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java
@@ -1,7 +1,10 @@ package com.ruoyi.basic.service.impl; import cn.hutool.json.JSONUtil; import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -131,22 +134,115 @@ @Transactional(rollbackFor = Exception.class) @Override public void inputExcel(MultipartFile file) throws IOException { // å卿£æµå¯¹è±¡List List<Object> structureTestObjectIdList = new ArrayList<>(); Set<Object> structureTestObjectIdSet = new HashSet<>(); List<StandardMethod> result = new ArrayList<>(); ExcelUtil.readBySax(file.getInputStream(), 0, (i, l, list) -> { // å»é¤ç¬¬ä¸è¡è¡¨å¤´ if (l == 0) { return; } EasyExcel.read(file.getInputStream(), StandardMethod.class, new AnalysisEventListener<StandardMethod>() { @Override public void invoke(StandardMethod data, AnalysisContext context) { // å»é¤ç¬¬ä¸è¡è¡¨å¤´ï¼EasyExcel èªå¨å¤ç表头ï¼è¿éæ éé¢å¤å¤ç // åå¨å¯ä¸æ£æµå¯¹è±¡ if (!structureTestObjectIdList.contains(list.get(2))) { structureTestObjectIdList.add(list.get(2)); String structureTestObjectId = data.getStructureTestObjectId(); Object idObj = getFirstIdFromJson(structureTestObjectId); if (idObj != null) { structureTestObjectIdSet.add(idObj); } StandardMethod standardMethod = formatData(list); result.add(standardMethod); result.add(data); } @Override public void doAfterAllAnalysed(AnalysisContext context) { // è§£æå®æåæ§è¡æ·»å æä½ addStructureTest(new ArrayList<>(structureTestObjectIdSet), result); } }).sheet().doRead(); } private Object getFirstIdFromJson(String json) { // ç®åè§£æ JSON æ°ç»è·å第ä¸ä¸ªå ç´ if (json != null && json.startsWith("[") && json.contains(",")) { return json.substring(2, json.indexOf(",")); } else if (json != null && json.startsWith("[")) { return json.substring(1, json.length() - 1); } return null; } public void addStructureTest(List<Object> structureTestObjectIdList, List<StandardMethod> standardMethodList) { List<StandardMethod> updateList = new ArrayList<>(); List<Integer> deleteListId = new ArrayList<>(); List<StandardMethod> addList = new ArrayList<>(); // å å° Excel æ°æ®æ key åç» Map<String, StandardMethod> excelDataMap = new HashMap<>(); for (StandardMethod excelMethod : standardMethodList) { String key = generateKey(excelMethod); excelDataMap.put(key, excelMethod); } // if (!structureTestObjectIdList.isEmpty()) { // 以 excel ä¸çç»åæ¥è¯¢æ°æ®åºä¸çåç» List<StandardMethod> allDbMethods = new ArrayList<>(); for (Object j : structureTestObjectIdList) { List<StandardMethod> standardMethods = baseMapper.selectList(new LambdaQueryWrapper<StandardMethod>() .like(StandardMethod::getStructureTestObjectId, "\"" + j + "\"")); allDbMethods.addAll(standardMethods); } // å°æ°æ®åºæ°æ®æ key åç» Map<String, StandardMethod> dbDataMap = new HashMap<>(); for (StandardMethod dbMethod : allDbMethods) { String key = generateKey(dbMethod); dbDataMap.put(key, dbMethod); } // å¤çæ´æ°åæ°å¢ for (Map.Entry<String, StandardMethod> entry : excelDataMap.entrySet()) { String key = entry.getKey(); StandardMethod excelMethod = entry.getValue(); StandardMethod dbMethod = dbDataMap.get(key); if (dbMethod != null) { // æ´æ° excelMethod.setId(dbMethod.getId()); updateList.add(excelMethod); } else { // æ°å¢ addList.add(excelMethod); } } // å¤çå é¤ for (Map.Entry<String, StandardMethod> entry : dbDataMap.entrySet()) { String key = entry.getKey(); if (!excelDataMap.containsKey(key)) { StandardMethod dbMethod = entry.getValue(); deleteListId.add(dbMethod.getId()); } } if (!addList.isEmpty()) { // æ°å¢ baseMapper.insertBatchSomeColumn(addList); } if (!deleteListId.isEmpty()) { // å é¤ baseMapper.deleteBatchIds(deleteListId); } if (!updateList.isEmpty()) { // æ´æ° updateList.forEach(i -> { baseMapper.updateById(i); }); addStructureTest(structureTestObjectIdList, result); } } private String generateKey(StandardMethod method) { return method.getStructureTestObjectId() + "-" + method.getCode() + "-" + method.getField(); } // æ ¼å¼åæ°æ® @@ -185,74 +281,6 @@ return standardMethod; } // æ°å¢æ°æ® public void addStructureTest(List<Object> structureTestObjectIdList, List<StandardMethod> standardMethodList) { List<StandardMethod> updateList = new ArrayList<>(); List<Integer> deleteListId = new ArrayList<>(); List<StandardMethod> addList = new ArrayList<>(); if (!structureTestObjectIdList.isEmpty()) { // 循ç¯exceléé¢çåç» structureTestObjectIdList.forEach(j -> { // 以excelä¸çç»åæ¥è¯¢æ°æ®åºä¸çåç» List<StandardMethod> standardMethods = baseMapper.selectList(Wrappers.<StandardMethod>lambdaQuery() .like(StandardMethod::getStructureTestObjectId, "\"" + j + "\"")); // å°ç»æå¾ªç¯å¹é for (int i = 0; i < standardMethods.size(); i++) { boolean isExistence = false; for (int i1 = 0; i1 < standardMethodList.size(); i1++) { // æ´æ° if (standardMethods.get(i).getStructureTestObjectId().equals(standardMethodList.get(i1).getStructureTestObjectId()) && standardMethods.get(i).getCode().equals(standardMethodList.get(i1).getCode()) && standardMethods.get(i).getField().equals(standardMethodList.get(i1).getField())) { // ç»excelæ°æ®èµå¼idåæ´æ° standardMethodList.get(i1).setId(standardMethods.get(i).getId()); // æ´æ° updateList.add(standardMethodList.get(i1)); isExistence = true; break; } } // å é¤ if (!isExistence) { deleteListId.add(standardMethods.get(i).getId()); } } for (int i = 0; i < standardMethodList.size(); i++) { if (standardMethodList.get(i).getStructureTestObjectId().contains("\"" + j + "\"")) { boolean isExistence = false; for (int i1 = 0; i1 < standardMethods.size(); i1++) { if (standardMethods.get(i1).getStructureTestObjectId().equals(standardMethodList.get(i).getStructureTestObjectId()) && standardMethods.get(i1).getCode().equals(standardMethodList.get(i).getCode()) && standardMethods.get(i1).getField().equals(standardMethodList.get(i).getField())) { isExistence = true; break; } } // æ°å¢ if (!isExistence) { addList.add(standardMethodList.get(i)); } } } }); } if (!addList.isEmpty()) { // æ°å¢ baseMapper.insertBatchSomeColumn(addList); } if (!deleteListId.isEmpty()) { // å é¤ baseMapper.deleteBatchIds(deleteListId); } if (!updateList.isEmpty()) { // æ´æ° updateList.forEach(i -> { baseMapper.updateById(i); }); } } } basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -2,23 +2,19 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.mapper.*; import com.ruoyi.basic.pojo.*; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.basic.dto.CopyStandardProductListDto; import com.ruoyi.basic.dto.InsSampleReceiveDto; import com.ruoyi.basic.dto.ProductDto; import com.ruoyi.basic.dto.ResetTreeDragDTO; import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper; import com.ruoyi.basic.mapper.StandardProductListMapper; import com.ruoyi.basic.mapper.StandardProductListSupplierAskMapper; import com.ruoyi.basic.mapper.StandardTreeMapper; import com.ruoyi.basic.pojo.StandardProductList; import com.ruoyi.basic.pojo.StandardProductListSupplierAsk; import com.ruoyi.basic.pojo.StandardTree; import com.ruoyi.basic.service.StandardProductListService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -47,6 +43,10 @@ private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; private StandardProductListSupplierAskMapper standardProductListSupplierAskMapper; private ProductPartMapper productPartMapper; private StructureTestObjectPartMapper structureTestObjectPartMapper; @Override @@ -185,6 +185,25 @@ } } ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper<ProductPart>().eq(ProductPart::getPartNo, insSample.getPartNo())); if (productPart != null){ if (StringUtils.isNotEmpty(productPart.getInspectionItem())){ String inspectionItem = productPart.getInspectionItem(); list = list.stream() .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem())) .collect(Collectors.toList()); } } StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper<StructureTestObjectPart>().eq(StructureTestObjectPart::getPartNo, insSample.getPartNo())); if (structureTestObjectPart != null){ if (StringUtils.isNotEmpty(structureTestObjectPart.getInspectionItem())){ String inspectionItem = structureTestObjectPart.getInspectionItem(); list = list.stream() .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem())) .collect(Collectors.toList()); } } return list; } basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java
@@ -1,9 +1,11 @@ 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.utils.file.MinioUtils; import org.springframework.beans.factory.annotation.Value; @@ -20,6 +22,17 @@ @Resource private WorkShopFileMapper workShopFileMapper; @Resource private ProductPartMapper productPartMapper; @Resource private ProductMapper productMapper; @Resource private StructureTestObjectPartMapper structureTestObjectPartMapper; @Resource private StructureTestObjectMapper structureTestObjectMapper; @Resource private MinioUtils minioUtils; @@ -52,6 +65,30 @@ 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; } 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; } } inspect-server/src/main/java/com/ruoyi/inspect/controller/InspectionPurchasedController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ package com.ruoyi.inspect.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.inspect.dto.InspectionPurchasedDto; import com.ruoyi.inspect.service.InspectionPurchasedService; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; /** * <p> * å¤è´ä»¶æ£éª å端æ§å¶å¨ * </p> * * @author ld * @since 2025-03-25 11:22:56 */ @RestController @RequestMapping("/inspectionPurchased") @AllArgsConstructor public class InspectionPurchasedController { private InspectionPurchasedService inspectionPurchasedService; @ApiOperation("æ¥è¯¢å表") @GetMapping("/selectInspection") public Result selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto) { return Result.success(inspectionPurchasedService.selectInspectionPurchased(page,inspectionPurchasedDto)); } @ApiOperation(value = "æ·»å å¤è´ä»¶æ£éªæ°æ®") @PostMapping("/addOrUpdateInspection") public Result<?> addOrUpdateInspection(@RequestBody InspectionPurchasedDto inspectionPurchasedDto) { return Result.success(inspectionPurchasedService.addOrUpdateInspection(inspectionPurchasedDto)); } @ApiOperation(value = "æ´æ°æäº¤å¤è´ä»¶æ£éªæ°æ®") @PostMapping("/UpdateInspection") public Result<?> UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception { return Result.success(inspectionPurchasedService.UpdateInspection(inspectionPurchasedDto)); } @ApiOperation(value = "å é¤å¤è´ä»¶æ£éª") @DeleteMapping("/delInspection") public Result<?> delWorkShop(Integer id) { return Result.success(inspectionPurchasedService.delInspection(id)); } } inspect-server/src/main/java/com/ruoyi/inspect/dto/InspectionPurchasedDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.inspect.dto; import com.ruoyi.inspect.pojo.InspectionPurchased; import lombok.Data; import org.springframework.web.multipart.MultipartFile; @Data public class InspectionPurchasedDto extends InspectionPurchased { private MultipartFile file; } inspect-server/src/main/java/com/ruoyi/inspect/mapper/InspectionPurchasedMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.inspect.mapper; import com.ruoyi.inspect.pojo.InspectionPurchased; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * å¤è´ä»¶æ£éª Mapper æ¥å£ * </p> * * @author ld * @since 2025-03-25 01:58:21 */ public interface InspectionPurchasedMapper extends BaseMapper<InspectionPurchased> { } inspect-server/src/main/java/com/ruoyi/inspect/pojo/InspectionPurchased.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.ruoyi.inspect.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * <p> * å¤è´ä»¶æ£éª * </p> * * @author ld * @since 2025-03-25 01:58:21 */ @TableName("inspection_purchased") @ApiModel(value = "InspectionPurchased对象", description = "å¤è´ä»¶æ£éª") @Data public class InspectionPurchased implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("产ååç§°") private String name; @ApiModelProperty("æ¥ææ°é") private String num; @ApiModelProperty("ä¾è´§åå®¶") private String supplier; @ApiModelProperty("订åå·") private String orderNum; @ApiModelProperty("spå·") private String spNum; @ApiModelProperty("å§æç¼å·") private String entrustmentNo; @ApiModelProperty("é»è¾ç¶æ") @TableLogic private String state; @ApiModelProperty("æ£éªç¶æ") private String inspectionStatus; @ApiModelProperty("夿³¨") private String remark; @ApiModelProperty("æä»¶å") private String fileName; @ApiModelProperty("æä»¶è·¯å¾") private String fileUrl; @ApiModelProperty("æä»¶é¢è§è·¯å¾") private String filePreviewUrl; @ApiModelProperty("æ£éªé¡¹") private String inspectionItems; @ApiModelProperty("æ£æµç»æ") private String result; @ApiModelProperty("ç±»å") private Integer type; } inspect-server/src/main/java/com/ruoyi/inspect/service/InspectionPurchasedService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.inspect.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.inspect.dto.InspectionPurchasedDto; import com.ruoyi.inspect.pojo.InspectionPurchased; /** * <p> * å¤è´ä»¶æ£éª æå¡ç±» * </p> * * @author ld * @since 2025-03-25 11:22:56 */ public interface InspectionPurchasedService extends IService<InspectionPurchased> { int addOrUpdateInspection(InspectionPurchasedDto inspectionPurchasedDto); int delInspection(Integer id); IPage<InspectionPurchasedDto> selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto); int UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception; } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InspectionPurchasedServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ 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; /** * <p> * å¤è´ä»¶æ£éª æå¡å®ç°ç±» * </p> * * @author ld * @since 2025-03-25 11:22:56 */ @Service public class InspectionPurchasedServiceImpl extends ServiceImpl<InspectionPurchasedMapper, InspectionPurchased> 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<InspectionPurchasedDto> 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; } }