From 3c7f8a22d7d12f9a3a6bcb5545dd75ea0e4e08cc Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Thu, 24 Jul 2025 09:33:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BD=B1=E5=83=8F=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=8F=8A=E5=BD=B1=E5=83=8F=E7=B1=BB=E5=9E=8B=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/dite/znpt/domain/entity/ImageEntity.java | 4 ++++ .../main/java/com/dite/znpt/domain/vo/ImageCollectReq.java | 6 ++++++ core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java | 6 ++++++ .../com/dite/znpt/service/impl/ImageCollectServiceImpl.java | 2 ++ .../java/com/dite/znpt/service/impl/ImageServiceImpl.java | 6 +++++- core/src/main/resources/mapper/ImageMapper.xml | 6 ++++-- 6 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java index 3b89da4..39f69a6 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java @@ -112,6 +112,10 @@ public class ImageEntity extends AuditableEntity implements Serializable { @TableField("image_type") private String imageType; + @ApiModelProperty("影像类型描述") + @TableField("image_type_label") + private String imageTypeLabel; + @ApiModelProperty("图片路径") @TableField("image_path") private String imagePath; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageCollectReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageCollectReq.java index ec0dc60..68655bf 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ImageCollectReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageCollectReq.java @@ -63,6 +63,12 @@ public class ImageCollectReq implements Serializable { @ApiModelProperty("来源") private String imageSource; + @ApiModelProperty("图片类型") + private String imageType; + + @ApiModelProperty("图片类型描述") + private String imageTypeLabel; + @ApiModelProperty("图像信息") private List imageList; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java index d203632..9c9b376 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java @@ -46,4 +46,10 @@ public class ImageResp implements Serializable { @ApiModelProperty("是否已审核,0未审核,1已审核") private Boolean reviewState; + @ApiModelProperty("影像类型,枚举ImageTypeEnum") + private String imageType; + + @ApiModelProperty("影像类型描述") + private String imageTypeLabel; + } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java index d786566..39871f2 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java @@ -57,6 +57,8 @@ public class ImageCollectServiceImpl extends ServiceImpl { image.setPartId(partId); image.setCollectId(imageCollect.getCollectId()); + image.setImageType(req.getImageType()); + image.setImageTypeLabel(req.getImageTypeLabel()); String path = permPathPrefix + image.getImageName(); File file = new File(temPathPrefix.concat(image.getImageName())); if (file.exists()) { 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 72fe852..00467e8 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 @@ -77,7 +77,9 @@ public class ImageServiceImpl extends ServiceImpl impl resp.setAudioList(BeanUtil.copyToList(audioMap.get(resp.getImageId()), AudioFileInfoResp.class)); resp.setWeatherLabel(WeatherEnum.getDescByCode(resp.getWeather())); resp.setShootingMethodLabel(ShootingMethodEnum.getDescByCode(resp.getShootingMethod())); - resp.setImageTypeLabel(ImageTypeEnum.getDescByCode(resp.getImageType())); + if (StrUtil.isEmpty(resp.getImageTypeLabel())) { + resp.setImageTypeLabel(ImageTypeEnum.getDescByCode(resp.getImageType())); + } resp.setImageSourceLabel(ImageSourceEnum.getDescByCode(resp.getImageSource())); }); } @@ -167,6 +169,8 @@ public class ImageServiceImpl extends ServiceImpl impl imageEntity.setImagePath(FilePathEnum.IMAGE_TEMP.getFileDownPath(path)); imageEntity.setPartId(partId); imageEntity.setCollectId(imageCollect.getCollectId()); + imageEntity.setImageType(collectReq.getImageType()); + imageEntity.setImageTypeLabel(collectReq.getImageTypeLabel()); imageList.add(imageEntity); } catch (Exception e) { e.printStackTrace(); diff --git a/core/src/main/resources/mapper/ImageMapper.xml b/core/src/main/resources/mapper/ImageMapper.xml index e47e4b9..f90cd53 100644 --- a/core/src/main/resources/mapper/ImageMapper.xml +++ b/core/src/main/resources/mapper/ImageMapper.xml @@ -5,7 +5,7 @@ SELECT i.image_id, i.image_name, i.part_id, p.part_name, i.image_resolution, i.focal_distance, i.shooting_time, i.camera_manufacturer, i.camera_model, i.GPS, ic.weather, ic.humidness, CONCAT(ic.temperature_min, '℃', '~',temperature_max, '℃') AS temperature, ic.wind_level, - ic.shooting_method, ic.shooting_distance,ic.collector_name, i.image_type, i.image_path, ic.image_source, i.review_state + ic.shooting_method, ic.shooting_distance,ic.collector_name, i.image_type, i.image_path, ic.image_source, i.review_state, i.image_type_label FROM image i LEFT JOIN image_collect ic ON i.collect_id = ic.collect_id LEFT JOIN part p ON i.part_id = p.part_id @@ -35,6 +35,8 @@ + + @@ -68,7 +70,7 @@ SELECT i.image_id, i.image_name, i.image_path, i.image_height, i.image_resolution, i.image_width, i.image_height, i.focal_distance, i.focal_distance35, i.x_resolution, i.y_resolution, i.resolution_units, i.shooting_time, i.camera_manufacturer, i.camera_model, i.latitude, i.latitude, i.altitude, ic.collect_id, ic.weather, CONCAT(ic.temperature_min, '℃', '~',temperature_max, '℃') AS temperature, - ic.wind_level, ic.shooting_method, ic.shooting_distance, ic.collector_name, ic.image_source, i.review_state + ic.wind_level, ic.shooting_method, ic.shooting_distance, ic.collector_name, ic.image_source, i.review_state, i.image_type, i.image_type_label FROM image i LEFT JOIN image_collect ic ON i.collect_id = ic.collect_id WHERE i.image_id = #{imageId} From 55238c157c676233370ea4904bc4ef342ac45ad2 Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Thu, 24 Jul 2025 14:57:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E5=9B=BE=E7=89=87=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A2=84=E5=A4=84=E7=90=86=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E3=80=81=E9=A2=84=E5=A4=84=E7=90=86=E7=8A=B6=E6=80=81=E3=80=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AEid=202.=E5=A2=9E=E5=8A=A0=E9=A2=84=E5=A4=84?= =?UTF-8?q?=E7=90=86job=EF=BC=8C=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=A6=81=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dite/znpt/config/ExtUtilConfig.java | 2 + .../java/com/dite/znpt/config/Schedule.java | 68 +++++++++++++++++++ .../dite/znpt/domain/bo/PartFullInfoBo.java | 23 ------- .../dite/znpt/domain/entity/ImageEntity.java | 12 ++++ .../dite/znpt/domain/vo/ImageListResp.java | 9 +++ .../com/dite/znpt/domain/vo/ImageResp.java | 8 +++ .../com/dite/znpt/service/PartService.java | 5 +- .../znpt/service/impl/ImageServiceImpl.java | 29 ++++---- .../znpt/service/impl/PartServiceImpl.java | 17 +++-- .../src/main/resources/mapper/ImageMapper.xml | 11 ++- .../com/dite/znpt/web/DiteApplication.java | 2 + web/src/main/resources/application-dev.yml | 6 ++ 12 files changed, 139 insertions(+), 53 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/config/Schedule.java delete mode 100644 core/src/main/java/com/dite/znpt/domain/bo/PartFullInfoBo.java diff --git a/core/src/main/java/com/dite/znpt/config/ExtUtilConfig.java b/core/src/main/java/com/dite/znpt/config/ExtUtilConfig.java index bef6847..88a5465 100644 --- a/core/src/main/java/com/dite/znpt/config/ExtUtilConfig.java +++ b/core/src/main/java/com/dite/znpt/config/ExtUtilConfig.java @@ -14,6 +14,8 @@ import org.springframework.context.annotation.Configuration; @ConfigurationProperties(prefix = "util") public class ExtUtilConfig { + @ApiModelProperty("是否开启预处理job") + private Boolean enableImagePreTreatment; @ApiModelProperty("图片预处理工具路径") private String imagePreTreatmentPath; @ApiModelProperty("报告生成工具路径") diff --git a/core/src/main/java/com/dite/znpt/config/Schedule.java b/core/src/main/java/com/dite/znpt/config/Schedule.java new file mode 100644 index 0000000..d3ab3a3 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/config/Schedule.java @@ -0,0 +1,68 @@ +package com.dite.znpt.config; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.BooleanUtil; +import com.dite.znpt.domain.entity.ImageEntity; +import com.dite.znpt.domain.vo.PartResp; +import com.dite.znpt.enums.FilePathEnum; +import com.dite.znpt.service.ImageService; +import com.dite.znpt.service.PartService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +@Slf4j +@Component +@RequiredArgsConstructor +public class Schedule { + + private final ImageService imageService; + private final PartService partService; + private final ExtUtilConfig extUtilConfig; + + /** + * 功能描述:图像预处理,持续运行 + * + * @author cuizhibin + * @date 2025/07/24 14:23 + **/ + @Scheduled(fixedRate = 10_000) + public void imagePreTreatment() { + if (BooleanUtil.isFalse(extUtilConfig.getEnableImagePreTreatment())) { + return; + } + List list = imageService.lambdaQuery().eq(ImageEntity::getPreTreatment, "0") + .isNotNull(ImageEntity::getPartId) + .isNotNull(ImageEntity::getProjectId).list(); + List partIds = list.stream().map(ImageEntity::getPartId).toList(); + Map partRespMap = partService.listInfos(partIds).stream().collect(Collectors.toMap(PartResp::getPartId, Function.identity())); +// 预处理 + List successList = new ArrayList<>(); + for (ImageEntity image : list) { + PartResp partResp = partRespMap.get(image.getPartId()); + FilePathEnum pathEnum = image.getImagePath().contains("temp") ? FilePathEnum.IMAGE_TEMP : FilePathEnum.IMAGE; + String inputFile = pathEnum.getFileAbsolutePath(image.getImagePath()); + String outputDir = FilePathEnum.IMAGE.getFileAbsolutePathPrefix().concat(partResp.getProjectName()) + .concat(FileUtil.FILE_SEPARATOR).concat(partResp.getTurbineName()) + .concat(FileUtil.FILE_SEPARATOR).concat(partResp.getPartName()); + extUtilConfig.imagePreTreatment(inputFile, outputDir); + String outputFile = outputDir.concat(FileUtil.FILE_SEPARATOR).concat(FileUtil.getName(inputFile)); + boolean preSuccess = FileUtil.exist(outputFile); + if(!preSuccess) { + log.warn("图片预处理失败,图片id:{},路径:{}", image.getImageId(), inputFile); + continue; + } + image.setPreTreatment(true); + image.setPreImagePath(FilePathEnum.IMAGE.getFileDownPath(outputFile)); + successList.add(image); + } + imageService.updateBatchById(successList); + } +} diff --git a/core/src/main/java/com/dite/znpt/domain/bo/PartFullInfoBo.java b/core/src/main/java/com/dite/znpt/domain/bo/PartFullInfoBo.java deleted file mode 100644 index e9c3103..0000000 --- a/core/src/main/java/com/dite/znpt/domain/bo/PartFullInfoBo.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.dite.znpt.domain.bo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableField; -import com.dite.znpt.domain.entity.PartEntity; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@EqualsAndHashCode(callSuper = true) -@Data -public class PartFullInfoBo extends PartEntity { - - @ApiModelProperty("机组名称") - private String turbineName; - - @ApiModelProperty("项目id") - private String projectId; - - @ApiModelProperty("机组名称") - private String projectName; - -} diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java index 39f69a6..b2108da 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java @@ -120,8 +120,20 @@ public class ImageEntity extends AuditableEntity implements Serializable { @TableField("image_path") private String imagePath; + @ApiModelProperty("预处理后的图片路径") + @TableField("pre_image_path") + private String preImagePath; + @ApiModelProperty("是否已审核,0未审核,1已审核") @TableField("review_state") private Boolean reviewState; + @ApiModelProperty("是否已预处理,0未审核,1已审核") + @TableField("pre_treatment") + private Boolean preTreatment; + + @ApiModelProperty("项目id") + @TableField("project_id") + private String projectId; + } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java index 771dd3a..cadbfbf 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageListResp.java @@ -97,4 +97,13 @@ public class ImageListResp implements Serializable { @ApiModelProperty("关联图像的音频列表") private List audioList; + + @ApiModelProperty("预处理后的图片路径") + private String preImagePath; + + @ApiModelProperty("是否已预处理,0未审核,1已审核") + private Boolean preTreatment; + + @ApiModelProperty("项目id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java index 9c9b376..3b628f1 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java @@ -52,4 +52,12 @@ public class ImageResp implements Serializable { @ApiModelProperty("影像类型描述") private String imageTypeLabel; + @ApiModelProperty("预处理后的图片路径") + private String preImagePath; + + @ApiModelProperty("是否已预处理,0未审核,1已审核") + private Boolean preTreatment; + + @ApiModelProperty("项目id") + private String projectId; } diff --git a/core/src/main/java/com/dite/znpt/service/PartService.java b/core/src/main/java/com/dite/znpt/service/PartService.java index 1901493..b4db7bd 100644 --- a/core/src/main/java/com/dite/znpt/service/PartService.java +++ b/core/src/main/java/com/dite/znpt/service/PartService.java @@ -1,7 +1,6 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.dite.znpt.domain.bo.PartFullInfoBo; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.vo.PartListReq; import com.dite.znpt.domain.vo.PartListResp; @@ -86,8 +85,8 @@ public interface PartService extends IService { /** * 查询完整部件信息,包含机组、项目 * @param partIds - * @return {@link List }<{@link PartFullInfoBo }> + * @return {@link List }<{@link PartResp }> */ - List listInfos(List partIds); + List listInfos(List partIds); } 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 00467e8..66e0cb3 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 @@ -12,7 +12,6 @@ import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; -import com.dite.znpt.domain.bo.PartFullInfoBo; import com.dite.znpt.domain.entity.ImageCollectEntity; import com.dite.znpt.domain.entity.ImageEntity; import com.dite.znpt.domain.entity.PartEntity; @@ -114,7 +113,7 @@ public class ImageServiceImpl extends ServiceImpl impl } } }); - this.saveBatch(imageList); + baseMapper.insert(imageList); return imageList; } @@ -139,9 +138,7 @@ public class ImageServiceImpl extends ServiceImpl impl if (StrUtil.isEmpty(imageSource) || Objects.isNull(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); - } + PartResp partResp = partService.detail(partId); if(null == files || files.length == 0){ throw new ServiceException(Message.IMAGE_IS_EMPTY); } @@ -168,6 +165,7 @@ public class ImageServiceImpl extends ServiceImpl impl list.add(imageReq); imageEntity.setImagePath(FilePathEnum.IMAGE_TEMP.getFileDownPath(path)); imageEntity.setPartId(partId); + imageEntity.setProjectId(partResp.getProjectId()); imageEntity.setCollectId(imageCollect.getCollectId()); imageEntity.setImageType(collectReq.getImageType()); imageEntity.setImageTypeLabel(collectReq.getImageTypeLabel()); @@ -211,10 +209,7 @@ public class ImageServiceImpl extends ServiceImpl impl ImageCollectEntity imageCollect = new ImageCollectEntity(); imageCollect.setCollectId(IdUtil.simpleUUID()); imageCollect.setCollectorName(imageWorkReq.getUploadUser()); - PartEntity part = partService.getById(partId); - if (Objects.isNull(part)) { - throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); - } + PartResp part = partService.detail(partId); List imageList = new ArrayList<>(); result.forEach(path -> { ImageEntity imageEntity = new ImageEntity(); @@ -233,6 +228,7 @@ public class ImageServiceImpl extends ServiceImpl impl imageEntity.setAltitude(imageWorkReq.getAltitude()); imageEntity.setImagePath(path); imageEntity.setPartId(partId); + imageEntity.setProjectId(part.getProjectId()); imageEntity.setCollectId(imageCollect.getCollectId()); imageList.add(imageEntity); }); @@ -254,10 +250,9 @@ public class ImageServiceImpl extends ServiceImpl impl if(CollUtil.isEmpty(imageList)){ imageCollectService.removeById(image.getCollectId()); } - File file = new File(image.getImagePath()); - if (file.exists()) { - FileUtil.del(file); - } + FilePathEnum pathEnum = image.getImagePath().contains("temp") ? FilePathEnum.IMAGE_TEMP : FilePathEnum.IMAGE; + FileUtil.del(pathEnum.getFileAbsolutePath(image.getImagePath())); + FileUtil.del(FilePathEnum.IMAGE.getFileAbsolutePath(image.getPreImagePath())); } private ImageReq imageRespBuilder(String path) throws Exception { @@ -349,11 +344,11 @@ public class ImageServiceImpl extends ServiceImpl impl .collect(Collectors.toMap(ImageEntity::getImagePath, Function.identity(), (a, b) -> a)); // 查询部件信息 - Map partInfoMap = new HashMap<>(); + Map partInfoMap = new HashMap<>(); CollUtil.split(imageList, 1000).forEach(images -> { List partIds = images.stream().map(ImageEntity::getPartId).collect(Collectors.toList()); - List partList = partService.listInfos(partIds); - partInfoMap.putAll(partList.stream().collect(Collectors.toMap(PartFullInfoBo::getPartId, Function.identity()))); + List partList = partService.listInfos(partIds); + partInfoMap.putAll(partList.stream().collect(Collectors.toMap(PartResp::getPartId, Function.identity()))); }); // 将信息写入返回实体 @@ -367,7 +362,7 @@ public class ImageServiceImpl extends ServiceImpl impl ImageEntity image = imageMap.get(filePath); if (image != null) { BeanUtil.copyProperties(image, resp); - PartFullInfoBo part = partInfoMap.get(image.getPartId()); + PartResp part = partInfoMap.get(image.getPartId()); if (part != null) { resp.setPartId(part.getPartId()); resp.setPartName(part.getPartName()); diff --git a/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java index 1e5ba8c..43e9b92 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/PartServiceImpl.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; -import com.dite.znpt.domain.bo.PartFullInfoBo; import com.dite.znpt.domain.entity.PartEntity; import com.dite.znpt.domain.entity.ProjectEntity; import com.dite.znpt.domain.entity.TurbineEntity; @@ -89,6 +88,9 @@ public class PartServiceImpl extends ServiceImpl impleme @Override public PartResp detail(String partId) { PartEntity entity = this.baseMapper.selectById(partId); + if(null == entity){ + throw new ServiceException(Message.PART_ID_IS_NOT_EXIST); + } PartResp resp = Converts.INSTANCE.toPartResp(entity); if(StrUtil.isNotEmpty(resp.getTurbineId())){ TurbineEntity turbine = turbineService.getById(resp.getTurbineId()); @@ -97,6 +99,7 @@ public class PartServiceImpl extends ServiceImpl impleme if(StrUtil.isNotEmpty(turbine.getProjectId())){ ProjectEntity project = projectService.getById(turbine.getProjectId()); if(null != project){ + resp.setProjectId(resp.getProjectId()); resp.setProjectName(project.getProjectName()); } } @@ -166,18 +169,18 @@ public class PartServiceImpl extends ServiceImpl impleme } @Override - public List listInfos(List partIds) { + public List listInfos(List partIds) { List list = lambdaQuery().in(PartEntity::getPartId, partIds).list(); List turbineList = turbineService.lambdaQuery().in(TurbineEntity::getTurbineId, list.stream().map(PartEntity::getTurbineId).collect(Collectors.toList())).list(); Map turbineMap = turbineList.stream().collect(Collectors.toMap(TurbineEntity::getTurbineId, Function.identity())); Map projectMap = projectService.lambdaQuery().in(ProjectEntity::getProjectId, turbineList.stream().map(TurbineEntity::getProjectId).collect(Collectors.toList())).list() .stream().collect(Collectors.toMap(ProjectEntity::getProjectId, Function.identity())); - return BeanUtil.copyToList(list, PartFullInfoBo.class).stream().peek(partBo -> { - TurbineEntity turbineEntity = turbineMap.get(partBo.getTurbineId()); + return BeanUtil.copyToList(list, PartResp.class).stream().peek(resp -> { + TurbineEntity turbineEntity = turbineMap.get(resp.getTurbineId()); ProjectEntity projectEntity = projectMap.get(turbineEntity.getProjectId()); - partBo.setTurbineName(turbineEntity.getTurbineName()); - partBo.setProjectId(projectEntity.getProjectId()); - partBo.setProjectName(projectEntity.getProjectName()); + resp.setTurbineName(turbineEntity.getTurbineName()); + resp.setProjectId(projectEntity.getProjectId()); + resp.setProjectName(projectEntity.getProjectName()); }).collect(Collectors.toList()); } } diff --git a/core/src/main/resources/mapper/ImageMapper.xml b/core/src/main/resources/mapper/ImageMapper.xml index f90cd53..f072bb6 100644 --- a/core/src/main/resources/mapper/ImageMapper.xml +++ b/core/src/main/resources/mapper/ImageMapper.xml @@ -5,7 +5,8 @@ SELECT i.image_id, i.image_name, i.part_id, p.part_name, i.image_resolution, i.focal_distance, i.shooting_time, i.camera_manufacturer, i.camera_model, i.GPS, ic.weather, ic.humidness, CONCAT(ic.temperature_min, '℃', '~',temperature_max, '℃') AS temperature, ic.wind_level, - ic.shooting_method, ic.shooting_distance,ic.collector_name, i.image_type, i.image_path, ic.image_source, i.review_state, i.image_type_label + ic.shooting_method, ic.shooting_distance,ic.collector_name, i.image_type, i.image_path, ic.image_source, i.review_state, i.image_type_label, + i.pre_image_path, i.project_id, i.pre_treatment FROM image i LEFT JOIN image_collect ic ON i.collect_id = ic.collect_id LEFT JOIN part p ON i.part_id = p.part_id @@ -32,6 +33,9 @@ + + + @@ -67,10 +71,11 @@