From cffae035dba82847966972e845b67ab77f4875cc Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Fri, 4 Jul 2025 13:40:47 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=9B=BE=E5=83=8F=E5=88=97=E8=A1=A8=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=A2=9E=E5=8A=A0=E5=85=A5=E5=BA=93=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E4=B8=A4=E6=AD=A5=E6=93=8D=E4=BD=9C=E6=97=B6=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=8B=BF=E5=88=B0=E4=B8=8A=E4=BC=A0=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dite/znpt/constant/Message.java | 1 + .../com/dite/znpt/service/DefectService.java | 15 +++++-- .../com/dite/znpt/service/ImageService.java | 2 +- .../znpt/service/impl/DefectServiceImpl.java | 22 ++++++++-- .../znpt/service/impl/ImageServiceImpl.java | 24 ++++++++--- .../znpt/web/controller/DefectController.java | 40 +------------------ .../znpt/web/controller/ImageController.java | 14 +++---- 7 files changed, 59 insertions(+), 59 deletions(-) diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index 0e67ef7..fdb9de4 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -17,6 +17,7 @@ public class Message implements Serializable { public static final String ATTACH_FILE_IS_NOT_EXIST = "不存在{}的附件文件"; public static final String IMAGE_PATH_IS_NOT_EXIST = "图像地址不存在"; public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在"; + public static final String IMAGE_SOURCE_IS_NOT_EXIST = "图像类型不存在"; public static final String DEFECT_ID_IS_NOT_EXIST = "缺陷id不存在"; public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在"; diff --git a/core/src/main/java/com/dite/znpt/service/DefectService.java b/core/src/main/java/com/dite/znpt/service/DefectService.java index 1a0fdb1..573c5f1 100644 --- a/core/src/main/java/com/dite/znpt/service/DefectService.java +++ b/core/src/main/java/com/dite/znpt/service/DefectService.java @@ -2,10 +2,7 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.DefectEntity; -import com.dite.znpt.domain.vo.DefectListReq; -import com.dite.znpt.domain.vo.DefectReq; -import com.dite.znpt.domain.vo.DefectResp; -import com.dite.znpt.domain.vo.OutWorkDefectReq; +import com.dite.znpt.domain.vo.*; import java.util.List; @@ -75,5 +72,15 @@ public interface DefectService extends IService { * @date 2025/04/11 23:17 **/ void deleteById(String defectId); + + /** + * 功能描述:缺陷自动检测 + * + * @param markReq 马克请求类 + * @return {@link DefectResp } + * @author cuizhibin + * @date 2025/07/04 10:55 + **/ + DefectResp detect(DefectMarkReq markReq); } diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java index 1b6dfaa..af583a7 100644 --- a/core/src/main/java/com/dite/znpt/service/ImageService.java +++ b/core/src/main/java/com/dite/znpt/service/ImageService.java @@ -23,7 +23,7 @@ public interface ImageService extends IService { ImageResp detail(String imageId); - List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files); + List batchUploadDefectImage(String partId, String imageSource, ImageCollectReq collectReq, MultipartFile[] files); List batchUploadCommonImage(String imageSource, ImageWorkReq imageWorkReq, MultipartFile[] file) throws IOException; diff --git a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java index 9259bb5..59b2093 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/DefectServiceImpl.java @@ -11,12 +11,13 @@ import com.dite.znpt.enums.DefectSourceEnum; import com.dite.znpt.enums.DefectTypeEnum; import com.dite.znpt.enums.RepairStatusEnum; import com.dite.znpt.exception.ServiceException; -import com.dite.znpt.service.DefectService; import com.dite.znpt.mapper.DefectMapper; +import com.dite.znpt.service.DefectService; import com.dite.znpt.service.ImageService; -import org.springframework.stereotype.Service; -import lombok.RequiredArgsConstructor; import com.dite.znpt.util.PageUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -36,6 +37,8 @@ import java.util.stream.Collectors; public class DefectServiceImpl extends ServiceImpl implements DefectService { @Resource private ImageService imageService; + @Autowired + private MultiModelYoloService multiModelYoloService; /** * 功能描述:查询缺陷记录列表 @@ -150,4 +153,17 @@ public class DefectServiceImpl extends ServiceImpl i this.removeById(defectId); } + /** + * 功能描述:缺陷自动检测 + * + * @param markReq 马克请求类 + * @return {@link DefectResp } + * @author cuizhibin + * @date 2025/07/04 10:55 + **/ + @Override + public DefectResp detect(DefectMarkReq markReq) { +// multiModelYoloService.runFolderDetection(); + return null; + } } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java index ee0d44c..86cdeba 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java @@ -17,10 +17,7 @@ import com.dite.znpt.domain.entity.ImageCollectEntity; import com.dite.znpt.domain.entity.ImageEntity; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.vo.*; -import com.dite.znpt.enums.FilePathEnum; -import com.dite.znpt.enums.ImageTypeEnum; -import com.dite.znpt.enums.ShootingMethodEnum; -import com.dite.znpt.enums.WeatherEnum; +import com.dite.znpt.enums.*; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ImageMapper; import com.dite.znpt.service.AudioFileInfoService; @@ -134,7 +131,10 @@ public class ImageServiceImpl extends ServiceImpl impl @Transactional(rollbackFor = Exception.class) @Override - public List batchUploadDefectImage(String partId, String imageSource, MultipartFile[] files) { + public List batchUploadDefectImage(String partId, String imageSource, ImageCollectReq collectReq, MultipartFile[] files) { + if (StrUtil.isEmpty(imageSource) || Objects.nonNull(ImageSourceEnum.getByCode(imageSource))) { + throw new ServiceException(Message.IMAGE_SOURCE_IS_NOT_EXIST); + } if(null == partService.getById(partId)){ throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); } @@ -148,17 +148,29 @@ public class ImageServiceImpl extends ServiceImpl impl temCategory.mkdirs(); } String temPathPrefix = FilePathEnum.IMAGE_TEMP.getFileAbsolutePathPrefix().concat(imageSource).concat(FileUtil.FILE_SEPARATOR).concat(partId).concat(FileUtil.FILE_SEPARATOR); + ImageCollectEntity imageCollect = BeanUtil.copyProperties(collectReq, ImageCollectEntity.class); + imageCollect.setCollectId(IdUtil.simpleUUID()); + List imageList = new ArrayList<>(); for (MultipartFile file : files) { + ImageEntity imageEntity = new ImageEntity(); if (!file.isEmpty()) { try { String path = temPathPrefix + file.getOriginalFilename(); FileUtil.writeBytes(file.getBytes(),path); - list.add(imageRespBuilder(path)); + ImageReq imageReq = imageRespBuilder(path); + BeanUtil.copyProperties(imageReq, imageEntity); + list.add(imageReq); + imageEntity.setImagePath(path); + imageEntity.setPartId(partId); + imageEntity.setCollectId(imageCollect.getCollectId()); + imageList.add(imageEntity); } catch (Exception e) { e.printStackTrace(); } } } + imageCollectService.save(imageCollect); + baseMapper.insert(imageList); return list; } diff --git a/web/src/main/java/com/dite/znpt/web/controller/DefectController.java b/web/src/main/java/com/dite/znpt/web/controller/DefectController.java index 2c41797..65a3d21 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/DefectController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/DefectController.java @@ -1,25 +1,16 @@ package com.dite.znpt.web.controller; -import com.dite.znpt.constant.Constants; import com.dite.znpt.domain.PageResult; import com.dite.znpt.domain.Result; -import com.dite.znpt.domain.entity.DefectEntity; import com.dite.znpt.domain.vo.DefectListReq; import com.dite.znpt.domain.vo.DefectMarkReq; import com.dite.znpt.domain.vo.DefectReq; import com.dite.znpt.domain.vo.DefectResp; import com.dite.znpt.service.DefectService; -import com.dite.znpt.service.impl.MultiModelYoloService; import com.dite.znpt.util.ValidationGroup; -import com.pig4cloud.plugin.excel.annotation.RequestExcel; -import com.pig4cloud.plugin.excel.annotation.ResponseExcel; -import com.pig4cloud.plugin.excel.vo.ErrorMessage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -36,8 +27,6 @@ import java.util.List; public class DefectController { @Resource private DefectService defectService; - @Autowired - private MultiModelYoloService multiModelYoloService; @ApiOperation(value = "分页查询缺陷记录列表", httpMethod = "GET") @GetMapping("/page") @@ -78,35 +67,10 @@ public class DefectController { return Result.ok(); } - @ApiOperation(value = "导出缺陷记录", httpMethod = "GET") - @GetMapping("/export") - @ResponseExcel(name = "缺陷记录") - public List export(DefectListReq defectReq) { - return defectService.page(defectReq); - } - - @ApiOperation(value = "导入缺陷记录", httpMethod = "POST") - @PostMapping("/import") - public Result importData(@RequestExcel List dataList, BindingResult bindingResult) { - // JSR 303 校验通用校验获取失败的数据 - List errorMessageList = (List) bindingResult.getTarget(); - if (errorMessageList != null && !errorMessageList.isEmpty()) { - return Result.error(Constants.SERVICE_EXCEPTION, "导入失败"); - } - return Result.okM("导入"+dataList.size()+"条数据"); - } - @ApiOperation(value = "单图自动标注缺陷", httpMethod = "POST") @PostMapping("/run") - public ResponseEntity runBatch(@Validated(ValidationGroup.Request.class) @RequestBody DefectMarkReq markReq, - @RequestParam("outputDir") String outputDir, - @RequestParam("confThreshold") Float confThreshold) { - try { -// multiModelYoloService.runFolderDetection(modelId, inputDir, outputDir, confThreshold); - return ResponseEntity.ok("批量推理完成"); - } catch (Exception e) { - return ResponseEntity.status(500).body("处理失败:" + e.getMessage()); - } + public Result runBatch(@Validated(ValidationGroup.Request.class) @RequestBody DefectMarkReq markReq) { + return Result.ok(defectService.detect(markReq)); } } diff --git a/web/src/main/java/com/dite/znpt/web/controller/ImageController.java b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java index f4fb332..9a9ce07 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ImageController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java @@ -51,16 +51,16 @@ public class ImageController { } @ApiOperation(value = "批量上传图像", httpMethod = "POST") - @PostMapping("/upload-batch/{partId}") - public Result> uploadBatch(@PathVariable String partId, @RequestParam("files") MultipartFile[] files) { - return Result.ok(imageService.batchUploadDefectImage(partId, ImageSourceEnum.COLLECT.getCode(), files)); + @PostMapping("/{imageSource}/upload-batch/{partId}") + public Result> uploadBatch(@PathVariable String imageSource, @PathVariable String partId, ImageCollectReq collectReq, @RequestParam("files") MultipartFile[] files) { + return Result.ok(imageService.batchUploadDefectImage(partId, imageSource, collectReq, files)); } - @ApiOperation(value = "外部工作上传图像", httpMethod = "POST") - @PostMapping("/out-work/upload/{partId}") - public Result uploadOutWork( @PathVariable String partId, @RequestParam("file") MultipartFile file) { + @ApiOperation(value = "上传图像", httpMethod = "POST") + @PostMapping("/{imageSource}/upload/{partId}") + public Result uploadOutWork(@PathVariable String imageSource, @PathVariable String partId, ImageCollectReq collectReq, @RequestParam("file") MultipartFile file) { MultipartFile[] files = {file}; - return Result.ok(imageService.batchUploadDefectImage(partId, ImageSourceEnum.OUT_WORK.getCode(), files).get(0).getImagePath()); + return Result.ok(imageService.batchUploadDefectImage(partId, ImageSourceEnum.OUT_WORK.getCode(), collectReq, files).get(0).getImagePath()); } @ApiOperation(value = "设置信息", httpMethod = "POST")