From cf03304e57622a7a2ea0b33c74fedde12d03e019 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Tue, 14 Oct 2025 14:14:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E5=AE=8C=E5=96=84=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在润滑、保养、维修知识库实体及VO中新增ossId和photoAddress字段 - 引入RemoteFileService用于获取附件图片真实地址 -优化queryById、queryPageList和queryList方法以支持图片地址加载 - 添加setPhotoAddress和setPhotoAddressBatch方法处理图片地址设置 - 使用Dubbo注解引入远程文件服务,并配置mock机制提高容错性- 更新Excel导出属性以支持新字段展示 --- .../dromara/dms/domain/DmsKnowledgeLube.java | 11 ++++ .../dromara/dms/domain/DmsKnowledgeMaint.java | 11 ++++ .../dms/domain/DmsKnowledgeRepair.java | 11 ++++ .../dms/domain/bo/DmsKnowledgeLubeBo.java | 10 ++++ .../dms/domain/bo/DmsKnowledgeMaintBo.java | 10 ++++ .../dms/domain/bo/DmsKnowledgeRepairBo.java | 10 ++++ .../dms/domain/vo/DmsKnowledgeLubeVo.java | 12 ++++ .../dms/domain/vo/DmsKnowledgeMaintVo.java | 12 ++++ .../dms/domain/vo/DmsKnowledgeRepairVo.java | 12 ++++ .../impl/DmsKnowledgeLubeServiceImpl.java | 57 ++++++++++++++++++- .../impl/DmsKnowledgeMaintServiceImpl.java | 57 ++++++++++++++++++- .../impl/DmsKnowledgeRepairServiceImpl.java | 57 ++++++++++++++++++- 12 files changed, 264 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeLube.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeLube.java index 0c507b0d..7e9e6b92 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeLube.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeLube.java @@ -62,6 +62,17 @@ public class DmsKnowledgeLube extends TenantEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + @TableField(exist = false) + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeMaint.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeMaint.java index c02e6b53..5f8e3772 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeMaint.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeMaint.java @@ -62,6 +62,17 @@ public class DmsKnowledgeMaint extends TenantEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + @TableField(exist = false) + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeRepair.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeRepair.java index 935c1373..3231a3ed 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeRepair.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsKnowledgeRepair.java @@ -62,6 +62,17 @@ public class DmsKnowledgeRepair extends TenantEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + @TableField(exist = false) + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeLubeBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeLubeBo.java index b6d035a2..89338473 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeLubeBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeLubeBo.java @@ -62,5 +62,15 @@ public class DmsKnowledgeLubeBo extends BaseEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + private String photoAddress; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeMaintBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeMaintBo.java index 4a71c65d..a358791f 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeMaintBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeMaintBo.java @@ -62,5 +62,15 @@ public class DmsKnowledgeMaintBo extends BaseEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + private String photoAddress; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeRepairBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeRepairBo.java index 0e231b86..67a309c9 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeRepairBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsKnowledgeRepairBo.java @@ -62,5 +62,15 @@ public class DmsKnowledgeRepairBo extends BaseEntity { */ private String remark; + /** + * 附件OSS ID + */ + private String ossId; + + /** + * 附件地址 + */ + private String photoAddress; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeLubeVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeLubeVo.java index 53eaa9c2..ab72de87 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeLubeVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeLubeVo.java @@ -77,6 +77,18 @@ public class DmsKnowledgeLubeVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 附件OSS ID + */ + @ExcelProperty(value = "附件OSS ID") + private String ossId; + + /** + * 附件地址 + */ + @ExcelProperty(value = "附件地址") + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeMaintVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeMaintVo.java index f1e2a398..f7e6fe80 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeMaintVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeMaintVo.java @@ -77,6 +77,18 @@ public class DmsKnowledgeMaintVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 附件OSS ID + */ + @ExcelProperty(value = "附件OSS ID") + private String ossId; + + /** + * 附件地址 + */ + @ExcelProperty(value = "附件地址") + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeRepairVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeRepairVo.java index 9009f932..71cf4090 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeRepairVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsKnowledgeRepairVo.java @@ -77,6 +77,18 @@ public class DmsKnowledgeRepairVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 附件OSS ID + */ + @ExcelProperty(value = "附件OSS ID") + private String ossId; + + /** + * 附件地址 + */ + @ExcelProperty(value = "附件地址") + private String photoAddress; + /** * 设备类型名称 */ diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeLubeServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeLubeServiceImpl.java index c405e55f..86c92974 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeLubeServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeLubeServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.dms.service.impl; +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; @@ -18,10 +19,13 @@ import org.dromara.dms.domain.vo.DmsKnowledgeLubeVo; import org.dromara.dms.domain.DmsKnowledgeLube; import org.dromara.dms.mapper.DmsKnowledgeLubeMapper; import org.dromara.dms.service.IDmsKnowledgeLubeService; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.RemoteFileServiceMock; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 润滑知识库Service业务层处理 @@ -35,6 +39,9 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService { private final DmsKnowledgeLubeMapper baseMapper; + @DubboReference(mock = "true") + private RemoteFileService remoteFileService; + /** * 查询润滑知识库 * @@ -43,7 +50,11 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService { */ @Override public DmsKnowledgeLubeVo queryById(Long knowledgeLubeId){ - return baseMapper.selectVoById(knowledgeLubeId); + DmsKnowledgeLubeVo vo = baseMapper.selectVoById(knowledgeLubeId); + if (vo != null) { + setPhotoAddress(vo); + } + return vo; } /** @@ -57,6 +68,9 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService { public TableDataInfo queryPageList(DmsKnowledgeLubeBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + setPhotoAddressBatch(result.getRecords()); + } return TableDataInfo.build(result); } @@ -69,7 +83,11 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService { @Override public List queryList(DmsKnowledgeLubeBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + if (list != null && !list.isEmpty()) { + setPhotoAddressBatch(list); + } + return list; } private MPJLambdaWrapper buildQueryWrapper(DmsKnowledgeLubeBo bo) { @@ -95,6 +113,41 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService { return lqw; } + /** + * 为单个对象设置附件图片地址 + */ + private void setPhotoAddress(DmsKnowledgeLubeVo vo) { + if (vo != null && StringUtils.isNotBlank(vo.getOssId())) { + try { + String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception e) { + RemoteFileService mockService = new RemoteFileServiceMock(); + try { + String photoUrl = mockService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception ex) { + vo.setPhotoAddress(null); + } + } + } + } + + /** + * 批量设置附件图片地址 + */ + private void setPhotoAddressBatch(List list) { + List hasOssIdList = list.stream() + .filter(vo -> StringUtils.isNotBlank(vo.getOssId())) + .collect(Collectors.toList()); + if (hasOssIdList.isEmpty()) { + return; + } + for (DmsKnowledgeLubeVo vo : hasOssIdList) { + setPhotoAddress(vo); + } + } + /** * 新增润滑知识库 * diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeMaintServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeMaintServiceImpl.java index 69ad3dc8..5f7d4b40 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeMaintServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeMaintServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.dms.service.impl; +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; @@ -21,10 +22,13 @@ import org.dromara.dms.domain.DmsKnowledgeMaint; import org.dromara.dms.mapper.DmsKnowledgeMaintMapper; import org.dromara.dms.service.IDmsKnowledgeMaintService; import org.springframework.util.ObjectUtils; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.RemoteFileServiceMock; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 保养知识库Service业务层处理 @@ -38,6 +42,9 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService { private final DmsKnowledgeMaintMapper baseMapper; + @DubboReference(mock = "true") + private RemoteFileService remoteFileService; + /** * 查询保养知识库 * @@ -46,7 +53,11 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService { */ @Override public DmsKnowledgeMaintVo queryById(Long knowledgeMaintId){ - return baseMapper.selectVoById(knowledgeMaintId); + DmsKnowledgeMaintVo vo = baseMapper.selectVoById(knowledgeMaintId); + if (vo != null) { + setPhotoAddress(vo); + } + return vo; } /** @@ -60,6 +71,9 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService { public TableDataInfo queryPageList(DmsKnowledgeMaintBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + setPhotoAddressBatch(result.getRecords()); + } return TableDataInfo.build(result); } @@ -72,7 +86,11 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService { @Override public List queryList(DmsKnowledgeMaintBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + if (list != null && !list.isEmpty()) { + setPhotoAddressBatch(list); + } + return list; } private MPJLambdaWrapper buildQueryWrapper(DmsKnowledgeMaintBo bo) { @@ -97,6 +115,41 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService { return lqw; } + /** + * 为单个对象设置附件图片地址 + */ + private void setPhotoAddress(DmsKnowledgeMaintVo vo) { + if (vo != null && StringUtils.isNotBlank(vo.getOssId())) { + try { + String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception e) { + RemoteFileService mockService = new RemoteFileServiceMock(); + try { + String photoUrl = mockService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception ex) { + vo.setPhotoAddress(null); + } + } + } + } + + /** + * 批量设置附件图片地址 + */ + private void setPhotoAddressBatch(List list) { + List hasOssIdList = list.stream() + .filter(vo -> StringUtils.isNotBlank(vo.getOssId())) + .collect(Collectors.toList()); + if (hasOssIdList.isEmpty()) { + return; + } + for (DmsKnowledgeMaintVo vo : hasOssIdList) { + setPhotoAddress(vo); + } + } + /** * 新增保养知识库 * diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeRepairServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeRepairServiceImpl.java index c11f2341..a8e0ccc3 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeRepairServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsKnowledgeRepairServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.dms.service.impl; +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; @@ -20,10 +21,13 @@ import org.dromara.dms.domain.DmsKnowledgeRepair; import org.dromara.dms.mapper.DmsKnowledgeRepairMapper; import org.dromara.dms.service.IDmsKnowledgeRepairService; import org.springframework.util.ObjectUtils; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.RemoteFileServiceMock; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 维修知识库Service业务层处理 @@ -37,6 +41,9 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService private final DmsKnowledgeRepairMapper baseMapper; + @DubboReference(mock = "true") + private RemoteFileService remoteFileService; + /** * 查询维修知识库 * @@ -45,7 +52,11 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService */ @Override public DmsKnowledgeRepairVo queryById(Long knowledgeRepairId){ - return baseMapper.selectVoById(knowledgeRepairId); + DmsKnowledgeRepairVo vo = baseMapper.selectVoById(knowledgeRepairId); + if (vo != null) { + setPhotoAddress(vo); + } + return vo; } /** @@ -59,6 +70,9 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService public TableDataInfo queryPageList(DmsKnowledgeRepairBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + if (result.getRecords() != null && !result.getRecords().isEmpty()) { + setPhotoAddressBatch(result.getRecords()); + } return TableDataInfo.build(result); } @@ -71,7 +85,11 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService @Override public List queryList(DmsKnowledgeRepairBo bo) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + if (list != null && !list.isEmpty()) { + setPhotoAddressBatch(list); + } + return list; } private MPJLambdaWrapper buildQueryWrapper(DmsKnowledgeRepairBo bo) { @@ -94,6 +112,41 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService return lqw; } + /** + * 为单个对象设置附件图片地址 + */ + private void setPhotoAddress(DmsKnowledgeRepairVo vo) { + if (vo != null && StringUtils.isNotBlank(vo.getOssId())) { + try { + String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception e) { + RemoteFileService mockService = new RemoteFileServiceMock(); + try { + String photoUrl = mockService.selectUrlByIds(vo.getOssId()); + vo.setPhotoAddress(photoUrl); + } catch (Exception ex) { + vo.setPhotoAddress(null); + } + } + } + } + + /** + * 批量设置附件图片地址 + */ + private void setPhotoAddressBatch(List list) { + List hasOssIdList = list.stream() + .filter(vo -> StringUtils.isNotBlank(vo.getOssId())) + .collect(Collectors.toList()); + if (hasOssIdList.isEmpty()) { + return; + } + for (DmsKnowledgeRepairVo vo : hasOssIdList) { + setPhotoAddress(vo); + } + } + /** * 新增维修知识库 *