From 425d27a713f0d47cfe0186e34bf45e98356071b6 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Tue, 16 Sep 2025 13:07:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E6=B7=BB=E5=8A=A0=E6=9C=BA?= =?UTF-8?q?=E5=8F=B0=E5=9B=BE=E7=89=87=E5=9C=B0=E5=9D=80=E5=92=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 DmsBaseMachineInfo、DmsBaseMachineInfoBo 和 DmsBaseMachineInfoVo 中添加 photoAddress 和 ossId 字段 - 实现单个和批量设置图片地址的方法 - 在查询方法中添加图片地址的处理逻辑 - 引入 RemoteFileService 用于获取文件 URL --- .../dms/domain/DmsBaseMachineInfo.java | 10 +++ .../dms/domain/bo/DmsBaseMachineInfoBo.java | 12 +++- .../dms/domain/vo/DmsBaseMachineInfoVo.java | 10 ++- .../impl/DmsBaseMachineInfoServiceImpl.java | 63 ++++++++++++++++++- 4 files changed, 90 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java index 40016503..8ce3c5f9 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java @@ -137,5 +137,15 @@ public class DmsBaseMachineInfo extends TenantEntity { @TableField(exist = false) private String deviceModeName; + /** + * 机台图片地址 + */ + @TableField(exist = false) + private String photoAddress; + + /** + * 文件名 + */ + private String ossId; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMachineInfoBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMachineInfoBo.java index 0806f4dc..52b33351 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMachineInfoBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBaseMachineInfoBo.java @@ -10,8 +10,6 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.dms.domain.DmsBaseMachineInfo; -import java.util.List; - /** * 设备信息业务对象 prod_base_machine_info * @@ -139,4 +137,14 @@ public class DmsBaseMachineInfoBo extends BaseEntity { @ExcelProperty(value = "请求间隔") private Long requestInterval; + /** + * 机台图片地址 + */ + private String photoAddress; + + /** + * 文件名 + */ + private String ossId; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMachineInfoVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMachineInfoVo.java index ece91281..42b462c4 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMachineInfoVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBaseMachineInfoVo.java @@ -11,7 +11,6 @@ import org.dromara.dms.domain.DmsBaseMachineInfo; import java.io.Serial; import java.io.Serializable; import java.util.Date; -import java.util.List; /** @@ -196,5 +195,14 @@ public class DmsBaseMachineInfoVo implements Serializable { @ExcelProperty(value = "设备模型名称") private String deviceModeName; + /** + * 机台图片地址 + */ + private String photoAddress; + + /** + * 文件名 + */ + private String ossId; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java index bdc24013..42c5628a 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java @@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.dms.domain.DmsBaseDeviceCategory; import org.dromara.dms.domain.DmsBaseDeviceType; import org.dromara.dms.domain.DmsBaseMachineInfo; import org.dromara.dms.domain.bo.DmsBaseMachineInfoBo; @@ -17,11 +17,13 @@ import org.dromara.dms.domain.mobile.DeviceBeen; import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo; import org.dromara.dms.mapper.DmsBaseMachineInfoMapper; import org.dromara.dms.service.IDmsBaseMachineInfoService; +import org.dromara.resource.api.RemoteFileService; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 设备信息Service业务层处理 @@ -35,6 +37,9 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService private final DmsBaseMachineInfoMapper baseMapper; + @DubboReference + private RemoteFileService remoteFileService; + /** * 查询设备信息 @@ -48,6 +53,12 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService bo.setMachineId(machineId); MPJLambdaWrapper lqw = buildQueryWrapper(bo); DmsBaseMachineInfoVo prodBaseMachineInfoVo = baseMapper.selectVoOne(lqw); + + // 处理图片URL + if (prodBaseMachineInfoVo != null) { + setPhotoAddress(prodBaseMachineInfoVo); + } + //机台关联工序 /* MPJLambdaWrapper lqwRelation = JoinWrappers.lambda(ProdBaseMachineProcess.class) .selectAll(ProdBaseMachineProcess.class) @@ -69,9 +80,16 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService public TableDataInfo queryPageList(DmsBaseMachineInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + + // 处理图片URL + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + setPhotoAddressBatch(result.getRecords()); + } + return TableDataInfo.build(result); } + /** * 查询符合条件的设备信息列表 * @@ -81,10 +99,51 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService @Override public List queryList(DmsBaseMachineInfoBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); + List list = baseMapper.selectVoList(lqw); - return baseMapper.selectVoList(lqw); + // 处理图片URL + if (list != null && !list.isEmpty()) { + setPhotoAddressBatch(list); + } + + return list; } + /** + * 为单个对象设置图片地址 + */ + private void setPhotoAddress(DmsBaseMachineInfoVo vo) { + if (vo != null && StringUtils.isNotBlank(vo.getOssId())) { + try { + String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception e) { + // 忽略异常,不影响主要业务 + vo.setPhotoAddress(null); + } + } + } + + /** + * 批量设置图片地址 + */ + private void setPhotoAddressBatch(List list) { + // 收集所有有ossId的记录 + List hasOssIdList = list.stream() + .filter(vo -> StringUtils.isNotBlank(vo.getOssId())) + .collect(Collectors.toList()); + + if (hasOssIdList.isEmpty()) { + return; + } + + // 批量获取图片URL + for (DmsBaseMachineInfoVo vo : hasOssIdList) { + setPhotoAddress(vo); + } + } + + private MPJLambdaWrapper buildQueryWrapper(DmsBaseMachineInfoBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(DmsBaseMachineInfo.class)